この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 19046|答える: 0

[WinForm] .net/c#アプリケーションは、呼び出されたdllが偽造に置き換えられないようにどうやって保証するのでしょうか?

[リンクをコピー]
掲載地 2017/10/19 17:14:49 | | | |
最近、ソフトウェアを書いているときに思いついたのですが、もし自分のプログラム.exeしっかり保護されていて、DLLが保護されていなければ、私のアプリケーションはDLLファイルを使うと、他の人はそのDLLファイルを通じて私のプログラムをデバッグするのでしょうか?

今日は、それをテストするための特別なプログラムを書きましょう。アプリケーションを使ってdll内のメソッドを呼び出します。以下のように。



コードはシンプルです:

DLLコード:

アプリコード:



その後、新しいプロジェクトを作成し、新しいクラスライブラリを作成し、同じ型とcsファイルをコピーします。以下のように:



生成されたdllを次の図に置き換えましょう:



プログラムは偽造したdllメソッドを正常に呼び出しますが、生成したdllが偽造されるのを防ぐにはどうすればよいのでしょうか?

簡単なアイデアを思いつきました。アプリケーションにリソースファイルを追加し、読み込むdllファイルとファイルのmd5値、プログラム実行のエントリポイントを入力し、まず読み込むべきdllのmd5値を確認するというものです

DLLファイルのMD5値がリソースリスト内のMD5値と一致しない場合、それはDLLファイルが偽造または悪意のある改ざんを行っていることを意味します。 実践されていないし、論理的に実現可能なんだ!




先の:Winformフォームはスケールを拡張します
次に:.net/c#は自社のDLLが偽造されるのを防ぐために強力な署名を使用しています
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com