小编Den*_*ger的帖子

RE - IDA 查找函数偏移量

我刚刚开始进行逆向工程。

我创建了一个小型 C++ ConsoleApplication,并尝试通过注入的 DLL 调用 NewFunction。

void NewFunction()
{
    DWORD dwImageBase = (DWORD)GetModuleHandle(NULL);

    std::cout << "ImageBase: " << ToHex(dwImageBase) << std::endl;
    std::cout << "NewFunction: " << ToHex((DWORD)&NewFunction) << std::endl;
    std::cout << "Offset: " << ToHex((DWORD)&NewFunction - dwImageBase) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

示例输出:

ImageBase: F90000
NewFunction: FA111D
Offset: 1111D
Run Code Online (Sandbox Code Playgroud)

现在,当我使用注入的 DLL 调用 0xFA111D 时,它会按预期工作并再次打印。(DLL调用ImageBase + Offset)

但我不知道如何使用 IDA Pro 获取 NewFunction 的地址...

在国际开发协会中:

  • 该函数位于:0x4133F0
  • 图像库是:0x400000
  • 计算出的偏移量为:0x133F0

至少偏移量不应该是相同的吗?我在这里错过了一些重要的东西吗?

c++ reverse-engineering ida memory-address dll-injection

2
推荐指数
1
解决办法
5346
查看次数