3

C++ ビルダーでビルドされた大規模なアプリケーションがあり、起動時にフォルダーを参照し、存在するすべての dll ファイルをロードします。私はこれはあまり良いことではないかもしれないと考え、web ブラウザーを起動し、所有されているという言葉で画像を開くだけの dll を作成して考えてみました:P

とにかく、うまくいきました。そのため、DLL が切り替えられたり、新しい DLL が追加されたりすることで、システムが何らかの形で危険にさらされる可能性があります。リモート管理アクセス、ドライブのフォーマット、名前を付けます。

そこで私の考えは、この穴をふさごうとする方向に向かいました。これのベストプラクティスは何ですか? 私は、DLLの. 有効な dll の名前のリストを.exe に保持しても、dll が置き換えられる可能性があるため、実際には解決しません。名前とチェックサムのリストは機能しますが、自動読み込み機能を維持し、正しく署名された dllのみを読み込むと便利です。

編集:仕事をしているように見えるsigntool.exeの使用を検討しています。しかし、後でC++でdllの署名を実際にチェックする方法についての良い参考文献が見つかりません。リンクを持っている人はいますか?

4

2 に答える 2

2

基本的にWindows用に書かれたすべてのものに影響を与えるdllハイジャックエクスプロイトに対して脆弱であるようです(そして、Microsoftがブリックを保護できなかった方法のさらに別の例です.)。Microsoft は、この欠陥を軽減するための推奨事項を用意しています。

于 2011-10-28T13:51:14.593 に答える
1

DLL を含むフォルダーを保護して、管理アクセス権を持つユーザーのみが書き込みできるようにする必要があります。

その上、そのようなフォルダーに書き込むことができる人は、他にやりたいことがほぼ何でもできますが、それについてできることはあまりありません。

于 2011-10-28T14:00:35.307 に答える