【发布时间】:2010-09-09 10:47:43
【问题描述】:
我有一个已编译的 C/C++ Dll。
我想知道这个 Dll 调用了哪个外部 API 函数。
你知道任何可以提供这些信息的工具吗?
谢谢。
【问题讨论】:
我有一个已编译的 C/C++ Dll。
我想知道这个 Dll 调用了哪个外部 API 函数。
你知道任何可以提供这些信息的工具吗?
谢谢。
【问题讨论】:
您可以使用Dependency Walker 查看 DLL 的 API 导入。当然,这并不能告诉您 DLL 是动态加载还是 COM 使用。
除此之外,您还可以对 windbg 使用更重的 logexts 扩展,它将在运行时转储所有 API 调用。
【讨论】:
将dumpbin 实用程序与/imports 命令行选项结合使用。还有一个 depends.exe 实用程序,作为 GUI。
请注意,这些不会告诉您链接到使用 GetProcAddress 的函数,也不会告诉您通过 COM 访问的接口。
【讨论】:
Dependency Walker (depends.exe) 将成为您的朋友。
【讨论】:
外部 API 是什么意思(您是否将 WINAPI 视为外部 API?)。 如果 windows API 不是外部 API,那么我们可以使用 DumpBin.exe 显示二进制文件中使用的所有外部 API。 如果您想查看可执行文件的依赖 dll/exe,则可以使用 Depend.exe。
【讨论】:
AFAIK,依赖遍历器只显示直接调用的函数,而不是通过函数指针调用的函数。如果您想查找所有调用的 API,请记录对 GetProcAddress 的所有调用。
【讨论】:
Ida Pro,普遍接受的反汇编程序。它具有导入和导出功能的单独选项卡。它在逆向工程领域还有其他几种用途。
【讨论】: