0

(ソースコードなしで)購入したDLLファイルがあり、「LoadLibrary( "file.dll")」を使用してアプリケーションにリンクすると、一意のIDを取得する関数がインポートされます。コンピューター。ここで、ハッカーがこの関数の名前を検出し、同じ名前と同じ関数の名前を含む新しいdllファイルを作成しているとします。彼の新しいDLLファイルは置き換えられ(単に彼のdllをディレクトリに取得し、私のものに置き換えることによって)、一意のIDの機能は使用可能ですが、何も返しません。そのため、アプリケーションは空白の一意のIDを取得し、ハッカーは私の手から離れました。

それを防ぐ方法はありますか?私のプロジェクトはC++でプログラムされています。

前もって感謝します。

4

2 に答える 2

0

別の可能性(外部DLLの場合は本当に必要です):名前ではなく序数で関数をエクスポートするようにDLLプロバイダーを説得することができます。これは、隠すことによるセキュリティにつながります。これはフックや置換を妨げることはありませんが、少なくともこれはエクスポートされた関数を理解するのに明白にはなりません。CreateMyFile(名前でエクスポートされた関数)の代わりに73(番号でエクスポートされた関数)のように。

于 2012-05-07T13:11:25.127 に答える
0

DLL を入手した会社に、この DLL の LIB を提供するよう依頼することができます。次に、この LIB に静的にリンクできます。これを行うと、ライブラリのコードはコードの一部になり、フックに対して透過的になります!.

于 2012-05-07T13:06:29.513 に答える