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

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

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

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

解决方案:

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

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);

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/794.html

(0)
上一篇 2022年6月29日 下午4:00
下一篇 2022年6月29日 下午4:00

相关推荐

发表评论

登录后才能评论