5

私は多くの Lua スクリプト (マルチプレイヤー mod Multi Theft Auto 用) をコンパイルしていますが、これには盗難防止を含む多くの理由があります。実際には、Luadec (http://luadec51.luaforge.net/) でスクリプトを簡単に逆コンパイルできるため、これは盗難抑止にすぎません。スクリプトを逆コンパイルできないようにする方法に関するヒントはありますか?

4

4 に答える 4

6

暗号化; それが実際に機能する唯一の方法です。もちろん、プログラムはそれらを復号化する必要があるため、復号化されたデータをメモリから直接奪うことができます。

いいえ、あなたにできることは何もありません。どの方法も、ある程度は「盗難抑止」にしかなりません。実際のアセンブリにコンパイルすることは、元のソース コードと完全に異なるものに逆コンパイルされる可能性があるため、単なる抑止力です。

問題は、ユーザーにどれだけの手間をかけさせたいかということです。暗号化はおそらく、費用対効果が最も高いでしょう。これにより、実行可能ファイルを調べて、データをメモリからヤンクする方法を見つける必要があります。ほとんどのカジュアル ユーザーは、そうしたくないでしょう。

于 2011-12-14T05:37:41.883 に答える
2

本当に真剣に取り組みたい場合は、lua vm によって生成および使用されるオペコードを変更できますが、市販のソフトウェアでは逆コンパイルできません。これにより、必要以上に多くの問題が発生する可能性がありますが、独自のバージョンの lua をサポートする必要があり、おそらく luajit などを使用することはできません。

逆コンパイルするには、あなたが思いついたオペコードのマッピングを理解し、変換する必要があります。それはおそらくそれほど難しいことではないでしょうが、私はおそらくそうしないでしょう。

[アップデート]

ソースを見ると、かなり簡単かもしれません。2 つのファイル lopcode.c と lopcode.h があり、これらのオペコードの順序を変更するだけで完了します。これを実行して、それが機能するかどうかを投稿してください。

于 2011-12-14T05:46:50.567 に答える
1

それは不可能だと思います。獣の性質(非常に小さなVMで動作する非常に最小限の言語)は基本的にそれを禁じています。

あなたが望むことができる最善のことは、人間にとって、逆コンパイルされたコードが可能な限り理解するのが難しいことです。

于 2011-12-14T12:16:20.130 に答える