C++ 从字符串中读取内存

C++ Reading memory from a string

我正试图从 explorer.exe 读取一段记忆。通过程序进程黑客,我发现在地址 0xfa07f8 上存储了这个字符串:\??\C:\Program Files\Process Hacker 2\ProcessHacker.exe

当我试图读取这个地址的字符串时,我只得到了字符串的第一个字符。 '\' 字符。 如何读取整个字符串?

char buffer[255] = { 0 };
unsigned addr = 0xfa07f8;
if (ReadProcessMemory(proc, (LPVOID)addr, &buffer, sizeof(buffer), NULL))
{
    MessageBoxA(NULL, buffer, NULL, NULL);
}

您正在从进程内存中读取宽字符。 MessageBoxA 用于显示“窄”字符。

要显示宽字符,请使用 MessageBoxW