第1个回答 2012-11-01
我就写了一个修改食物的例子,其他自己添加就是了。。。
----------------------------------------------------------------------------------
.版本 2.支持库 eAPI
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
.子程序 _按钮1_被单击.局部变量 h, 整数型
h = OpenProcess (2035711, 0, 进程取ID (“罗马帝国2.exe”))写整数内存_ (h, “015B6100”, 1000000) ' 食物
.子程序 写整数内存_, 逻辑型
.参数 进程句柄, 整数型
.参数 地址, 文本型, , 十六进制地址
.参数 数据, 整数型
.如果 (WriteProcessMemory (进程句柄, 转换到十进制 (地址, 16), 数据, 取文本长度 (到文本 (数据)), 0))
返回 (真)
.否则
返回 (假)
.如果结束
.子程序 转换到十进制, 整数型, , 将2,8,16进制文件转换到10进制数值(返回十进制数)
.参数 文本, 文本型, , 2,8,16进制文件
.参数 进制, 整数型, , 2为二进制,8为八进制,16为16进制
.局部变量 i, 整数型
.局部变量 t, 文本型
.局部变量 结果, 整数型
t = “0123456789ABCDEF”
.计次循环首 (取文本长度 (文本), i)
结果 = 结果 × 进制 + 寻找文本 (t, 取文本中间 (到大写 (文本), i, 1), , 假) - 1
.计次循环尾 ()
返回 (结果)
.子程序 进程取ID, 整数型, , 成功返回进程ID,失败返回0
.参数 进程名, 文本型, , 程序进程名(注意进程名的大小写!)
.局部变量 信息, 进程信息, , "0"
.局部变量 计次, 整数型
信息 = 取系统进程列表 ()
.计次循环首 (取数组成员数 (信息), 计次)
.如果真 (信息 [计次].进程名称 = 进程名)
返回 (信息 [计次].进程标识符)
跳出循环 ()
.如果真结束
.计次循环尾 ()
返回 (0)
.版本 2
.DLL命令 WriteProcessMemory, 逻辑型, , "WriteProcessMemory"
.参数 进程句柄, 整数型
.参数 地址, 整数型
.参数 数据, 整数型, 传址
.参数 数据长度, 整数型, , 4
.参数 xx, 整数型, , 0
.DLL命令 OpenProcess, 整数型, , , , 取进程句柄
.参数 dwDesiredAccess, 整数型, , #PROCESS_ALL_ACCESS,常量值:2035711
.参数 bInheritHandle, 整数型, , 0
.参数 dwProcessId, 整数型, , 进程ID