在DLL文件中查找偏移导出函数

时间:2016-05-25 06:56:49

标签: c++ dll reverse-engineering patch portable-executable

为了将热修复应用于DLL,我使用了'LoadLibrary'和 'GetProcAddress'查找导出的基址和偏移量 DLL中的函数。例如:

// Use Handle as base address
base = LoadLibrary(...);

// Get offset relative to base
offset = GetProcAddress(...);

以这种方式使用它:

// Calculate offset in file
offsetInFile = offset - base;

// Apply hotfix in file
PatchExportedFunction(offsetInFile, "MyDLL.dll");

到目前为止,此工作正常 - 但我现在遇到了问题 有一些DLL的计算方式不同 offset不再与文件中的偏移量匹配。

显然,我找到这个功能的方法太简单了 我不知道我错过了什么,以及为什么它的大多数工作 时间但并非总是如此。

也许有人有想法?

0 个答案:

没有答案