Некоторые обфусцированный код JQuery (или по другим причинам программирования намеренно закодированных в шестнадцатеричном) содержит кучу произвольных строк, которые выглядят какпотребность SED или AWK сценария, который декодирует несколько шестнадцатеричных строк
"\x2e\x68\x65\x2d\x76\x69\x65\x77"
Это декодирует например в строку ".he-view".
Я хотел бы передать этот код через скрипт, который преобразует все символы «\ xhh» в читаемые символы ASCII.
Пока я жду ответа, я приступаю к написанию фильтра lex.
Чтобы быть более точным: код содержит указанные выше шестнадцатеричные кодированные строки среди JS-кода. Фильтр должен отражать окружающий код и просто преобразовывать шестнадцатеричные строки на место, чтобы результат оставался читаемым и синтаксически правильным.
Здесь снова задача:
AAA,BBB,CCC "\x2e\x68\x65\x2d\x76\x69\x65\x77" DDD EEE
должен давать
AAA,BBB,CCC ".he-view" DDD EEE
Практически, это не играет никакой роли, будь то окружающий код JS, JQuery или что-то другое. Вопрос заключался в поиске фильтра, который преобразует все эти шестнадцатеричные строки в «» в читаемый ASCII. То, что остальная часть кода должна пройти, настоящим выразительно заявлена снова.
Кроме того, я обнаружил, что шестнадцатеричные строки также указаны в парах одиночных кавычек (\ ').
И, конечно, инструмент/скрипт следует использовать в качестве фильтра, то есть предоставить ему входной файл, и он выплескивает преобразованный файл таким образом, чтобы все его вызовы «шестнадцатеричные строки» были преобразованы в читаемые ASCII.
FWIW, вот выдержка из документа, который должен быть преобразован:
switchImg: function (b, c) { var d = b.data("\x61\x6e\x69\x6d\x61\x74\x65"); d = d ? animation : "\x72\x61\x6e\x64\x6f\x6d"; if (d == "\x72\x61\x6e\x64\x6f\x6d") { var f = ["\x66\x61\x64\x65\x49\x6e", "\x66\x6c\x69\x70\x49\x6e\x48"]; d = f[Math.floor(Math.random() * f.length)] }; var e = b.find("\x69\x6d\x67");
Можете ли вы дать простой полный документ, который вы хотите перевести? Я могу уточнить свой ответ, если он не сработает с этим. Но это должно быть. – hek2mgl
Я не вижу, чтобы в моем исходном посте не было достаточно информации, и почему я получил -1 для этого. – Krischu
Используйте «echo -e AAA, BBB, CCC» \ x2e \ x68 \ x65 \ x2d \ x76 \ x69 \ x65 \ x77 «DDD EEE' - как я уже сказал – hek2mgl