exe脱壳教程(手动脱壳教程)
exe脱壳教程(手动脱壳教程)
本文首发于“合天网安实验室”
今天要介绍脱壳分析的实验。壳,在自然界中,植物用壳来保护种子,动物用壳来保护身体等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。
他们附加在原程序上通过Windows加载器载入内存后,先于原始程序的执行,得到控制权,执行过程中对原始程序进行解密和还原操作,还原后再把控制权交给原始程序,执行原来的代码部分。加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可防止程序被静态反编译。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,就把这样的程序称为“壳”了。
那加了壳,我们是不是就不能直接逆向了呢?
对的,而且壳分了好几种, 按照壳的功能特性,壳可以划分为压缩壳和加密壳,压缩壳侧重于压缩体积,加密壳侧重于加密,二者的出发点是不一样的。常见的压缩壳有upx、ASPack等,常见的加密壳有ASProtect、Armadillo等。不同的壳脱壳需要不同的操作才能脱掉。
先进入实验链接https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182014111410053900001&pk_campaign=toutiao-wemedia#stu。
题目描述:
主机C:\Reverse\6目录下有一个CrackMe6.exe程序,这个程序是使用upx程序加过壳的,请尝试对其进行手工脱壳,并编写详细的分析报告。要求脱壳后的程序可以正常运行。
现在开始操作首先 运行C:\Reverse\6\CrackMe6.exe程序,提示需要对该程序进行脱壳处理,程序的运行界面如下图所示:
他说是upx壳,会不会是骗我们的,有没有什么判断壳的软件呢?
当然有,之前不是说了PEID程序吗,他不仅可以判断有没有加壳,甚至还可以判断是什么类型的壳,使用PEiD载入程序,查看CrackMe6.exe被加了什么壳,PEiD的主界面显示如下图所示:
提示信息为“UPX 0.89.6 – 1.02 / 1.05 – 1.24 -> Markus & Laszlo”,可以初步断定程序被加过UPX壳了。
下面尝试使用IDA对这个加了壳的程序进行分析,IDA弹出这样一个警告提示,如图所示:
通常弹出这样的提示都意味着程序经过了加壳处理,这时候最好不要直接使用IDA去进行分析,因为加壳后的程序很难通过IDA的静态分析来理解程序的内部执行逻辑。
这时候呢我们还是用OD来脱壳,使用OD载入CrackMe6.exe程序,OD的反汇编窗口停留在一条pushad指令上面,我们按下F8单步跟踪到下一条指令,然后在右侧的寄存器窗口中选中ESP寄存器(可以看到ESP寄存器的值为0012FFA4),并单击鼠标右键,在弹出的右键菜单中选择“数据窗口中跟随”,如图所示:
在反汇编指令窗口下面的数据窗口中,选择0012FFA4开始的四个字节,并单击鼠标右键,在弹出的右键菜单中依次选择“断点”——“硬件访问”——“Dword”菜单项,如图所示:
接下来按下F9运行程序,程序运行一段时间后OD将自动断下,这时候我们先删除之前设置的硬件断点,依次选择菜单项中的“调试”——“硬件断点”,删除我们设置的硬件断点,如图所示:
现在按F7进行单步跟踪,直到运行到0043FD24这一条指令,当然这里有一个循环比较麻烦,我们可以直接在0043FD24按下F4即可(F4代表运行到光标所在行),然后再次F7单步跟踪,来到004094F8。
0043FD17 8D4424 80 lea eax, dword ptr [esp-80]
0043FD1B 6A 00 push 0
0043FD1D 39C4 cmp esp, eax
0043FD1F ^ 75 FA jnz short 0043FD1B
0043FD21 83EC 80 sub esp, -80
0043FD24 – E9 CF97FCFF jmp 004094F8
现在在反汇编指令窗口中单击鼠标右键,选择“Dump debugged process”菜单项,在弹出的OllyDump窗口选择“Dump”按钮保存文件,注意记住这里的94F8,这是程序的入口点信息。我们将程序保存为dumped.exe,如图所示:
继续实验现在打开桌面上的ImportREC程序,首先在进程列表中选择C:\Reverse\6\crackme6.exe,然后在OEP中填入94F8(也就是在OD中找到的一个信息),然后点击“IAT AutoSearch”按钮,接着点击“GetImports”按钮,就可以看到程序的输入表信息了。
点击右侧的“Show Invalid”按钮,看看是否存在无效的输入表项目。无效的输入表项目前面带有问号(?),如果有可以使用右键菜单删除。这里没有无效的输入表项目,所以选择“Fix Dump”按钮,对我们的dumped.exe进行修复,得到dumped_.exe程序。
现在对程序的脱壳以及修复操作已经全部完成,使用PEiD对dumped.exe程序查壳,可以看到提示“Microsoft Visual C++ 6.0”信息,dumped.exe程序也可以正常运行,至此脱壳完成。
-
- hkc显示器质量怎么样什么牌子(真实揭秘hkc显示器质量怎么样)
-
2023-06-12 14:15:48
-
- brt是什么意思的缩写(BRT是什么意思)
-
2023-06-12 14:13:31
-
- earbuds耳机什么牌子(Earbuds)
-
2023-06-12 14:11:15
-
- 随时随地,追踪每个像素,连遮挡都不怕的「追踪一切」视频算法来了
-
2023-06-12 14:08:59
-
- 798艺术区地图布局(北京798艺术区实景地图)
-
2023-06-12 14:06:43
-
- fbdisk屏蔽坏道使用教程(硬盘坏道隔离工具fbdisk)
-
2023-06-12 14:04:27
-
- cfo是什么意思(CFO是什么意思)
-
2023-06-12 14:02:10
-
- 红钻有什么用(qq黄钻有什么用)
-
2023-06-12 13:59:55
-
- 小麦苗的功效与作用及食用方法(什么人不建议吃麦苗)
-
2023-06-11 20:48:25
-
- 十首非常适合作为背景音乐的纯音乐排名
-
2023-06-11 20:46:09
-
- 韩国最帅的十位男演员(韩国最有人气的男演员)
-
2023-06-11 20:43:54
-
- 没有天敌的动物排名(十大没有天敌的动物)
-
2023-06-11 20:41:38
-
- 广州十大粤菜馆排行榜:新兴饭店上榜,港丽餐厅排第一
-
2023-06-11 20:39:22
-
- 十大英语学习网站有哪些(热门英语学习网站排行榜)
-
2023-06-11 20:37:06
-
- 厦门特色美食小吃有哪些(福建厦门著名的六大特色美食)
-
2023-06-11 20:34:50
-
- 世界著名的威士忌品牌有哪些 盘点世界十大威士忌品牌排行榜
-
2023-06-11 20:32:34
-
- 菲拉格慕是什么档次(菲拉格慕有哪些好闻的香水推荐)
-
2023-06-11 20:30:18
-
- 最受欢迎的宠物猫品种排名(什么品种的宠物猫比较好)
-
2023-06-11 20:28:03
-
- 高州好玩的旅游景点排名(高州市有什么旅游景点)
-
2023-06-11 03:10:29
-
- 世界十大最帅男模 排名第一来自丹麦(身价最高)
-
2023-06-11 03:08:14