XNAで作成したプログラムは、.NET Refrectorを使用すれば逆コンパイルされて、ソースやリソースが見放題になります。
ProjectK 作成時は、XNAで作成したWindows用ゲームは、デフォルトでは難読化されないため配布するのをためらっていましたが、今後はWindows版を、ある程度安心して配布できます。
いくつか難読化フリーソフトを試しましたが、国産のものは、Genericが使用できなかったり、変換に失敗したりとどれも使用できるものはありませんでした。実際にいろいろ試した結果
お勧めは、 Babel.NET です。
設定はすべてコマンドラインで行いますが、バッチファイルを一度作成するだけで済むし、必要な機能はすべて利用できました。
注意点としては、XNAライブラリ(.dll)は、基本的に名前の難読化はしないほうが無難です。(XNAアプリケーションから、ライブラリを名前でリンクするので当然といえば当然)。ただし、「名前は変更しないが、コードは難読化して逆コンパイルだけはできないようにする」というのがベターだと思います。
これでも難読化を解析してソースがみれる人はいますが、その人達はソースをみても意味がことがおおいので、目的は果たせていることになります。今の私の設定を公開しておきますので、環境に合わせてご使用ください。ProjectK2で使用しているバッチファイルは、以下のようになっています。XNAアプリケーションの位置にコピーして、babel.batをダブルクリックして実行します。もしくは、Visual Studioのリリース版のビルドイベントとして登録するのも良い方法だと思います。
なお、ライセンス関連は念のため各自でご確認ください。
babel.bat のサンプル
1: del /S /F /Q Nandoku
2: mkdir Nandoku
3: mkdir Nandoku\Content
4:
5: xcopy /E ProjectK2\Bin\X86\Debug\Content Nandoku\Content
6: copy ProjectK2\Bin\X86\Debug\ProjectK2.exe Nandoku\ProjectK2_Org.exe
7: copy ProjectK2\Bin\X86\Debug\ProjectK2Data.dll Nandoku\ProjectK2Data_Org.dll
8:
9: cd Nandoku
10: babel.exe --verbose 1 ProjectK2_Org.exe --overloaded --noflatns --keyfile ..\ProjectK2\ProjectK2.snk --output ProjectK2.exe
11: babel.exe --verbose 1 ProjectK2Data_Org.dll --overloaded --properties --method --noflatns --keyfile ..\ProjectK2Data\ProjectK2Data.snk --output ProjectK2Data.dll
12: cd ..
0 件のコメント:
コメントを投稿