我试图从内存中运行的可执行文件中读取内存地址,然后使用这些内存地址来遍历 PE 结构。
我遇到了麻烦,因为我不确定如何将 4 字节 char 数组转换为它的 int 等价物。
到目前为止,这是我的代码:
char buffer[4];
int e_lfanew = 60;
if(!ReadProcessMemory(pHandle, (me32.modBaseAddr + e_lfanew), buffer, 4, NULL))
{
printf("ReadProcessMemory @ %x Failed (%d)\n", me32.modBaseAddr, GetLastError());
}
我正在读取的地址,在本例中为 0xE0000000,是 PE 标头的偏移量。我想获取我刚刚读取的内存地址并将其用作偏移量以再次从进程内存中读取,但我无法弄清楚如何将其正确转换为 int。
任何帮助将不胜感激。