易语言 游戏基址=模块dll+偏移量 应该怎么才能读取出来?

易语言 游戏基址=模块dll+偏移量 应该怎么才能读取出来?,第1张

你要先获取模块DLL的句柄

你可以百度下载一个 取模块句柄的易语言模块 后缀是.EC的

然后再易语言左边的程序栏里面————模块引用表右键导入添加模块引用,把你刚刚下载的模块导入进去

然后写一个格式类似这样的

进程句柄 = 取模块句柄 (“GGWAR3.dll”)

基址 = 内存_读整数型 (进程ID, 进程句柄 + 十六到十 (“1C1160”))

模块地址我已经打包好了pan.lanzou.com/i0unjvi  复制后浏览器打开就行

.版本 2

文件ID = 打开文件 (“游戏文件”, #读入, #无限制)

len = 取文件长度 (文件ID)

文件数据 = 读入字节集 (文件ID, len)

编辑框1.内容 = “”

' =============基址

code = 编辑框7.内容

addr=新寻找字节集(文件数据,Hex2String(code),)

判断开始(addr≠-1)

编辑框1.加入文本(“角色基址:-->”+反写地址(String2Hex(取字节集中间(文件数据,addr+编辑框6.内容,4)))+#换行符)

编辑框1.加入文本 (“角色基址:-->Null” + #换行符)

' ========选怪CALL

code = “”

addr=新寻找字节集(文件数据,Hex2String(code),)

判断开始(ADDR≠-1)

编辑框1.加入文本(“选怪CALL:-->”+取文本右边(“00000000”+取十六进制文本(addr+到十进制(“400000”)-编辑框4.内容),8)+#换行符)

编辑框1.加入文本 (“选怪CALL:-->Null” + #换行符)

一级地址=读内存整数型(进程,十六到十(“1027a98”))

二级地址=读内存整数型(进程,一级地址+十六到十(“74”))

三级地址=读内存整数型(进程,二级地址+十六到十(“C”))

四级地址=读内存整数型(进程,三级地址+十六到十(“600”))

五级地址=读内存整数型(进程,四级地址+十六到十(“C8”))

写内存XX型(进程,五级地址,数据)


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

原文地址: http://outofmemory.cn/bake/11611585.html

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

发表评论

登录后才能评论

评论列表(0条)

保存