e语言读外部程序启动参数

e语言读外部程序启动参数,第1张

众所周知,大多数e语言教程内存读写都是通过某某模块直接从外部读写的。

最常见的某某.读内存小数型(进程句柄,参数地址),但是市面上的辅助都是直接注入到游戏内存里面,这种方法就明显不适用了,这时候大家就需要在网上各种搜寻可以读写的模块,但是一般这种模块藏的很深,很难找到,我自己学习的时候深有体会。

大家有没有想过这种模块的原理是什么?其实就是两个函数,一个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.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11126405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存