当前位置:首页 > 生活小常识 > 正文
已解决

请教writeprocessmemory的用法。(C语言 WriteProcessMemory 基址+偏移的写入)

来自网友在路上 184884提问 提问时间:2023-08-06 20:16:01阅读次数: 84

最佳答案 问答题库848位专家为你答疑解惑

很多朋友想了解关于writeprocessmemory的一些资料信息,下面是www.lmhack.com小编整理的与writeprocessmemory相关的内容分享给大家,一起来看看吧。

BOOL WriteProcessMemory(HANDLE hProcess,// 进程的句柄。

文章目录:

1、请教writeprocessmemory的用法。2、C语言 WriteProcessMemory 基址+偏移的写入3、VB问题!!!如何用WriteProcessMemory写入内存!

一、请教writeprocessmemory的用法。

首先其声明如下: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, 实际应用时,填成实际值。

二、C语言 WriteProcessMemory 基址+偏移的写入

不能直接p=(DWORD*)(*p+0x768);,要用ReadProcessMemory,因为你不是在你写的这个程序用指针读取你写的这个程序自己的数据,而是通过另一个程序的指针来读另一个程序的数据……

三、VB问题!!!如何用WriteProcessMemory写入内存!

  WriteProcessMemory  VB函数原型:  DeclareFunctionWriteProcessMemoryLib"kernel32"(ByValhProcessAsLong,ByVallpBaseAddressAsAny,ByVallpBufferAsAny,ByValnSizeAsLong,lpNumberOfBytesWrittenAsLong)AsLong  作用:写内存  说明:  hProcess,进程的句柄  lpBaseAddress,写入进程的位置(地址)  lpBuffer,数据当前存放地址  nSize,数据的长度  lpNumberOfBytesWritten,实际数据的长度  nSize以字节为单位,一个字节Byte等于8位  基本数据类型的长度  ShortInt8位=1Byte  SmallInt16位=2Byte  Integer16位=2Byte  LongInt32位=4Byte  Word16位=2Byte  LongWord32位=4Byte  Boolean8位=1Byte  WordBool16位=2Byte  LongBool32位=4Byte  比如要写入Integer类型的数据,那么Integer长度2Byte  所以nSize=2

以上就是小编对于writeprocessmemory的相关信息的介绍,希望能对大家有所帮助。

本文到此结束,希望对大家有所帮助呢。

99%的人还看了

猜你感兴趣

版权申明

本文"请教writeprocessmemory的用法。(C语言 WriteProcessMemory 基址+偏移的写入)":http://eshow365.cn/3-5905-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!