2016-08-25 4 views
2

Я хотел бы спросить, видели ли вы когда-нибудь что-то вроде следующего кода.Зачем JavaScript кодируется шестнадцатеричными символами?

var _0x655fx23 = _0x655fx2[_0x34ea[0]] > 8 ? 3 : 1; 
var _0x655fx10 = new Array(32 * _0x655fx23); 
var _0x655fx25 = new Array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0); 
var _0x655fx26, _0x655fx27, _0x655fx11 = 0, 
    _0x655fx28 = 0, 
    _0x655fx14; 

Все, что я знаю, это то, что это должен быть JavaScript. Сначала я попытался преобразовать все шестнадцатеричные символы в ascii, но результат был вздор (не говоря уже о том, что у меня есть еще 200 строк).

После некоторого чтения я наткнулся на возможное решение: de-obfuscation, но это тоже не сработало. Возможно, у вас есть какой-нибудь опыт «декодирования» таких кодов? Я уже пробовал несколько онлайн-инструментов, чтобы восстановить как можно больше кода, но, к сожалению, без везения.

+0

* «Это должен быть JavaScript» * - Если вы прочтете это снова, помня, что имена переменных JS разрешено начинать с подчеркивания, вы увидите, что это вполне допустимый JS (хотя первая строка ссылается на пару переменных, которые не определены). – nnnnnn

+0

@nnnnnn so amm. Если взять первую строку, например (_0x655fx23): «_e_ #» будет считаться допустимым именем переменной? – Ryseth

+1

Откуда вы получаете '_e_ #'? Имя переменной - '_0x655fx23', то есть имя переменной - это последовательность символов' _, x, 6, 5, 5, f, x, 2, 3'. Он не интерпретируется как шестнадцатеричный номер. (Так же, как 'var id1' создает имя переменной из символов' i, d, 1'.) – nnnnnn

ответ

3

Нет колдовства, только контекст кода скрыт, потому что он был преобразован в шестнадцатеричный. Точно так же вы можете переименовать их как variable1, variable2, variable3, но их цель по-прежнему запутывается. Я предполагаю, что это может быть достигнуто с помощью таких инструментов, как хрюканье, подобно тому, как минимизировать ваш код.

Смежные вопросы