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

congic

Известный
328
99
Вот же, работает:
Lua:
function main()
    while not isSampAvailable() do
        wait(0)
    end

    sampRegisterChatCommand("house", (function (arg0)
        var1, var2, var3 = arg0:match("(.*)%s+(.*)%s+(.*)")
        local slot1_a1015 = tonumber(var1)
        local slot2_a1018 = tonumber(var2)
        var3 = tonumber(var3)
        var2 = slot2_a1018
        var1 = slot1_a1015

        if var1 ~= nil and var2 ~= nil and var3 ~= nil then
            placeWaypoint(var1, var2, var3)
        end
    end))
    wait(-1)
end
Другие скрипты пробовал декомпилировать им? Другие версии декомпилятора на Питоне файл создают? Питон в PATH есть?
Пробовал ,другие создают ,не знаю что такое path
 

Maxim25012

Известный
Автор темы
518
239
Пробовал ,другие создают ,не знаю что такое path
При установке Питона предлагается добавить его в PATH, чтобы его можно было из под командой строки вызывать, написав просто "python". Но раз другие у тебя работают, значит у тебя оно и так туда добавилось.

Тогда я не знаю, в чём проблема. Может, из-за того, что я поменял кодировку создаваемого файла с UTF-8 на ANSI. Странно, у меня ведь работает. У тебя какая версия Питона?

Попробуй заменить на 359-ой строке в файле main.py "ansi" обратно на "utf-8".
 

congic

Известный
328
99
При установке Питона предлагается добавить его в PATH, чтобы его можно было из под командой строки вызывать, написав просто "python". Но раз другие у тебя работают, значит у тебя оно и так туда добавилось.

Тогда я не знаю, в чём проблема. Может, из-за того, что я поменял кодировку создаваемого файла с UTF-8 на ANSI. Странно, у меня ведь работает. У тебя какая версия Питона?

Попробуй заменить на 359-ой строке в файле main.py "ansi" обратно на "utf-8".
Заменил ,не помогло.
Версии 3.11 и 3.12 ,честно не знаю как понять какая используется ,обе есть на компе
 
  • Грустно
Реакции: Maxim25012

Maxim25012

Известный
Автор темы
518
239
Странно, у меня та же версия, но всё работает, как надо, да и работать оно должно на версиях вплоть до "3.8". Ещё страннее, что никаких ошибок не пишет. По идее, если оно доходит без ошибок до текста "Для продолжения нажмите любую клавишу . . .", то всё нормально и файл должен появиться рядом.

Ничем помочь не могу.
 
  • Грустно
Реакции: congic

Сосиски с пюре

Потрачен
8
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
подскажи пж
можно как то получить ориг текст?
1729362454873.png

и еще ориг переменные как то можно узнать?
 

Maxim25012

Известный
Автор темы
518
239
подскажи пж
можно как то получить ориг текст?
Посмотреть вложение 254574
и еще ориг переменные как то можно узнать?
Текст зашифрован и расшифровывается функцией "_C", найди её. Придётся расшифровывать самостоятельно либо следуя алгоритму, либо копируя функцию "_C" в отдельный скрипт, позволяя компутатору сделать это за тебя:
Lua:
function _C(arg0)
    -- thy _C goes here
end

print(_C("some fucked up text"))
Можно ещё заморочиться и с помощью регулярок заменить все случаи, где эта функция встречается, на расшифрованный текст.

Названия локальных переменных не сохраняются при компиляции.
 
  • Нравится
Реакции: Сосиски с пюре

Сосиски с пюре

Потрачен
8
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1729406328143.png
Что делать с этим?
мешают скрипт запустить
в ручную уже лень как то их убирать
это во всех скриптах после декомпа
 

Maxim25012

Известный
Автор темы
518
239

Maxim25012

Известный
Автор темы
518
239
Слегка обновил дизассемблер в составе декомпилятора:
  • Добавлена возможность направить вывод дизассемблера в файл. Для этого нужно, чтобы название файла на выходе оканчивалось на ".asm".
  • Исправлен один из случаев, когда дизассемблер мог впадать в бесконечный цикл из-за некорректной инструкции при генерации комментария.
  • Исправлен недочёт, когда дизассемблер прекращал работу, если он не мог сгенерировать комментарий к инструкции из-за ошибки. Вместо этого, комментарий просто не будет добавлен.
  • Добавлен параметр "--no-asm-comments", отключающий генерацию комментариев к инструкциям, что существенно ускоряет процесс дизассемблирования больших скриптов и уменьшает размер файла на выходе, особенно для скриптов с намеренно испорченным байт-кодом.
  • Добавлен параметр "--asm-comment-length-limit", ограничивающий длину комментариев к инструкциям до указанной, но комментарии также генерируются, поэтому на скорость почти не влияет.
  • Исправлен случай, когда дизассемблер крашился из-за того, что не мог дизассемблировать прототип, загружаемый инструкцией "FNEW" (если загружаемый прототип на деле оказывался строкой, числом, или его не было вовсе).
Ещё добавил скрипт "disassemble.py". Он как "decompile.py", только дизассемблирует в файл, а не декомпилирует:
Для того чтобы дизассемблировать, нужно перетащить скрипт на "disassemble.py". Он применяет новоиспечённый параметр "--no-asm-comments" для того, чтобы процесс дизассемблирования был максимально быстрым. Если комментарии нужны, то придётся запускать декомпилятор со своими параметрами через командную строку, либо редактируя "disassemble.py" на 16-ой строке.
Код:
python main.py --enable_logging --catch_asserts --asm --asm-comment-length-limit=100 --file="input.lua" --output="output.asm"

И ещё, – не совсем по теме – вот немного фикшенный (буквально одна дополнительная проверка на 49 строке) анпрот Саксона.
 

Вложения

  • 34__luaunprot-v2.0.1.py
    7.6 KB · Просмотры: 5
  • Вау
Реакции: влад динозавр