我有一个DLL,我试图在不使用GetModuleHandle的情况下获取进程中的所有模块,然后在不使用GetProcAddress的情况下获取导出...我读了一些PEB结构和PEB_LDR_DATA,但我不确定是否这是正确的道路。我不能使用它的原因是它们接受一个const char *参数,而我需要通过字符串的哈希而不是字符串本身进行比较。
答案 0 :(得分:1)
是的,走PEB_LDR_DATA
中的列表将为您提供所有已加载的模块,但您至少应首先尝试记录的Module32First
函数。在不拿着装载机锁的情况下走在列表中会有风险。
了解模块基地址后,在PE file解析之后检查导出目录。