私は、dbgHelpを使用してDLL(エクスポートされていないメソッドさえも)にエクスポートされた関数をリストする方法を(C++/Windowsでは)探しています。
誰でもどの方法でそれを行うことができるのか分かりませんか?
ありがとう)エクスポートされたDLLの関数をリストする
6
A
答えて
6
これを実行するためのコードhereがあります。私はそれを少しきれいにして、以下のシナリオで機能名をKernel32.Dll
から検索しました。
#include "imagehlp.h"
void ListDLLFunctions(string sADllName, vector<string>& slListOfDllFunctions)
{
DWORD *dNameRVAs(0);
_IMAGE_EXPORT_DIRECTORY *ImageExportDirectory;
unsigned long cDirSize;
_LOADED_IMAGE LoadedImage;
string sName;
slListOfDllFunctions.clear();
if (MapAndLoad(sADllName.c_str(), NULL, &LoadedImage, TRUE, TRUE))
{
ImageExportDirectory = (_IMAGE_EXPORT_DIRECTORY*)
ImageDirectoryEntryToData(LoadedImage.MappedAddress,
false, IMAGE_DIRECTORY_ENTRY_EXPORT, &cDirSize);
if (ImageExportDirectory != NULL)
{
dNameRVAs = (DWORD *)ImageRvaToVa(LoadedImage.FileHeader,
LoadedImage.MappedAddress,
ImageExportDirectory->AddressOfNames, NULL);
for(size_t i = 0; i < ImageExportDirectory->NumberOfNames; i++)
{
sName = (char *)ImageRvaToVa(LoadedImage.FileHeader,
LoadedImage.MappedAddress,
dNameRVAs[i], NULL);
slListOfDllFunctions.push_back(sName);
}
}
UnMapAndLoad(&LoadedImage);
}
}
int main(int argc, char* argv[])
{
vector<string> names;
ListDLLFunctions("KERNEL32.DLL", names);
return 0;
}
+0
OPは、エクスポートされていないシンボルを含むdbghelpベースのソリューションを求めています... – wj32
9
他のツールのコンテンツには、エクスポートされた機能を一覧表示する番号があります。 1つはMicrosoftのdumpbin
です。 /exports
オプションを使用してください。
歓声& HTH。、
+1
このクエリはdbgHelp Apisを使用しています。 – Chubsdad
関連する問題
- 1. エクスポートされたdll関数からのdllのグローバルデータへのアクセス
- 2. C#DLL - エクスポート関数
- 3. DelphiとC++、DLLがエクスポートされた関数で、私はDLLを持って
- 4. DLLエクスポート関数が2回呼び出されました
- 5. 特定のテンプレート化された関数のみをエクスポートするDLL
- 6. DLL内にエクスポートされた関数を転送する際の問題
- 7. dllのclrパラメータを含むエクスポート関数?
- 8. C++の関数のDLLでエクスポートし、C#
- 9. dllのみからのエクスポート関数ordinal
- 10. ShellExecuteからDLL delphiへのエクスポート関数
- 11. MFC拡張DLLを再コンパイルすると、エクスポートされた関数のエントリポイントが変更される
- 12. golangにパッケージからエクスポートされた関数のリストを取得する
- 13. エクスポートされた関数シンボル名のマングリング
- 14. 公開エクスポートされたグローバルDLL変数の使用方法は?
- 15. 関数をdllから序数でエクスポートするだけでは関数名は表示されません
- 16. リリース構成でビルドするとDLL関数がエクスポートされない
- 17. 関数の装飾なしでdllのクラスをエクスポートする
- 18. C#抽象クラス/インタフェースをエクスポートするC++ DLL関数の消費?
- 19. Sinonは、エクスポートされた関数
- 20. エクスポートされた関数は、活字体
- 21. コンパイルされたDLLの関数を変更する方法
- 22. Mac OSXでDLL関数をエクスポートする正しい方法
- 23. DLLからオーバーロード関数をエクスポートするには?
- 24. DLLから定数をエクスポートする
- 25. 注入されたDLLの関数を呼び出す
- 26. TypeScriptのモジュールからエクスポートされた関数を呼び出す
- 27. dllから関数をインポートしてエクスポートできますか?
- 28. DLLからエクスポートされたネイティブ関数を直接呼び出す方法はありますか?
- 29. エクスポートされた変数は、ノードjsで関数がエクスポートされる間に未定義になりました
- 30. dyn.loadを使用してRにロードされたDLL内の関数のリストを取得する方法
の可能重複[DLLエクスポート機能を列挙するためのWin32 API?](http://stackoverflow.com/questions/1128150/win32-api-to-enumerate-dll-export-functions) – icecrime
デバッガのdoesn関数がエクスポートされるかどうかは気にしない。コードサンプルはhttp://msdn.microsoft.com/en-us/library/ms679318%28VS.85%29.aspx –
ですが、私はPDBを持っていないケースを見ています。 SymLoadModuleExは私を助けますか? – Idov