你能从被调用者那里得到调用者DLL或可执行模块吗

Can you get the caller DLL or executable module from the callee

我只想允许特定的 DLL 执行我在挂接的函数上编写的代码。如果不执行堆栈跟踪,您如何获取调用者的模块名称?

获取堆栈跟踪以查找函数的 return 地址,例如使用 CaptureStackBackTrace.

然后调用 GetModuleHandleEx 传递 GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 以获得包含该代码的模块句柄。

最后,调用 GetModuleFileName 查找与该模块关联的文件名。