C ++中的Readprocessmemory无法读取

时间:2018-03-21 15:08:44

标签: c++ memory visual-c++ reverse-engineering readprocessmemory

我已经编写了几年,但在2016年我花了几年时间。现在我决定回来,所以我想玩一些逆向工程。 我玩了一款名为Black Ops 1:Zombies的游戏。我找到了内存地址,然后我进入C ++编写一个简单的作弊无限弹药(这是离线),但它没有工作,所以尝试使用ReadProcessMemory来查看它是否给出了正确的弹药。控制台开始打印" 0"。我以为可能有代码的东西,所以我查了一些我的旧源代码,代码是相同的,尝试安装VS 2015而不是编译器是问题,仍然没有,尝试GNCC编译器,仍然没有。尝试在我的第二台计算机上使用它,它工作。我试过禁用反病毒和Windows防御者,但仍然没有。 如果它意味着什么,这是源代码:

#include <iostream>
#include <Windows.h>
using namespace std;

DWORD Address = 0x180A6C8;
DWORD pID;

int points;

int main()
{
    while (true)
    {


        HWND hWnd = FindWindowA(0, ("Call of Duty®: BlackOps"));
        GetWindowThreadProcessId(hWnd, &pID);
        HANDLE pHandle = OpenProcess(PROCESS_VM_READ, FALSE, pID);
        ReadProcessMemory(pHandle, (LPVOID)Address, &points, sizeof(points), 0);
        cout << points << endl;
        Sleep(100);
    }
}

1 个答案:

答案 0 :(得分:0)

A。)你能读取作弊引擎中的地址吗?

B。)是否需要基地址(例如“client.dll”)?如果是,请获取所需模块的模块基址。