1

我的 Win32 应用程序有以下代码:

class Foo {
public: 
    string mystring;    
    __declspec(dllexport) void foo();
};

void Foo::foo(){

    printf("foo called");

}

int _tmain(int argc, _TCHAR* argv[])
{
    Foo foo;
    foo.mystring =  "all your base are belong to us";

    return 0;
}

如果我知道内存中有这个 Win32 的图像基地址:

  • 鉴于我有图像基地址,我怎样才能获得Foo类实例偏移量
  • 鉴于我在内存中有win32应用程序的图像基地址,如何获取变量的偏移地址mystring
  • 获取函数的函数地址foo()相当容易,我能够做到这一点,甚至可以从另一个进程调用该函数。但是,我不确定如何获取(至少读取)变量的地址。

这个想法是我将执行这个程序,然后其他一些程序获取这个应用程序的图像基地址,然后尝试读取所述应用程序内的变量。

4

0 回答 0