易语言怎么写内存破解补丁 - 易语言怎么制作修改游戏内存
这个要用到dll
获取进程标示符,也就是进程ID
.版本 2
.支持库 eAPI
.程序集变量 进程列表, 进程信息, , "0"
.程序集变量 n, 整数型
.程序集变量 进程ID, 整数型
.程序集变量 寄存器, 整数型
.程序集变量 进程的句柄, 整数型
.子程序 __启动窗口_创建完毕
进程列表 = 取系统进程列表 ()
.计次循环首 (取数组成员数 (进程列表), n)
.如果真 (进程列表 [n].进程名称 = “你的游戏名称.exe”)
进程ID = 进程列表 [n].进程标识符
跳出循环 ()
.如果真结束
.计次循环尾 ()
首先要获取访问权限,返回进程句柄。
.版本 2
.DLL命令 OpenProcess, 整数型, "Kernel32.dll", "OpenProcess"
.参数 访问方法, 整数型
.参数 是否继承句柄, 逻辑型
.参数 进程标识符, 整数型
.版本 2
.子程序 _时钟1_周期事件
进程的句柄 = OpenProcess (2035711, 假, 进程ID)
3. 写数据到内存地址
.版本 2
.DLL命令 WriteProcessMemory, 逻辑型, , "WriteProcessMemory"
.参数 进程句柄, 整数型
.参数 要写的内存地址, 整数型
.参数 写入变量的缓冲区, 整数型, 传址
.参数 要写入的字节数, 整数型
.参数 实际写入的字节数, 整数型
.版本 2
.子程序 _时钟1_周期事件
.局部变量 a, 整数型
WriteProcessMemory (进程的句柄, 327421008, 9999, 4, a)
4. 写完后要关闭句柄,不然会卡死
.版本 2
.DLL命令 CloseHandle, 逻辑型, , "CloseHandle"
.参数 要关闭的句柄, 整数型
.版本 2
.子程序 _时钟1_周期事件
CloseHandle (进程的句柄)
2.如何用易语言代码修改内存.版本 2
.程序集 窗口程序集1
.程序集变量 ID, 整数型
.程序集变量 进程句柄, 整数型
.程序集变量 地址1, 整数型
.程序集变量 地址2, 整数型
.子程序 __启动窗口_创建完毕
ID = 进程取ID (“winlinez.exe”)
进程句柄=进程ID取进程句柄(ID)
地址1 = 读内存整数型 (进程句柄, 十六到十 (“00430144”))
地址2 = 读内存整数型(进程句柄,地址1 + 十六到十 (“00430144”)
.子程序 _按钮1_被单击
时钟1.时钟周期 = 1000
.子程序 _时钟1_周期事件
写内存整数型 (进程句柄, 地址2, 9999)
.子程序 _按钮2_被单击
时钟1.时钟周期 = 0
如果还是读不出来,那么这个地址就是有内存保护机制的,或者你找的不是基址
3.用易语言写内存修改器源码怎样写版本 2
.支持库 spec
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
调试输出 (内存地址是否可读_ (6234567))
调试输出 (内存地址是否可写_ (6234567))
.子程序 内存地址是否可读_, 逻辑型
.参数 内存地址
.参数 读取长度, , 可空
.局部变量 是否可读, 逻辑型
.如果真 (读取长度 = 0)
读取长度 = 1
.如果真结束
__try ()
指针到字节集 (内存地址, 读取长度)
是否可读 = 真
__except ()
是否可读 = 假
__limit ()
返回 (是否可读)
.子程序 内存地址是否可写_, 逻辑型
.参数 内存地址
.参数 写入长度, , 可空
.局部变量 是否可写, 逻辑型
.局部变量 临时_数据, 字节集
.如果真 (写入长度 = 0)
写入长度 = 1
.如果真结束
__try ()
临时_数据 = 指针到字节集 (内存地址, 写入长度)
写到内存 (临时_数据, 内存地址, 写入长度)
是否可写 = 真
__except ()
是否可写 = 假
__limit ()
返回 (是否可写)