Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ WriteProcessMemory由于某种原因无法工作_C++_Winapi - Fatal编程技术网

C++ WriteProcessMemory由于某种原因无法工作

C++ WriteProcessMemory由于某种原因无法工作,c++,winapi,C++,Winapi,这是我试图制作的一个程序的所有源代码,我根本无法让WriteProcessMemory工作。它返回正确的消息,表示一切顺利,但实际上游戏中没有任何变化。有人知道修复方法吗 #include <iostream> #include <Windows.h> using namespace std; // variables int plcHold = 1; string hlthLoop = "OFF"; string ammoLoop = "OFF"; DWORD pid

这是我试图制作的一个程序的所有源代码,我根本无法让WriteProcessMemory工作。它返回正确的消息,表示一切顺利,但实际上游戏中没有任何变化。有人知道修复方法吗

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

// variables
int plcHold = 1;
string hlthLoop = "OFF";
string ammoLoop = "OFF";
DWORD pid;
DWORD playerAddr;
DWORD hlthOffs = 0xF8;

// main function
int main()
{
    // finding pid, opening proc, finding player address
    HWND hwnd = FindWindowA(NULL, "AssaultCube");
    if(hwnd == NULL)
    {
        cout << "Error; Couldn't find window" << endl;
    } else{
        GetWindowThreadProcessId(hwnd, &pid);
        HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);

        if(pHandle == NULL)
        {
            cout << "Error; Couldn't open process" << endl;
        } else{
        ReadProcessMemory(pHandle, (LPCVOID)0x50F4F4, &playerAddr, sizeof(playerAddr), 0);

        if(ReadProcessMemory != FALSE)
        {
            cout << "Health successfully read!" << endl;
        } else{
            cout << "Error code " << GetLastError << endl;
        }
        }
    while(plcHold == 1){
        cout << "========== *****'s Assault Cube Trainer ==========\n" << endl;
        cout << "=============== Health Loop - " << hlthLoop << " ================" << endl;

        Sleep(1500);
        system("cls");

        if(GetAsyncKeyState(0x5A))
        {
            cout << "Health successfully edited!" << endl;
            WriteProcessMemory(pHandle, LPVOID(playerAddr + hlthOffs), 0, sizeof(999), 0);
            CloseHandle(pHandle);
        }
    }
    }
    return 0;
}

#包括
#包括
使用名称空间std;
//变数
int-plcHold=1;
字符串hlthLoop=“关”;
字符串ammoLoop=“关”;
德沃德pid;
德沃德·普拉耶拉德尔;
DWORD hlthOffs=0xF8;
//主要功能
int main()
{
//查找pid,打开进程,查找播放机地址
HWND HWND=FindWindowA(NULL,“攻击立方体”);
if(hwnd==NULL)
{

cout您正在为第三个(
lpBuffer
)参数传递一个指向
WriteProcessMemory
的空指针。您必须传递实际值的地址,而不是值本身。如果要写入整数值,请尝试以下操作:

DWORD val = 0; // or 999?
WriteProcessMemory(
    pHandle, static_cast<LPVOID>(playerAddr + hlthOffs),
    &val, sizeof(val), 0);
DWORD val=0;//还是999?
写进程存储器(
幻影,静态施法(playeradr+hlthoff),
&val,sizeof(val),0;