开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 5265|回复: 164
收起左侧

[易语言纯源码] 自用的汇编跳转地址转换

  [复制链接]
结帖率:100% (14/14)
发表于 2024-9-9 14:06:59 | 显示全部楼层 |阅读模式   河南省新乡市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
做修改器的时候写汇编每次都是手动计算特别麻烦,模块封装的一味去抄也理解不了
自己用很笨的办法写了一个汇编跳转转换,有两个方法,回复可见源码,无需下载,直接复制可用
  
子程序名返回值类型公开备 注
汇编_处理跳转文本型 返回处理好的4字节16进制代码段,例如call 0041E1C0,0041E1C0转为72520100
参数名类 型参考可空数组备 注
要跳转的目标地址文本型十六进制文本型,例如00404420
jmp所在的地址文本型十六进制文本型,例如00800000
偏移量整数型例如call 0041E1C0,整体占用5字节,包括jmp也是,所以这里不写的话默认是5,如果你要处理jne跳转或者一些其他的占用两个字节的跳转头,请手动填写6
变量名类 型静态数组备 注
结果文本型 
临时数组文本型0
i整数型 
如果真 (是否为空 (偏移量))
偏移量 = 5  ' 这里这个-5是因为jmp以及一些跳转占用5字节,如果你要处理jne或者其他的,这里得写6

结果 = 到十六进制 (十六进制到整数 (要跳转的目标地址)十六进制到整数 (jmp所在的地址) - 偏移量)
' 汇编跳转处理原理:
' * 要跳转的目标地址减去当前跳转所在地址的下一位 *
' 这个下一位可能比较难懂,在CE里来看的话就是跳转的下一行地址,在这里我是用的是“-5”来表示,因为我觉得填“jmp所在的地址”比“当前跳转所在地址的下一位”要更好理解也更好使用,不过代价就是如果面对的是jne这类占两个字节的跳转就得手动改成“-6”
' 调试输出 (取文本长度 (结果))
如果真 (取文本长度 (结果) = 6)  ' 在某些时候位数会是6,为了格式整齐转成8位,补零
结果 = “00” + 结果
' 调试输出 (结果)
' 此时得出的结果是真实结果的“反向”
' 例如真实结果是“AB CD”,这里计算出来应该是“CDAB”,所以要手动颠倒一下(其实是我没找到更好的方法)
加入成员 (临时数组, 取文本中间 (结果, 7, 2))
加入成员 (临时数组, 取文本中间 (结果, 5, 2))
加入成员 (临时数组, 取文本中间 (结果, 3, 2))
加入成员 (临时数组, 取文本中间 (结果, 1, 2))
' 调试输出 (临时数组)
结果 = “”  ' 清理临时变量
计次循环首 (4, i)
结果 = 结果 + 临时数组 [i]  ' 把数组内容置入变量
计次循环尾 ()
调试输出 (结果)
返回 (结果)
子程序名返回值类型公开备 注
到十六进制文本型 返回转换后的十六进制文本,来自精易编程助手
参数名类 型参考可空数组备 注
十进制数据整数型传入十进制整型数据
变量名类 型静态数组备 注
局部_结果文本型 
局部_结果 = 取十六进制文本 (十进制数据)
如果真 (取文本长度 (局部_结果) % 2 = 1)
返回 (“0” + 局部_结果)
返回 (局部_结果)
子程序名返回值类型公开备 注
十六进制到整数长整数型 十六进制到整数,来自精易编程助手
参数名类 型参考可空数组备 注
十六进制文本文本型
置入代码 ({ 139, 93, 8, 139, 27, 51, 192, 190, 16, 0, 0, 0, 15, 182, 11, 128, 249, 64, 114, 5, 128, 233, 55, 235, 13, 128, 249, 32, 116, 12, 128, 249, 0, 116, 10, 128, 233, 48, 247, 230, 3, 193, 67, 235, 223, 139, 229, 93, 194, 4, 0, 195 })
返回 (0)


i支持库列表   支持库注释   
spec特殊功能支持库


无论jmp,call,je,jne都是一样的原理,这个比较笨但是所有都能用,只是后续自己写的时候往前加跳转头的字节就行了
还有另一种方法是把“jmp”“call”这种跳转命令单独封装,返回的时候直接返回“E9”“E8”这种跳转头字节+处理字节,应该就和那些汇编模块里的差不多了


发烧40度,睡不着觉,自己摸索着写的,高手勿喷

点评

所以发烧烧个五六十度就好了   福建省泉州市  发表于 2024-9-15 17:18
我知道***50度就死了,但是我的脑细胞42度就先死了。   广东省广州市  发表于 2024-9-13 16:19
我丢,说的太有道理,差点我就信了   河南省新乡市  发表于 2024-9-9 15:24
发烧是好事 千万不要退烧 发烧是身体在抵抗病魔 你退烧就是帮倒忙 西方医学的阴谋   贵州省毕节市  发表于 2024-9-9 14:36

评分

参与人数 27好评 +3 精币 +34 收起 理由
罗大大 + 1 感谢分享,很给力!~
光影魔术 + 2 开源精神必须支持~
扶南 + 1 感谢分享,很给力!~
qiyuer + 1 感谢分享,很给力!~
浮梦 + 1 感谢分享,很给力!~
ewake + 1 感谢分享,很给力!~
Zźh926 + 1 感谢分享,很给力!~
ican8 + 1 感谢分享,很给力!~
huangdi956 + 1 感谢分享,很给力!~
hackjoe + 1 感谢分享,很给力!~
jc520hll + 1 感谢分享,很给力!~
jing3 + 1 感谢分享,很给力!~
t176 + 1 感谢分享,很给力!~
huangdi9569 + 1 感谢分享,很给力!~
zjbin1989 + 1 感谢分享,很给力!~
bear22 + 1 感谢分享,很给力!~
文西哥 + 1 感谢分享,很给力!~
booms + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
风雨3137 + 1 感谢分享,很给力!~
南黎 + 1 感谢分享,很给力!~
YzZA + 1 感谢分享,很给力!~
xhping + 1 感谢分享,很给力!~
LEOONL + 1 + 3 YYDS~!
祭祀雨人 + 1 + 2 支持开源~!感谢分享
1355301564 + 2 YYDS~!
笨来无一悟 + 1 + 3 祝早日康复

查看全部评分


结帖率:0% (0/1)

签到天数: 10 天

发表于 2024-10-18 11:15:24 | 显示全部楼层   上海市上海市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:29% (6/21)

签到天数: 5 天

发表于 2024-10-18 11:12:59 | 显示全部楼层   湖南省邵阳市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 5 天

发表于 2024-10-16 01:19:21 | 显示全部楼层   四川省成都市
抱歉,刚测试了一下,能回跳,不好意思
回复 支持 反对

使用道具 举报

签到天数: 5 天

发表于 2024-10-16 00:56:51 | 显示全部楼层   四川省成都市
应该是不能回跳吧?
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 3 天

发表于 2024-10-9 01:50:24 | 显示全部楼层   湖北省武汉市
学习下  感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2024-10-8 10:07:01 | 显示全部楼层   江西省南昌市
有讲解吗?
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-10-7 18:50:15 | 显示全部楼层   广东省梅州市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 2 天

发表于 2024-10-6 11:22:12 | 显示全部楼层   四川省成都市
我来看看!
回复 支持 反对

使用道具 举报

发表于 2024-10-5 18:14:15 | 显示全部楼层   四川省成都市
可见源码
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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