开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

楼主: 冰棍好烫啊
收起左侧

[易源码分享] 三种思路 动态置入代码

[复制链接]

结帖率:100% (4/4)
发表于 2022-6-6 20:53:10 | 显示全部楼层   福建省龙岩市
一直用的第二种,简单好用
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)
发表于 2022-6-6 20:21:17 | 显示全部楼层   山西省太原市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

发表于 2022-6-6 17:16:25 | 显示全部楼层   河南省焦作市
谢谢楼主分享!!! 好人一生平安!!!
回复 支持 反对

使用道具 举报

发表于 2022-6-6 17:06:51 | 显示全部楼层   广东省广州市
这是什么字体?
回复 支持 反对

使用道具 举报

签到天数: 16 天

发表于 2022-6-6 16:36:57 | 显示全部楼层   香港特别行政区湾仔区
谢谢分享  
回复 支持 反对

使用道具 举报

结帖率:93% (14/15)

签到天数: 6 天

发表于 2022-6-6 16:23:53 | 显示全部楼层   广东省深圳市
看看是什么
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 17 天

发表于 2022-6-6 16:04:00 | 显示全部楼层   广西壮族自治区崇左市
动态置入代码普遍都是call一个函数来实现
易语言的置入代码是在编译的时候直接把参数的字节集编译出去当成机器码执行

假设有这一段代码, 假设信息框编译后的机器码是 10,20,30
信息框(...)
置入/动态置入 代码({1,2,3})
信息框()

那易语言编译后就是 10,20,30,1,2,3,10,20,30
他是直接把置入代码编译进去了

动态置入的话一般就是
10,20,30,  这个是信息框
puch {1,2,3}的地址,
call 动态置入代码,

10,20,30  这个是后面的信息框

动态置入编译后大概就是这样的

这样的话一般会有两种实现方法
1. call一个函数来执行, 这个方式容易实现, 但是call是会改变寄存器的, 所以执行那些需要用ebp,esp等这些寄存器的时候, 这种方法就不好实现了
2. jmp长跳转, 在动态置入代码的时候计算出要返回的地址, 然后把动态执行机器码拼接一下, 先执行动态机器码, 然后跳转回原来的地方, 最后jmp跳转过去就行了

第一种方法是可以直接封装成一个命令来使用, 优点是方便携带, 缺点是会影响寄存器, 实际上也可以在调用函数里处理一下寄存器, 这样也可以实现不影响
第二种方法不能封装成一个命令, 得在调用的地方处理返回地址, 然后用易语言的置入代码jmp跳过去, 好像没啥优点, 缺点是很繁琐, 还不能封装

还是用上面的代码来做实验,
方法1编译后就是上面说的动态置入
方法2编译后大概是这样
10,20,30, 信息框
jmp {1,2,3}
jmp 下一句10,20,30的地方
10,20,30

点评

call方法不错   广东省江门市  发表于 2023-8-17 16:44

评分

参与人数 2好评 +2 精币 +6 收起 理由
冰棍好烫啊 + 1 + 3 新技能已get√
Ls60 + 1 + 3 共同努力,共同进步

查看全部评分

回复 支持 1 反对 0

使用道具 举报

签到天数: 1 天

发表于 2022-6-6 15:59:25 | 显示全部楼层   河南省濮阳市
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 22 天

发表于 2022-6-6 15:46:54 | 显示全部楼层   新疆维吾尔自治区昌吉回族自治州
谢谢分享!
回复 支持 反对

使用道具 举报

签到天数: 22 天

发表于 2022-6-6 15:13:13 | 显示全部楼层   新疆维吾尔自治区乌鲁木齐市
谢谢分享  
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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