0

プログラムの内容には IP などの個人情報が含まれているため、プログラムを安全にする必要があります (知っておく必要がある場合はプライベート IRC チャット)。私の計画は、プログラムのバイトを読み取り、AES のような対称暗号化アルゴリズムを作成してバイト配列を暗号化し、セキュリティを強化するために、デバッグやエミュレーターなどを処理できるその他のマイナーなものを追加することです。次に、codedom を使用して、これらの暗号化されたバイトを「運ぶ」スタブを作成します。どちらがコードを「運ぶ」ことができるかを知る方法は 2 つあります。

  1. 暗号化されたバイトをスタブに追加して、復号化、書き込み、および実行します。(ドロップといいます)
  2. それをスタブのリソースに追加して、復号化してロードできるようにし、メモリで実行できるようにします。

リソースに追加してから復号化、書き込み、実行するか、追加してから復号化、ロードしてメモリ内で実行するという 4 つの方法があります。コードを少し難読化することもできますが、それで大きな違いが生じるとは思えません。

方法 2 は悪用されたようで、アンチウイルスによって検出されます。デバッグのたびにアンチウイルスによってプロジェクトがブロックされるのは本当に面倒です。Red Gate Reflector などのプログラムで簡単に逆アセンブルされるのを防ごうとしてプログラムがすべて実行されている場合、ユーザーにとって誤検知になるだけの言い訳は十分にあります。逆アセンブルされた場合でも、SQL ログイン メソッドなどのデータベース情報が分析されます。

これを行う方法は他にもありますか?

4

2 に答える 2

2

あなたが説明したことを行う方法はありません。それを取り除く。


そのようなことを行う別の方法は、ユーザーが認証する必要がある Web サービスを用意し、機密情報を安全なチャネル (SSL/TLS など) 経由で送信することです。

2番目のアプローチは、あなたが

  1. 情報を暗号化する
  2. 機密情報の暗号化されたバージョンを実行可能ファイルに埋め込む
  3. 実行時にユーザーに対称キーを要求します (たとえば、データの「パスワード」を入力する必要があります)。
  4. 対称キーを使用して情報を復号化する
  5. 情報を使用する

ここでの大きな欠点は、対称キー (パスワードなど) が何らかの方法で盗まれた場合、攻撃者は暗号化されたすべての情報を取得できることです。

于 2013-01-14T21:38:48.257 に答える
0

どうSecureStringですか?これは、プログラム内の情報をあまり気にせずに隠すことができるようです。実行中にメモリがダンプされると、データは暗号化されます。

于 2013-01-14T21:30:37.373 に答える