为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请教下WriteProcessMemory函数怎么用啊?比较模糊不清!

你好,请教下WriteProcessMemory函数怎么用啊?比较模糊不清!

繁花如伊 2021-08-04 11:07:45
DWORD ID_jingcheng;LPCVOID shengming=(LPCVOID)0x00756FA0;        //生命基址 HWND hwnd_ckzw=::FindWindow(NULL,"仓空之雾");     //游戏标题,仓空之雾 GetWindowThreadProcessId(hwnd_ckzw,&ID_jingcheng);   HANDLE ckzw=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,ID_jingcheng);int c=4;     //生命数4 ::WriteProcessMemory(ckzw,shengming,(LPVOID)&c,sizeof(int),NULL);我想写个游戏修改器,为什么不能通过编译呢?哪里错了
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

首先其声明如下:
BOOL WriteProcessMemory(
HANDLE hProcess, // 进程的句柄,是用OpenProcess打开的
LPVOID lpBaseAddress, // 要写入的起始地址
LPVOID lpBuffer, // 写入的缓存区
DWORD nSize, // 要写入缓存区的大小
LPDWORD lpNumberOfBytesWritten // 这个是返回实际写入的字节。
);

如果你要改写目标进程的一段内存,可以类似这样
char *buffer="abc";
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, buffer, 3, &dwBytes);

如果是整型的,就是
int value=3454354;
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, &value, sizeof(value), &dwBytes);

其中的起始地址我是随便写的0x00400000, 实际应用时,填成实际值。



查看完整回答
反对 回复 2021-08-09
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

首先其声明如下:
BOOL WriteProcessMemory(
HANDLE hProcess, // 进程的句柄,是用OpenProcess打开的
LPVOID lpBaseAddress, // 要写入的起始地址
LPVOID lpBuffer, // 写入的缓存区
DWORD nSize, // 要写入缓存区的大小
LPDWORD lpNumberOfBytesWritten // 这个是返回实际写入的字节。
);

如果你要改写目标进程的一段内存,可以类似这样
char *buffer="abc";
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, buffer, 3, &dwBytes);

如果是整型的,就是
int value=3454354;
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, &value, sizeof(value), &dwBytes);

其中的起始地址我是随便写的0x00400000, 实际应用时,填成实际值。

查看完整回答
反对 回复 2021-08-09
  • 2 回答
  • 0 关注
  • 337 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信