прив
Я заметил что развелось слишком много маминых луа крякеров, и решил переписать немного свой старенький разьебыватель протекторов, крипторов, пакеров, привязок две тысячи
Если раньше он работал так:
- Сейвятся жизненно-важные отладчику функции в orig_funcname = funcname и потом funcname просто проксируется (_G[funcname] = function() --[[some code]] end)
- Вырезается debug таблица для скрипта-цели путем подмены функций в регистре, сохраняется для использования отладчиком
- Загружается скрипт-цель для отладки путем require
- Костылями и прочим дерьмом добиваемся результата (дампим функи, достаем строки, скрипт из-под протектора и так далее)
То сейчас же я переписал алгоритм работы.
- Имеется файл LRCFuncs который хранит в себе список функций для проксирования (на самом деле мне не нравится такое решение, его надо бы переделать) и возвращает их в таблице
- Загружается скрипт-цель путем loadstring, проверяется успешность загрузки
- При помощи setfenv скрипту-цели ставится таблица _G заданная отладчиком (состоит из функций LCRFuncs и замененной debug таблицы)
- Устанавливается метатаблица скрипту-цели, где пока-что есть только обработка __call, __newindex и __index (надо доделать, я вьебал костыль в виде local thisFunc = debug.getinfo(1, "f").func)
- Скрипт запускается и в рантайме обрабатываются ошибки типа попытки вызвать неопределенные функции
- Для случаев объявлений новых функций в _G у отладчика есть утилита dumper которая автоматически дампит все новые функции в папочку dumps
- После загрузки скрипта и подготовки его "внутренностей" отладчик ищет точку входа MoonLoader`а (глобальная функция main) и вызывает ее
- Выход
Но это даже не половина от всего задуманного функционала.
Сейчас там хуево в плане кода, а именно как я сказал уже выше - надо рефакторить LRCFuncs, а так-же надо сделать обработчики на все типы метаметодов. На данный момент там стоит затычка в виде debug.getinfo(1, "f").func
Зачем я опубликовал это?
Во-первых дабы отладчик не умер как множество моих проектов. Я создал публичный репозиторий на гитхабе
Во-вторых я заметил что на бластхаке давно не было интересных тем, пора бы уже что-то самому дропнуть сюда
В-третьих я заметил что многих стала интересовать тематика кряков луа
Что можно сделать в отладчике?
- Инжект луа-кода прямо во время выполнения скрипта
- Патчер
- Возможность конфигурировать при запуске функции отладчика
- Какая-нибудь хуевина которая будет автоматически взламывать очередное говно с привязкой а еще декомпилить до исходника и находить фото члена автора скрипта
- Хз что еще можно придумать
Видео: (на нём можно заметить как отладчик обходит какой-то протектор, а так-же запечатлена работа утилиты dumper и прочих систем)
Ссылка на гитхаб:
жопа (я не так давно пользуюсь гитхабом, строго не судить если чет не так)
пока