Исходник Софт Супер-пупер-мега-декомпилятор-лужи9001 (модификация LJD)

Maxim25012

Известный
Автор темы
430
190
Оригинал (самый крутой форк LJD на данный момент):
Декомпилятор не мой. Автор – Andrian Nord, а форк принадлежит ZNix'у. Лицензия и копирайты остались на своих местах. Я лишь внёс изменения, которые перечислены ниже.

Изменения (исправления сделаны не до конца и коряво, зато работает!... Наверное):
  • Отключен грязный фикс repeat until true циклов, вызывавший ошибки.
  • Исправлен баг с циклами for, когда декомпилятор считал переменную, объявленную до цикла, в теле цикла за новую.
  • Отключен код, отвечавший за складывание таблиц, который вызывал генерацию невалидного кода.
  • Исправлена ситуация, когда декомпилятор не учитывал отсылки на локальные переменные из дочерних прототипов (функций).
  • Разрешено упрощение временных функций (используются только единожды: объявляются и сразу вызываются), как в https://github.com/marsinator358/luajit-decompiler-v2.
  • Добавлено игнорирование большинства мусорных инструкций (в консоль пишется, что они удаляются, но это только для декомпилятора, содержимое файлов остаётся прежним).
  • Исправлен случай, когда узлы могли посещать самих себя, что приводило к бесконечной рекурсии (только для логических, унарных и математических операций).
  • Увеличен лимит рекурсии до 1 миллиона (рекомендуется держать диспетчер задач наготове)
  • Исправлено добавление повторяющихся ссылок на объекты, что могло приводить к переполнению памяти во время декомпиляции.
  • Убрано множество проверок, которые препятствовали декомпиляции (и так сойдёт).
  • Прочие мелкие, корявые фиксы, разбросанные по всему коду.
Теперь он должен разбирать даже самый запущенный байт-код для лужи, но я этого не гарантирую.

Чтобы декомпилировать, нужно также, как и до этого, установить Питон и перетащить скрипт на "decompile.py".

Я не стал лазить своими грязными руками в новом декомпиляторе лужи от Марсинатора по причине того, что он написан на C++, а это страшно!!! На самом деле дело не совсем в этом, а в том, что у него уже из коробки есть пара дыр: как минимум его можно заставить читать невыделенную область памяти намеренно испорченным байт-кодом. А учитывая мои руки-крюки, я бы сделал только хуже: сначала он просто не такой байт из памяти считает, а потом уже какой-нибудь Лолендор через твою вебку смотрит на то, как ты душишь своего питона на исходники ЛуаЖит o_O. Да и такой подход не самый верный, лучше будет сделать какую-нибудь отдельную программку, которая будет избавлять байт-код от нечисти, чтобы его можно было потом уже любым декомпилятором открыть, и сделать основой этого технику для оптимизации DCE (Dead Code Elimination), ведь большая часть мусорного кода тупо лежит мёртвым грузом, а иначе бы она заставила лужу конкретно так просраться.
 

Вложения

  • LJD.zip
    602.2 KB · Просмотры: 64
Последнее редактирование:

takiyama

Участник
27
23
я про то как им пользоваться мне лень разбираться)
Чтобы декомпилировать, нужно также, как и до этого, установить Питон и перетащить скрипт на "decompile.py".
прямым текстом написано, читай хотя бы до конца что ли
 
  • Нравится
Реакции: Vespan

arcashaded

Новичок
1
0
попробуйте вскрыть кто нибудь как то, скрипт оч полезный но с защитой и привязкой по железу
 

Вложения

  • GardenHelper.lua
    94.6 KB · Просмотры: 8