単一の(C ++コンパイル済み)DLLファイルを検査し、Win32関数がそれを呼び出すものを見つける方法はありますか?
ファイルがありMyDll.dll
ます。このdllのどこかに、Windowsレジストリから情報を取得しているコードがあります。
DLLがアクセスしているレジストリキーを見つける方法はありますか?
DLLを実行する必要があります。そうすると、Sysinternals(現在はMicrosoftの一部)Process Monitorは、プロセスによって行われたすべてのレジストリアクセスを表示し、それぞれのスタックトレースをキャプチャします(これを使用して、そのDLLから行われた呼び出しを見つけることができます)。
DLLのPEImportsテーブルにアクセスして、DLLが静的にリンクするWin2 API関数を判別できますが、これは、関数がDLLのコードで実際に呼び出されることを保証するものではなく、動的にロードされるWin32API関数も考慮していません。経由GetProcAddress()
。
DLLがアクセスしているレジストリキーを見つけるには、次のことができます。
RegOpenKeyEx()
ますRegQueryValueEx()
。HeaventoolsSoftwareのPEExplorerがあります。
エクスポート関数リストビューアには、他のアプリケーションから呼び出される可能性のある関数が表示されます。
詳細については、特にDLLエクスポートビューアのページを参照してください。