首页
社区
课程
招聘
[原创]记一次脱壳--反编译AutoIt
发表于: 2025-1-17 14:25 4302

[原创]记一次脱壳--反编译AutoIt

2025-1-17 14:25
4302

最近给一个软件脱壳,脱壳还是比较简单的,有趣的是,脱了壳后发现软件代码的逻辑还是很难懂,经过一番研究才发现,这个软件是用AutoIt语言写的,然后打包成了exe文件。AutoIt是一种脚本语言,我之前没有接触过,应该是一种小众的语言吧(个人觉得)。想要知道软件的代码逻辑,需要将该exe文件反编译成AutoIt语言,就像反编译python程序打包成的exe文件那样。脱壳过程中收集到了一些工具并发现了一些技巧,在这里记录一下。

先用DIE查一下壳


从查壳软件可以看出软件加了VMP的壳。在逆向界,VMP可以说是大名鼎鼎,由于它恐怖的虚拟化机制,很多逆向工程师都望而却步,看到VMP就直接放弃了。其实VMP加壳的软件并不是完全不可分析,一些是因为软件作者只是对部分函数加了壳,一些只是破坏了软件的导入地址表(IAT)。对于前一种情况,软件的主要的代码逻辑还是可以分析的,后面一种情况软件IAT是可以修复的。

用IDA打开软件看一下情况,下图是软件入口的情况。


可以看出软件被加了壳,真正的代码被加密了,软件真正的入口(OEP)也被隐藏了起来。

脱壳的关键是找到软件的OEP。关于如何寻找OEP网上有很多介绍,这里并不打算讨论这方面的技术,基于软件原理和经验,找到OEP并不难。

经过一番调试,我找到了软件的OEP,让软件在OEP处断下来,然后将内存dump下来。

dump下来的文件可以算作已经脱壳了,至少看起来是正常的代码。如下图:

但是软件并不能运行,这是因为软件的IAT被破坏,软件不能找到外部导入的函数。我们可以使用开源软件vmp3-import-fix来修复被破坏的IAT。

为了修复IAT,我们需要再次将原软件断在OEP处。然后在任务管理器中查看一下软件进程的PID,再在cmd中运行vmp3-import-fix,如下图。cmd一定要在管理员权限下打开,否则会运行失败。


如果顺利的话,你就会在vmp3-import-fix同目录下看到修复了IAT的exe文件。

文章一开始就提到,这个软件是AutoIt脚本写的,当然我也是在脱壳后,经过一番研究分析才发现的。这里介绍一下AutoIt反编译的一些方法。


[招生]系统0day安全-IOT设备漏洞挖掘(第6期)!

最后于 2025-1-20 10:02 被苏子寻月zzy编辑 ,原因: 图片丢失
上传的附件:
收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 3506
活跃值: (4089)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享,确实是个很好的思路
2025-1-17 17:11
0
雪    币: 184
活跃值: (677)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
逆向分析 思路很重要 学习????
2025-1-19 10:30
0
雪    币: 419
活跃值: (261)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢你的分享
6天前
0
游客
登录 | 注册 方可回帖
返回