易语言关于2字节数据替换的程序怎么写?
用CE找到了一些东西。基址00af85f0指针CF7C但是数据类型是2字节,我现在想写一个程序,是把这个地址的数据改为0的。在CE上可以完美达到修改。但是到易语言里写进去...
用CE找到了一些东西。
基址00af85f0
指针CF7C
但是数据类型是2字节,我现在想写一个程序,是把这个地址的数据改为0的。
在CE上可以完美达到修改。
但是到易语言里写进去,就不行了。主
主要是按了按钮1,然后实现我要的功能。
关键问题是涉及到2字节和4字节的问题上。
我写的源码如下:
.版本 2
.程序集 窗口程序集1
.程序集变量 进程ID, 整数型
.程序集变量 基址, 整数型
.程序集变量 偏移, 整数型
.子程序 __启动窗口_创建完毕
进程ID = 进程_名取ID (“MamePlus.exe”)
基址 = 内存_读整数型 (进程ID, 进制_十六到十 (“00af85f0”))
偏移 = 内存_读整数型 (进程ID, 基址 + 进制_十六到十 (“CF7C”))
.子程序 _按钮1_被单击
内存_写整数型 (进程ID, 偏移, 0)
但是2字节的0,未必是4字节的0
当2字节改为0后,再将转换为4字节后的替换上去,放进内存_写整数型 (进程ID, 偏移, 4字节转换后的数值,它就是2进制的0)里,程序竟然无效。
所以想问一下,要怎么写这个程序的功能? 展开
基址00af85f0
指针CF7C
但是数据类型是2字节,我现在想写一个程序,是把这个地址的数据改为0的。
在CE上可以完美达到修改。
但是到易语言里写进去,就不行了。主
主要是按了按钮1,然后实现我要的功能。
关键问题是涉及到2字节和4字节的问题上。
我写的源码如下:
.版本 2
.程序集 窗口程序集1
.程序集变量 进程ID, 整数型
.程序集变量 基址, 整数型
.程序集变量 偏移, 整数型
.子程序 __启动窗口_创建完毕
进程ID = 进程_名取ID (“MamePlus.exe”)
基址 = 内存_读整数型 (进程ID, 进制_十六到十 (“00af85f0”))
偏移 = 内存_读整数型 (进程ID, 基址 + 进制_十六到十 (“CF7C”))
.子程序 _按钮1_被单击
内存_写整数型 (进程ID, 偏移, 0)
但是2字节的0,未必是4字节的0
当2字节改为0后,再将转换为4字节后的替换上去,放进内存_写整数型 (进程ID, 偏移, 4字节转换后的数值,它就是2进制的0)里,程序竟然无效。
所以想问一下,要怎么写这个程序的功能? 展开
1个回答
展开全部
2字节是“短整数型”
内存_读短整数型()
内存_写短整数型()
内存_读短整数型()
内存_写短整数型()
追问
能不能把最后那儿,改写一下。
直接给我这2条,我不理解要怎么写。
就是要把那个地址,改写为2字节的0即可。
追答
.版本 2
.程序集 窗口程序集1
.程序集变量 进程ID, 整数型
.程序集变量 基址, 整数型
.程序集变量 偏移, 整数型
.程序集变量 地址, 整数型
.子程序 __启动窗口_创建完毕
进程ID = 进程_名取ID (“MamePlus.exe”)
基址 = 进制_十六到十 (“00af85f0”)
偏移 = 进制_十六到十 (“CF7C”)
地址 = 内存_读整数型 (进程ID, 基址) + 偏移
'以我的了解,以上应该是这样写的,你的写法似乎有错误!
'不要把基址与地址搞混了,发现很多人都在第一步就错了!
.子程序 _按钮1_被单击
.局部变量 短整数, 短整数型
短整数 = 0
内存_写短整数型 (进程ID, 地址, 0)
' 内存_写字节集型 (进程ID, 地址, 到字节集(短整数))
' 以上两种,你都试一下吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询