![]() |
eXeL@B —› Вопросы новичков —› ищу деобфускатор простого lua кода |
Посл.ответ | Сообщение |
|
Создано: 01 июля 2011 22:19 · Личное сообщение · #1 Привет, узнал об обфускации и наконец-то понял, что за ересь происходила в коде программы, прошу подсказать известные деобфускаторы lua или помочь восстановить код имеющий обфускированный вид или хотя бы подсказать как его деобфускировать, так как таблицу кодов символов lua я не смог найти Code:
![]() |
|
Создано: 01 июля 2011 22:33 · Личное сообщение · #2 |
|
Создано: 01 июля 2011 22:35 · Личное сообщение · #3 |
|
Создано: 01 июля 2011 22:45 · Личное сообщение · #4 OKOB пишет: да врядли речь идет об обфускации. Это наверняка байткод после компиля. Нужон декомпиль. Гугли или вот. http://lua-users.org/wiki/LuaTools. раздел Assembler / Disassembler / Bytecodes. Там и отладчики и профайлеры есть. Можешь ковыряться. благодарю за ссылку, попробую я вовсе не lua гуру, поэтому вопрос, если эти числа из первого поста через функцию string.char перегоняются в строку и конкатенируются, а потом вызывается стандартная луа функция loadstring с параметром в виде полученной строки, то это точно байткод? зачем его тогда прогонять через string.char? ![]() |
|
Создано: 02 июля 2011 00:14 · Поправил: ohos · Личное сообщение · #5 сохранил в файл строку собранную через string.char и получилось следующее Code:
это байткод? потому-что оно работает и как не странно выполняет определенные действия, но я никак не могу понять - как... исходника кода что-то не видно тут ![]() ![]() |
|
Создано: 02 июля 2011 01:25 · Поправил: OKOB · Личное сообщение · #6 IMHO Интерпретатор ЛУА встроен в вашу программу и исполняет байткод содержащийся в ней в виде потока/массива/пула (нужное подчеркнуть) данных. То что вам удается собрать ЭТО и есть (все не все) байткод. Нужно это поместить в бинарный файл с расширением lub и попытаться это скормить декомпилятору. В прицепе скомпилированный ЛУА файл, в котором минимум 5 байт (сигнатура) соответствуют приведенному вами. ![]() ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 02 июля 2011 01:35 · Поправил: ohos · Личное сообщение · #7 OKOB пишет: Нужно это поместить в бинарный файл с расширением lub и попытаться это скормить декомпилятору. я просто конвертнул исходные числа в Hex и сохранил в тот lub файл,вроде бы все хорошо, и дале luadec.exe что-то стал делать, плохо только то, что не ясно что он сделал в итоге ![]() ![]() |
|
Создано: 02 июля 2011 03:10 · Личное сообщение · #8 |
|
Создано: 03 июля 2011 01:36 · Поправил: ohos · Личное сообщение · #9 OKOB пишет: А вообще надоело лечить по фотографии. я просто не хотел пугать людей, задавать сразу кучу необдуманных вопросов и вываливать кучу информации разом, но если вам интересно, то подробности ниже: моя задача - понять как такой аддон сделали и научиться делать такие же имеется mmorpg игра Runes of Magic (программа) в которую встроен интерпретатор lua + xml кода (в lua здесь входят часть стандартных функций и названия специальных игровых API, которые можно вызвать из луа с помощью специального имени, типо SetCameraPosition(x,y,z), где все аргументы должны быть integer), таким образом весь интерфейс игры написан на них, а это в свою очередь дает возможность писать аддоны к игре на этом же lua + xml мне попался аддон исходник которого нечитаем, из-за этого его невозможно ни понять не изменить, он выглядит так (я его сделал более компактным, функционал не пострадал): Code:
игра весит 4 гига, скачать можно тут http://rmonline.ru/download/client/ , либо с торрентов http://rutracker.org/forum/viewtopic.php?t=2806944 (с бесплатной регистрацией), http://rutor.org/torrent/106631 (без регистрации), для работы аддонов их нужно класть в специальную папку относительно папки игры ..Runes of magic\Interface\addons в папку addons кладутся папки с файлами аддона, в которые обычно входят .toc (указывает клиенту какие файлы в папке грузить), .lua (в основном код для выполнения вычислений), .xml (код с интерфейсом, кнопки, рамки, слайд бары и прочее) файлы, описаный аддон можно взять тут http://zalil.ru/31370713 или http://www.multiupload.com/0SELR2WKBY в самой игре есть возможность исполнять lua код прямо из чата, после команды /run , например есть способ вывода строк на экран через функцию DEFAULT_CHAT_FRAME:AddMessage(), так что отправленное в чат /run DEFAULT_CHAT_FRAME:AddMessage('тест') напишет текст 'тест' без кавычек системным цветом (не шлется на сервер), при изменении файлов аддона их можно подгрузить не выключая игру командой в чате /run ReloadUI() функцией lua string.len можно узнать количество байт для строки или одного символа, например для латинской A будет 1 байт, а для русской А уже 2 байта, я через string.len проверил длинну всех получающихся символов после использования string.char к числам исходника, у всех вышел 1 байт, сохранив шестнадцатиричные представления чисел из той строки repmanPro полученное думал скормить loadstring как строку, шестнадцатиричное число (добавив в начале 0x) ![]() |
|
Создано: 03 июля 2011 02:07 · Личное сообщение · #10 сделано как я и говорил. 1) из массива repmanProt сделан бинарный файл _repman.lub 2) скормлено декомпилю в двух режимах (ассемблера байткода и полного декомпиля) результаты в прицепе ![]() ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 03 июля 2011 02:16 · Поправил: ohos · Личное сообщение · #11 |
|
Создано: 03 июля 2011 02:39 · Поправил: OKOB · Личное сообщение · #12 чтобы долго не обьяснять. В архиве весь набор. 1) С-шный файл 11.cpp с массивом скомпилирован в 11.exe 2) при его запуске он показывает длину массива и смещение в файле 3) теперь вырезаем наш бинарник из 11.exe с помощью утилиты cut.exe 4) и кормим его декомпилятору все собрано в батник. по поводу скобок к авторам декомпилера ЛУА ![]() ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 03 июля 2011 02:58 · Поправил: ohos · Личное сообщение · #13 |
|
Создано: 03 июля 2011 03:09 · Личное сообщение · #14 |
|
Создано: 03 июля 2011 22:15 · Личное сообщение · #15 |
|
Создано: 03 июля 2011 22:49 · Личное сообщение · #16 |
|
Создано: 03 июля 2011 23:19 · Личное сообщение · #17 |
![]() |
eXeL@B —› Вопросы новичков —› ищу деобфускатор простого lua кода |