winapi - 我可以使用 GetProcAdress 检查我的进程中使用了哪个 dll 函数吗?
问题描述
我可以GetProcAdress
用来检查我的进程中使用了哪个 dll 函数吗?
我想从我的进程中运行的 dll 中检测特定函数。
GetProcAddress(GetModuleHandle(TEXT("any.dll")), "AnyFunction");
如果它返回的不是null,我可以说这个函数使用了吗?
解决方案
GetProcAddress
实际上是检查是否在特定的 DLL中导出了特定的函数。
我想你想要的是检查一个特定的函数是否被导入到一个特定的 DLL 中,AFAIK 没有 API 可以做到这一点,你必须自己手动解析 PE 数据才能得到你想要的。
好吧,根据您的新评论,您想获取LoadLibrary
在运行时通过哪些其他 DLL 加载,对吗?
如果是这样,解析PE数据已经不足以满足你的需求,你需要在自己的进程中钩住LoadLibrary
和函数。GetProcAddress()