最常见的某某.读内存小数型(进程句柄,参数地址),但是市面上的辅助都是直接注入到游戏内存里面,这种方法就明显不适用了,这时候大家就需要在网上各种搜寻可以读写的模块,但是一般这种模块藏的很深,很难找到,我自己学习的时候深有体会。
大家有没有想过这种模块的原理是什么?其实就是两个函数,一个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,这个不需要说吧!
返回 (取字节集数据 (存放地址, #整数型, ))
这里说下为啥要存放地址要是字节集,主要是方便转换各种类型。
写内存代码也是大同小异,这里就不说了,其实也很简单,和上面没啥区别。
1,首先,找到要查看的应用程序,双击打开这个程序。
2,打开之后,同时按下键盘上的win+r键,输入“cmd”,然后按下回车,打开命令行窗口。
3,打开命令行之后,先输入“wmic”并按下回车,然后再输入“process”,然后再次按下回车。
4,此时,就会出现所有程序的相关参数了,找到要查看的程序,并且向右翻即可看到启动参数。
c#调用外部exe程序,首先要using System.Diagnostics
然后开启一个新process
System.Diagnostics.ProcessStartInfo p=null
System.Diagnostics.Process Proc
p = new ProcessStartInfo("nnnn.exe","参数")
p.WorkingDirectory = exepath//设置此外部程序所在windows目录
Proc = System.Diagnostics.Process.Start(p)//调用外部程序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)