@Cracer1275

Как сделать деобфускацию кода?

Нужен сервис для расшифровки JS кода. В основном я нахожу только сервисы для обфускации, но без возможности выполнить деобфускацию.
Если что, то вот сам код:
https://pastecode.io/s/x763tvfj

Код больше 10 тыс. символов поэтому не смог загрузить по спойлер.
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Сначала меняем eval в конце крипта на console.log
Вставляем это в консоль и выполняем.
Результат копируем
Ищем какой-нибудь деобфускатор, например этот https://de4js.bloggerbyte.net/
Прогоняем на авто режиме
Получаем относительно читабельный код:
spoiler
var _0x225ac5 = _0x3b87;
(function (_0xe5e38d, _0x53a189) {
    var _0x21d761 = _0x3b87,
        _0x215dc9 = _0xe5e38d();
    while (!![]) {
        try {
            var _0x5db276 = -parseInt(_0x21d761(0x115)) / 0x1 * (-parseInt(_0x21d761(0x106)) / 0x2) + parseInt(_0x21d761(0x108)) / 0x3 + parseInt(_0x21d761(0x105)) / 0x4 * (-parseInt(_0x21d761(0x10a)) / 0x5) + -parseInt(_0x21d761(0x10b)) / 0x6 * (parseInt(_0x21d761(0x10c)) / 0x7) + parseInt(_0x21d761(0x10f)) / 0x8 * (-parseInt(_0x21d761(0x10d)) / 0x9) + -parseInt(_0x21d761(0x113)) / 0xa * (-parseInt(_0x21d761(0x104)) / 0xb) + parseInt(_0x21d761(0x101)) / 0xc * (-parseInt(_0x21d761(0x110)) / 0xd);
            if (_0x5db276 === _0x53a189) break;
            else _0x215dc9['push'](_0x215dc9['shift']())
        } catch (_0x1ceac6) {
            _0x215dc9['push'](_0x215dc9['shift']())
        }
    }
}(_0x484e, 0x602bd));
var _$_d181 = [_0x225ac5(0x112), _0x225ac5(0x114), 'forEach', _0x225ac5(0x102), _0x225ac5(0x10e), 'setMusicVolume', _0x225ac5(0x103), 'setSoundVolume', _0x225ac5(0x109), _0x225ac5(0x107), _0x225ac5(0x111), 'DialogManager'];

function muteMedia(_0x2c5074) {
    _0x2c5074[_$_d181[0x0]] = !![], _0x2c5074[_$_d181[0x1]]()
}

function mutePageMedia() {
    document[_$_d181[0x4]](_$_d181[0x3])[_$_d181[0x2]](_0x181f2a => {
        return muteMedia(_0x181f2a)
    })
}

function _0x484e() {
    var _0x2277b4 = ['pause', '1841bupQJr', '1463244jlRnjn', 'video, audio', 'SoundManager', '7150yaDhrN', '4YptQSm', '302jBoPrk', '_mainDlgs', '1577490CYDCQW', 'buyAuto', '1159445mEuzmn', '30sfQSkF', '398776gggCvH', '261zTciOl', 'querySelectorAll', '92176gOWIYG', '13YWZNlF', '_instance', 'muted', '8660XjUZgW'];
    _0x484e = function () {
        return _0x2277b4
    };
    return _0x484e()
}
mutePageMedia();

function wait(_0x5db71f) {
    return new Promise(_0x250182 => {
        return setTimeout(_0x250182, _0x5db71f)
    })
}

function _0x3b87(_0x4ea049, _0x3f6347) {
    var _0x484eaf = _0x484e();
    return _0x3b87 = function (_0x3b87f9, _0x5cdb65) {
        _0x3b87f9 = _0x3b87f9 - 0x101;
        var _0x1d0f03 = _0x484eaf[_0x3b87f9];
        return _0x1d0f03
    }, _0x3b87(_0x4ea049, _0x3f6347)
}
async function mainLoop() {
    Laya[_$_d181[0x6]][_$_d181[0x5]](0x0), Laya[_$_d181[0x6]][_$_d181[0x7]](0x0), await wait(0x3e8), window[_$_d181[0xb]][_$_d181[0xa]][_$_d181[0x9]][0x0][_$_d181[0x8]]()
}
mainLoop();


Осталось открыть в IDE и провести рефакторинг, переименовав функции и переменные, и дав им адекватные имена.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@historydev Куратор тега JavaScript
Валера, настало твоё время
-1. Деминифицировать код
-2. Осмотреть код и выяснить сборщика
-3. Искать в сторону сборщика
-4. Проклинать того кто это сделал
-5. В отчаянии пытаться разобрать что там написано
+6. Забить и не задавать подобные вопросы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы