Как я могу сделать сценарии Lua неразборчивыми? - PullRequest
5 голосов
/ 14 декабря 2011

У меня есть много скриптов Lua (для многопользовательского мода Multi Theft Auto), которые скомпилированы по многим причинам, включая предотвращение кражи.На самом деле это всего лишь средство защиты от кражи, поскольку Luadec (http://luadec51.luaforge.net/) может легко декомпилировать скрипты. У кого-нибудь есть какие-либо советы о том, как я могу сделать свои скрипты не декомпилируемыми?

Ответы [ 4 ]

6 голосов
/ 14 декабря 2011

Шифрование; это действительно единственный способ, которым это сработает. Конечно, поскольку ваша программа должна была бы их дешифровать, они могли бы просто извлечь дешифрованные данные прямо из памяти.

Так что нет, ты ничего не можешь сделать. Любой метод в некоторой степени будет «лишь средством защиты от кражи». Даже компиляция в фактическую сборку является просто сдерживающим фактором, поскольку ее можно декомпилировать во что-то, не совсем похожее на исходный код.

Вопрос просто в том, сколько неприятностей вы хотите доставить пользователю. Шифрование, вероятно, дает вам максимальную отдачу. Это заставит их пройти через исполняемый файл, чтобы выяснить, как вытащить данные из памяти. Большинство случайных пользователей не захотят этого делать.

2 голосов
/ 14 декабря 2011

Если вы хотите стать действительно серьезным, вы можете изменить коды операций, сгенерированные и используемые lua vm, тогда он не может быть декомпилирован с помощью готового программного обеспечения. Хотя это может вызвать у вас больше проблем, чем стоит - вам придется поддерживать собственную версию lua, и вы, вероятно, не сможете использовать такие вещи, как luajit.

Чтобы декомпилировать, они должны были бы составить карту кодов операций, которые вы придумали, и перевести. Это, вероятно, не будет слишком сложно сделать, но я бы, вероятно, не сделал.

[Обновить]

Глядя на источник, это может быть довольно просто, есть два файла lopcode.c и lopcode.h, может быть, если вы просто измените порядок кодов операций в них, то все будет готово. Пожалуйста, напишите, если вы закончите делать это, и это работает или нет.

1 голос
/ 27 сентября 2013

Multi Theft Auto теперь поддерживает шифрование скриптов.Вы можете скомпилировать их онлайн на http://luac.mtasa.com/ или загрузить автономный компилятор.

0 голосов
/ 14 декабря 2011

Я не думаю, что это возможно. Сама природа зверя (очень минимальный язык, работающий на очень маленькой виртуальной машине) в основном запрещает это.

Лучшее, на что вы можете надеяться, это то, что декомпилированный код будет настолько трудным для понимания, насколько это возможно для человека.

...