C++ 如何接受用户输入常量并使用writeprocessmemory?

C++ 如何接受用户输入常量并使用writeprocessmemory?,c++,memory,garrys-mod,C++,Memory,Garrys Mod,如何使用WriteProcessMemory更改当前弹药地址的弹药?我知道怎么读,只是不知道怎么写。是塞塔莫。我以为我什么都在做,莱特 代码: #include <iostream> #include <math.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <Windows.h> using namespace std; D

如何使用
WriteProcessMemory
更改当前弹药地址的弹药?我知道怎么读,只是不知道怎么写。是塞塔莫。我以为我什么都在做,莱特

代码:

#include <iostream>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>
using namespace std;

 DWORD pid;
 DWORD Ammo = 0x07823C5EC;
 int MyAmmo;
 int SetAmmo = 1;
int main(){

    HWND hwnd = FindWindowA(0, ("Garry's Mod"));

    GetWindowThreadProcessId(hwnd, &pid);
    HANDLE pHandle = OpenProcess(PROCESS_VM_READ, FALSE, pid);

    ReadProcessMemory(pHandle, (LPVOID)Ammo, &MyAmmo, sizeof(MyAmmo), 0);
    cout<<"Current Ammo = "<<MyAmmo<<endl;

    WriteProcessMemory(pHandle, (LPVOID)Ammo, &SetAmmo, sizeof(SetAmmo), 0);
    system("Pause");
    return 0;
}  
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
德沃德pid;
DWORD弹药=0x07823C5EC;
int MyAmmo;
int SetAmmo=1;
int main(){
HWND-HWND=FindWindowA(0,(“加里国防部”);
GetWindowThreadProcessId(hwnd和pid);
HANDLE pHandle=OpenProcess(PROCESS\u VM\u READ,FALSE,pid);
ReadProcessMemory(pHandle,(LPVOID)Ammo和MyAmmo,sizeof(MyAmmo),0);

您是否可以使用读取权限打开进程:

HANDLE pHandle = OpenProcess(PROCESS_VM_READ, FALSE, pid);
尝试:


不要使用
PROCESS\u ALL\u ACCESS
。只要求实际需要的最低权限。要使用
ReadProcessMemory
,只需要
PROCESS\u VM\u READ
权限。要使用
WriteProcessMemory
,只需要
PROCESS\u VM\u WRITE
PROCESS\u VM\u OPERATION
权限。这在d中有详细说明因此,请改用它:
HANDLE pHandle=OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION,FALSE,pid);
为什么这看起来像是你在试图进行黑客攻击?
HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);