开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

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

[Windows逆向] 易语言逆向_内存加速优化_原理分析

[复制链接]
跳转到指定楼层
楼主
发表于 2025-9-1 17:26:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   重庆市重庆市
原贴地址:
内存加速优化v1.9.e
https://bbs.ijingyi.com/forum.php?mod=viewthread&tid=14855229
(出处: 精易论坛)
----------------------------------------------------------------------------------------------
最近逛论坛偶然看到 易语言静态编译的 加速模块,可以“Api静态加速优化”、“内存分配加速优化”等功能,下载源码运行了一下确实速度提高很多。
这一下子激发我的好奇心,毕竟玩易语言这么久了,如果真的可以在实际项目中应用,那将对软件效率极大地提高。
正好最近开发一些软件,想用又不敢用,所以就逆向分析了一下他的原理,看看能否在实际项目中投入使用。

打开源码看到功能基本全是内联汇编写的,于是,上神器。
首先,在 Api静态加速优化 函数里面,内置了一段shellcode,

这一段shellcode的大致作用是
1.取内核API地址,调用一些内核API解锁内存权限,方便读写代码段。
2.定位FF25,找到易语言静态编译调用api的支持库接口,HOOK掉。


3.hook到达的位置是 00401561                 50                   push    eax
于是乎,首次调用api的路线变成了
原生:调用api->查表DLL是否在表中存在,不存在则LoadlLibrary->查表该api地址是否在表中存在,不存在则GetProcAddress->返回api地址->jmp api
优化后:首次调用api->查表DLL是否在表中存在,不存在则LoadlLibrary->查表该api地址是否在表中存在,不存在则GetProcAddress->返回api地址->修改调用方机器码,改为 call api
优化后:第二次及以上调用api->call api

下图为:易语言静态编译原生调用api,会有一个api编号,然后call(这个call包含了上面说的所有过程)
下图为:优化后的调用api,编号填充为多字节NOP,然后直接call api

优点:速度显著提升
缺点:加密壳通常都会保护api,或者VM掉调用方的代码,或者VM掉支持库接口位置代码,这些情况都会导致不能用,并且由于会动态修改内存代码,不能通过CRC校验,会损失一部分安全性。
总结:原理相当于是,省掉了每次调用api查表的时间,改为通过地址直达调用api。缺点是加载DLL后地址不能变,如果DLL被重载之类的,则崩溃。并且不能加壳。

注:以上仅代表个人观点,仅作一个技术交流测评分析,可能有分析得不对的地方,大佬们多包涵,在一些不需要加壳的个人工具上,这个功能还是挺好用的。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
结帖率:75% (3/4)

签到天数: 6 天

板凳
发表于 2026-1-8 13:51:37 | 只看该作者   广西壮族自治区来宾市
怪不得上加密壳就无法正常运行。那内存分配加速 有是什么原理呢?
回复 支持 反对

使用道具 举报

结帖率:100% (21/21)

签到天数: 23 天

沙发
发表于 2025-9-1 17:37:16 | 只看该作者   辽宁省沈阳市
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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