首页 > 解决方案 > 我可以使用 GetProcAdress 检查我的进程中使用了哪个 dll 函数吗?

问题描述

我可以GetProcAdress用来检查我的进程中使用了哪个 dll 函数吗?

我想从我的进程中运行的 dll 中检测特定函数。

GetProcAddress(GetModuleHandle(TEXT("any.dll")), "AnyFunction");

如果它返回的不是null,我可以说这个函数使用了吗?

标签: winapiwin32-process

解决方案


GetProcAddress实际上是检查是否在特定的 DLL中导出了特定的函数。

我想你想要的是检查一个特定的函数是否被导入到一个特定的 DLL 中,AFAIK 没有 API 可以做到这一点,你必须自己手动解析 PE 数据才能得到你想要的。


好吧,根据您的新评论,您想获取LoadLibrary在运行时通过哪些其他 DLL 加载,对吗?

如果是这样,解析PE数据已经不足以满足你的需求,你需要在自己的进程中钩住LoadLibrary和函数。GetProcAddress()


推荐阅读