C++ 远程进程';基址和快照

C++ 远程进程';基址和快照,c++,windows,memory,process,C++,Windows,Memory,Process,现在有几个问题让我头脑大为震动:从MODULEENTRY32结构(从远程进程的快照创建,并引用远程进程的模块)检索到的基址是内存中的真实地址还是相对地址?如果它是相对的,它是相对于什么的 第二:远程进程“快照”中任何其他模块的基址是相对于远程进程的基址,还是内存中的真实地址?文档中说MODULEENTRY32结构的hModule成员是“拥有进程上下文中的模块句柄”,所以我认为这意味着它是一个相对地址,但我不确定 为了防止我所说的完全脱离上下文,这里有一些部分代码: DWORD getProcBa

现在有几个问题让我头脑大为震动:从MODULEENTRY32结构(从远程进程的快照创建,并引用远程进程的模块)检索到的基址是内存中的真实地址还是相对地址?如果它是相对的,它是相对于什么的

第二:远程进程“快照”中任何其他模块的基址是相对于远程进程的基址,还是内存中的真实地址?文档中说MODULEENTRY32结构的hModule成员是“拥有进程上下文中的模块句柄”,所以我认为这意味着它是一个相对地址,但我不确定

为了防止我所说的完全脱离上下文,这里有一些部分代码:

DWORD getProcBaseAddress(DWORD targetPID) {
    hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, targetPID ); 
    MODULEENTRY32 me32;
    me32.dwSize = sizeof( MODULEENTRY32 );
    Module32First( hModuleSnap, &me32 );
    _tprintf( TEXT("Proc Base Address = 0x%08X"), (DWORD) me32.modBaseAddr);
    return (DWORD) me32.modBaseAddr;
}

这可能是函数代码。targetPID是我的目标进程的进程ID。无论如何,我的问题是指modBaseAddr。提前感谢您的帮助或考虑。如果您能向我推荐任何关于相对寻址和物理寻址的好文章或资料,我将获得额外的积分:-]

这是流程上下文中的模块句柄。模块句柄是进程地址空间中的虚拟地址。所以我想用你的术语来说,它们是“真实的”。但真正的问题是“你为什么要窥探另一个进程?”最好是建立一个适当的IPC机制。