查找变量的地址+偏移量(静态位置)

时间:2019-02-26 18:04:24

标签: c++

我想为变量找到一个静态内存地址(在我自己的程序中),但是每次我重新启动进程时,它都会更改。我想找到变量的静态内存地址,所以我需要找到变量的基地址和偏移量。我环顾了互联网,但不知道如何获取所需的信息。

我需要一个进程(dll)来在内部修改另一个进程(exe)的内存。 我需要信息的变量是自定义类型。我只需要知道如何获取基地址(静态)偏移量,然后就可以获取变量的地址。

目标代码:

class Editable
{
// Stuff
}

int main() {
    Editable e;
    std::cout << &e << std::endl; // The address of e changes every time I restart my process
}

攻击者代码(dll):

int main()
{
    Editable* loc = (Editable*)0x0; // Replace 0x0 with address that I need to get
    *loc = (value);
}

extern "C" __declspec(dllexport) BOOL __stdcall DllMain(HINSTANCE Dll,    DWORD Reason, LPVOID Reserved)
{
    if(Reason == DLL_PROCESS_ATTACH)
    {
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)main, 0, 0, 0);
    }
        return TRUE;
    }
}

我想要得到的是这样的: (我要获取的指针的静态基址)+(我要获取的静态偏移量)=(我要读取/写入的位置) 谢谢。

0 个答案:

没有答案