将所有模块加载到进程中然后获取其导出

时间:2017-04-16 13:09:18

标签: c++ windows dll dllexport

我有一个DLL,我试图在不使用GetModuleHandle的情况下获取进程中的所有模块,然后在不使用GetProcAddress的情况下获取导出...我读了一些PEB结构和PEB_LDR_DATA,但我不确定是否这是正确的道路。我不能使用它的原因是它们接受一个const char *参数,而我需要通过字符串的哈希而不是字符串本身进行比较。

1 个答案:

答案 0 :(得分:1)

是的,走PEB_LDR_DATA中的列表将为您提供所有已加载的模块,但您至少应首先尝试记录的Module32First函数。在不拿着装载机锁的情况下走在列表中会有风险。

了解模块基地址后,在PE file解析之后检查导出目录。