如何在c++中给一个地址添加偏移量?

问题描述 投票:0回答:1

int newAmmoValue = 99999; int address = 0x771346D0; int added = address + 0xC4; WriteProcessMemory(handle, (LPVOID)added, &newAmmoValue, sizeof(newAmmoValue), 0);

我想写进程内存,但我不知道如何给一个地址添加偏移量。

这是我想达到的目的。https: /gyazo.com5768b622f8c7f66c00e5be68aae42c90。

c++ pointers offset
1个回答
0
投票

你需要去引用第一个地址,这是一个指针。

uintptr_t FindDMAAddy(HANDLE hProc, uintptr_t ptr, std::vector<unsigned int> offsets)
{
    uintptr_t addr = ptr;
    for (unsigned int i = 0; i < offsets.size(); ++i)
    {
        ReadProcessMemory(hProc, (BYTE*)addr, &addr, sizeof(addr), 0);
        addr += offsets[i];
    }
    return addr;
}

uintptr_t finalAddr = FindDMAAddy(hProc, 0x771346D0, {0xc4});

int newAmmoValue = 99999;

WriteProcessMemory(handle, (LPVOID)finalAddr, &newAmmoValue, sizeof(newAmmoValue), 0);
© www.soinside.com 2019 - 2024. All rights reserved.