开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1694|回复: 1
打印 上一主题 下一主题
收起左侧

[易源码分享] 偏移表达式内存读取

[复制链接]
跳转到指定楼层
楼主
发表于 2019-7-2 14:23:50 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   江西省上饶市
  
子程序名返回值类型公开备 注
ReadInt整数型 可以是绝对地址或者偏移地址,不支持带有乘除的内存偏移地址
参数名类 型参考可空数组备 注
addr文本型
type整数型0为32位1为16位2为8位
如果真 (GetOffsetMemoryAdd (addr) = 0)
返回 (0)
如果真 (是否为空 (type))
type = 0
判断 (type = 0)
返回 (十六转十 (取文本右边 (取十六进制文本 (指针到整数 (GetOffsetMemoryAdd (addr))), 8)))
判断 (type = 1)
返回 (十六转十 (取文本右边 (取十六进制文本 (指针到整数 (GetOffsetMemoryAdd (addr))), 4)))
判断 (type = 2)
返回 (十六转十 (取文本右边 (取十六进制文本 (指针到整数 (GetOffsetMemoryAdd (addr))), 2)))
返回 (0)
' ‘调试输出 (“单字节”, 十六转十 (取文本右边 (十六进制文本, 2)))
' ‘调试输出 (“双字节”, 十六转十 (取文本右边 (十六进制文本, 4)))
' ‘调试输出 (“四字节”, 十六转十 (取文本右边 (十六进制文本, 8)))
子程序名返回值类型公开备 注
ReadStr文本型 
参数名类 型参考可空数组备 注
addr文本型可以是绝对地址或者偏移地址,不支持带有乘除的内存偏移地址
如果真 (GetOffsetMemoryAdd (addr) = 0)
返回 (“”)
返回 (指针到文本 (GetOffsetMemoryAdd (addr)))
子程序名返回值类型公开备 注
Readfloat小数型 可以是绝对地址或者偏移地址,不支持带有乘除的内存偏移地址
参数名类 型参考可空数组备 注
addr文本型
如果真 (GetOffsetMemoryAdd (addr) = 0)
返回 (0)
返回 (指针到小数 (GetOffsetMemoryAdd (addr)))
子程序名返回值类型公开备 注
ReadDoubleFloat双精度小数型 可以是绝对地址或者偏移地址,不支持带有乘除的内存偏移地址
参数名类 型参考可空数组备 注
addr文本型
如果真 (GetOffsetMemoryAdd (addr) = 0)
返回 (0)
返回 (指针到双精度小数 (GetOffsetMemoryAdd (addr)))
子程序名返回值类型公开备 注
ReadBitS字节集 可以是绝对地址或者偏移地址,不支持带有乘除的内存偏移地址
参数名类 型参考可空数组备 注
addr文本型
如果真 (GetOffsetMemoryAdd (addr) = 0)
返回 (到字节集 (0))
返回 (指针到字节集 (GetOffsetMemoryAdd (addr), ))
子程序名返回值类型公开备 注
GetOffsetMemoryAdd整数型 Calculate with offset memory address
参数名类 型参考可空数组备 注
addr文本型
变量名类 型静态数组备 注
左括号整数型 
右括号整数型 
判断符号文本型 
变量i整数型 
偏移计数整数型 
带符号的中括号内的内存文本文本型 
不带符号的中括号内的内存文本文本型 
中括号内的内存文本数组文本型0
中括号内的内存整数数组整数型0
中括号内的内存文本数组序号整数型 
ret整数型 
' 基址部分
循环判断首 ()
清除数组 (中括号内的内存文本数组)
清除数组 (中括号内的内存整数数组)
左括号 = 倒找文本 (addr, “[”, , )
右括号 = 寻找文本 (addr, “]”, , )
判断 (左括号 ≠ -1 右括号 ≠ -1)
带符号的中括号内的内存文本 = 取文本中间 (addr, 左括号 + 1, 右括号 - 左括号 - 1)
不带符号的中括号内的内存文本 = 子文本替换 (带符号的中括号内的内存文本, “+”, “$”, , , )
不带符号的中括号内的内存文本 = 子文本替换 (不带符号的中括号内的内存文本, “-”, “$”, , , )
判断 (左括号 = -1 右括号 ≠ -1)
' 调试输出 (“警告:括号不匹配,缺少左括号”)
返回 (0)
判断 (左括号 ≠ -1 右括号 = -1)
' 调试输出 (“警告:括号不匹配,缺少右括号”)
返回 (0)
带符号的中括号内的内存文本 = addr
不带符号的中括号内的内存文本 = 子文本替换 (带符号的中括号内的内存文本, “+”, “$”, , , )
不带符号的中括号内的内存文本 = 子文本替换 (不带符号的中括号内的内存文本, “-”, “$”, , , )
中括号内的内存文本数组 = 分割文本 (不带符号的中括号内的内存文本, “$”, )
' 调试输出 (“中括号内的内存文本数组”, 中括号内的内存文本数组)
计次循环首 (取数组成员数 (中括号内的内存文本数组), 变量i)
如果 (中括号内的内存文本数组 [变量i]“”)
加入成员 (中括号内的内存整数数组, 0)
加入成员 (中括号内的内存整数数组, 十六转十 (中括号内的内存文本数组 [变量i]))

计次循环尾 ()
' 调试输出 (“中括号内的内存整数数组”, 中括号内的内存整数数组)
判断循环首 (变量i ≤ 取文本长度 (带符号的中括号内的内存文本))
判断符号 = 取文本中间 (带符号的中括号内的内存文本, 变量i, 1)
判断 (判断符号 = “+”)
中括号内的内存整数数组 [1] = 中括号内的内存整数数组 [1] + 中括号内的内存整数数组 [2]
删除成员 (中括号内的内存整数数组, 2, )
' 调试输出 (“中括号内的内存整数数组”, 中括号内的内存整数数组)
判断 (判断符号 = “-”)
中括号内的内存整数数组 [1] = 中括号内的内存整数数组 [1] - 中括号内的内存整数数组 [2]
删除成员 (中括号内的内存整数数组, 2, )
' 调试输出 (“中括号内的内存整数数组”, 中括号内的内存整数数组)


变量i = 变量i + 1
判断循环尾 ()
' ‘调试输出 (“当前内存地址:” + 到文本 (中括号内的内存整数数组 [1]))
如果 (左括号 ≠ -1 右括号 ≠ -1)
ret = 指针到整数 (中括号内的内存整数数组 [1])
' ret = 假的指针到整数 (中括号内的内存整数数组 [1])
如果真 (ret = 0)
' ‘调试输出 (“读取地址失败”)
返回 (0)

判断 (偏移计数 = 0)
' ‘调试输出 (“基址取得地址数据:” + 到文本 (ret))
' ‘调试输出 (“第” + 到文本 (偏移计数) + “偏移地址取得地址数据:” + 到文本 (ret))
addr = 取文本左边 (addr, 左括号 - 1)取十六进制文本 (ret)取文本右边 (addr, 取文本长度 (addr) - 右括号)
' 调试输出 (“得到新的地址”, addr)
' ‘调试输出 (“第” + 到文本 (偏移计数) + “偏移地址的地址数据:” + 到文本 (中括号内的内存整数数组 [1]))
返回 (中括号内的内存整数数组 [1])

偏移计数 = 偏移计数 + 1
循环判断尾 ()
返回 (0)
子程序名返回值类型公开备 注
十六转十整数型 
参数名类 型参考可空数组备 注
十六进制文本文本型
变量名类 型静态数组备 注
i整数型 
十进制整数型 
计次循环首 (取文本长度 (十六进制文本), i)
十进制 = 十进制 × 16 + 寻找文本 (“0123456789ABCDEF”, 取文本中间 (十六进制文本, i, 1), , ) - 1
计次循环尾 ()
返回 (十进制)

1.bmp (765.33 KB, 下载次数: 0)

1.bmp

签到天数: 2 天

沙发
 楼主| 发表于 2019-7-2 14:27:01 | 只看该作者   江西省上饶市
说明:在写的时候是本程序内部调试的,所以用了“指针到整数”这个函数,如果是读取其他程序的内存,可以用精益模块的“类_内存”这个类中的读整数函数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表