Исходник Lua Debugger

pchelkin (mearfy)

Известный
909
371
((

1664730907593.png
 
  • Нравится
Реакции: fantaressel

Dewize

Известный
447
92
Всё ещё робит? Если да, то можете показать как он работает
 

zimerfm

Участник
72
7
может кто объяснить, как отлажить? можно ли отлажить luac? я в папке с визуал студио поменял на luac, но, не сработало. запускаю батник - нет реакции. перетаскиваю луас на батник - нет реакции
 

priv

Новичок
1
0
прив

Я заметил что развелось слишком много маминых луа крякеров, и решил переписать немного свой старенький разьебыватель протекторов, крипторов, пакеров, привязок две тысячи

Если раньше он работал так:
  • Сейвятся жизненно-важные отладчику функции в 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 и прочих систем)


Ссылка на гитхаб: жопа (я не так давно пользуюсь гитхабом, строго не судить если чет не так)

пока
а как его запустить чтобы он деобфуцировал плигин