プログラムの内容には IP などの個人情報が含まれているため、プログラムを安全にする必要があります (知っておく必要がある場合はプライベート IRC チャット)。私の計画は、プログラムのバイトを読み取り、AES のような対称暗号化アルゴリズムを作成してバイト配列を暗号化し、セキュリティを強化するために、デバッグやエミュレーターなどを処理できるその他のマイナーなものを追加することです。次に、codedom を使用して、これらの暗号化されたバイトを「運ぶ」スタブを作成します。どちらがコードを「運ぶ」ことができるかを知る方法は 2 つあります。
- 暗号化されたバイトをスタブに追加して、復号化、書き込み、および実行します。(ドロップといいます)
- それをスタブのリソースに追加して、復号化してロードできるようにし、メモリで実行できるようにします。
リソースに追加してから復号化、書き込み、実行するか、追加してから復号化、ロードしてメモリ内で実行するという 4 つの方法があります。コードを少し難読化することもできますが、それで大きな違いが生じるとは思えません。
方法 2 は悪用されたようで、アンチウイルスによって検出されます。デバッグのたびにアンチウイルスによってプロジェクトがブロックされるのは本当に面倒です。Red Gate Reflector などのプログラムで簡単に逆アセンブルされるのを防ごうとしてプログラムがすべて実行されている場合、ユーザーにとって誤検知になるだけの言い訳は十分にあります。逆アセンブルされた場合でも、SQL ログイン メソッドなどのデータベース情報が分析されます。
これを行う方法は他にもありますか?