最常见的某某.读内存小数型(进程句柄,参数地址),但是市面上的辅助都是直接注入到游戏内存里面,这种方法就明显不适用了,这时候大家就需要在网上各种搜寻可以读写的模块,但是一般这种模块藏的很深,很难找到,我自己学习的时候深有体会。
大家有没有想过这种模块的原理是什么?其实就是两个函数,一个ReadProcessMemory,另一个就是WriteProcessMemory,几乎所有模块都是依据这两个函数读写。这两个函数对应的库名都是kernel32.dll
ReadProcessMemory这函数总共有5个参数HANDLE hProcess, 进程句柄
LPCVOID lpBaseAddress,内存地址
LPVOID lpBuffer,存放地址
SIZE_T nSize,读取长度
SIZE_T *lpNumberOfBytesRead,写出长度,一般默认为0
WriteProcessMemory这5个函数参数大同小异和上面,就是三四个参数变成写入内容和写入长度
有了这两个函数,就可以实现内存读取了,应该很多人都不知道,注入了内存你就是这程序的一部分了,所以你可以在里面任意妄为了,读写自己内存不是易如反掌。
下面是例子,主要关键读内存代码,
.子程序 读整数, 整数型
.参数 内存地址, 整数型
.局部变量 存放地址, 字节集
存放地址 = 取空白字节集 (4) //初始化字节集
读内存 (进程句柄, 内存地址, 存放地址, 4, 0) //读内存是自己添加的dll,这个不需要说吧!
返回 (取字节集数据 (存放地址, #整数型, ))
这里说下为啥要存放地址要是字节集,主要是方便转换各种类型。
写内存代码也是大同小异,这里就不说了,其实也很简单,和上面没啥区别。
System.Diagnostics.Process.Start("程序的路径", "参数1 参数2")第一个参数是aaa.exe 的路径,第二个参数是用空格分开的两个参数组成的字符串。 aaa.exe中的main方法写做 static void Main(string[] args) 用Process.Start启动aaa.exe时main.欢迎分享,转载请注明来源:内存溢出
评论列表(0条)