Скрипт на Node для замены hex на dec
ищу помощи в написании скрипта для node или python
для того чтобы он искал в файле все Hex числа в виде выражений, высчитывал их и заменял на Dec пользовался банальным console.log(parseInt(0x2294+-0x3d6*-0x1+-0x24c6)) для получения цифр, но вручную по 1 выражению занимает очень много времени. т.к. в файле их тысячи:( :help: |
Наверное это продолжение темы https://javascript.ru/forum/node-js-...e-modulya.html
Думаю у тебя задача не правильно сформулирована нужен не парсинг а синтаксический анализатор на подобии https://esprima.org/demo/parse.html# что бы найти лексемы в выражениях и заменить их на более читаемый вид. Ну или использовать http://www.jsnice.org/ |
Цитата:
в коде есть подобное nC=0x1*0x256f+-0x82f2+-0x5*-0x2b02, nd=0x546e+0x2491+0x1*0x89, S0=-0x4157+0xd991+-0x61*0x51, S1=0xd3e+-0x24b3+0xd*0x253, S2=-0xc863+0x1728+-0x1*-0x1522b, S3=-0x1bee+0xef*0x3+0x1bfb, S4=-0x266f*0x1+0xa*-0xcdb+-0x1*-0x147f7, S5=0x5a*-0x124+0x366d*0x2+0x9ac9, S6=-0x7ba6*0x2+-0x2*0x8964+0x2ab10, S7=-0x390e*0x2+-0xe51*-0x2+0xf677, файл очень большой (~0.9mb) нужно найти все вот эти выражения, прокалькулировать и вывести результат в виде 1 единственной цифры на каждое выражение естественно. чтобы по итогу вышло так no=20910, nm=1200, nL=31100, np=520, na=31110, jsnice пробовал, но все эти деобфускаторы, бьютифаеры только код ломают |
Цитата:
let str = ` nC=0x1*0x256f+-0x82f2+-0x5*-0x2b02, nd=0x546e+0x2491+0x1*0x89, S0=-0x4157+0xd991+-0x61*0x51, S1=0xd3e+-0x24b3+0xd*0x253, S2=-0xc863+0x1728+-0x1*-0x1522b, S3=-0x1bee+0xef*0x3+0x1bfb, S4=-0x266f*0x1+0xa*-0xcdb+-0x1*-0x147f7, S5=0x5a*-0x124+0x366d*0x2+0x9ac9, S6=-0x7ba6*0x2+-0x2*0x8964+0x2ab10, S7=-0x390e*0x2+-0xe51*-0x2+0xf677, ` str = str.replace(/=(.*)(?=,)/g, (e, p) => '=' + eval(p)) alert(str) |
Думаю тебе будет правильно разобраться с такой темой как "AST дерево".
Найти для ноды парсер JavaScript который строит это самое AST дерево. Это позволит работать с кодом как с древовидной структурой найти нужные тебе лексемы проверить на наличие соседних лексем и в случае необходимости заменить узлы на необходимые тебе. Именно так и работают деобфускаторы, бьютифаеры и прочее. Просто это гораздо легче и эффективнее чем парсинг грубой силой регулярными выражениями. Реальная твоя задача для меня еще не понятна возможно то что ты хочешь получить уже есть в строковых значениях в снапшоте отладчика ну или это можно поймать в другом месте парой кликов. |
https://www.youtube.com/watch?v=ILSpvViUlPU хороший доклад про AST
|
Часовой пояс GMT +3, время: 08:39. |