-3

私の &pTemp

そのため、私はこれをよく理解していないと思います。私が間違っていなければ、ポインター値は pTemp に格納されているはずですよね? では、ベース ポインタが 0x00001A の場合、pTemp は同じものを表示するべきではないでしょうか? 私は C++ に本当に慣れていないので、助けていただければ幸いです。

DWORD pointer = baseAddress;
DWORD pTemp;
DWORD pointerAddress;

cout << "Base Address: " << (DWORD*) pointer << endl;

for (int i = 0; i < PointerLevel; i++)
{
    if (i == 0)
    {
        ReadProcessMemory(handle, (LPVOID)pointer, &pTemp, sizeof(4), NULL);
        cout << "pTemp: " << pTemp << endl;
4

1 に答える 1

0

これを試して:

void * src_addr = reinterpret_cast<void *>(baseAddress);
std::size_t n;

if (ReadProcessMemory(handle, src_addr, &pTemp, sizeof pTemp, &n))
{
    if (n == sizeof pTemp)
    {
        std::cout << "Success: pTemp = " << pTemp << "\n";
    }
    else
    {
        std::cout << "We only read " << n << " bytes, not the expected "
                  << sizeof pTemp << " bytes.\n";
    }
}
else
{
    std::cout << "Failed to read process memory.\n";
}
于 2015-12-29T13:54:00.090 に答える