逆向脱壳(三) - 完结篇

admin 2023年5月29日13:40:48评论41 views字数 1803阅读6分0秒阅读模式

逆向脱壳(三) - 完结篇
{
点击蓝色

 

关注我们
}

逆向脱壳(三) - 完结篇




前言

所谓壳,就是保护果实的俗称,加壳技术其意义在保护,就是让分析着或者工具看不到程序或者代码段的真实内容,将内容保护起来的一种手段,常见的壳基本分为三种:压缩壳,加密壳,虚拟壳,还有不常见的捆绑壳。



正文


查壳


想脱壳首先要知道对方采用了什么样的壳,最常见的方法利用节查看器,正常的程序应当如下所示。


逆向脱壳(三) - 完结篇


如果出现了其他区段,那么程序或者代码就有可能被加了壳,

这里推荐两款工具,一款是PEID和DIE,我个人更喜欢DIE,新版的DIE记录了更多壳的信息,信息也更加准确,PEID相对的插件更多,也是大家耳熟能详的工具。


逆向脱壳(三) - 完结篇 


压缩壳脱壳 


压缩壳以UPX为代表,此类壳的功能已压缩为主,对文件的加密效果几乎没有,侦壳工具可以轻而易举地发现这些壳,也有较成熟的脱壳机来实现。所以当文件有较高的存储性能要求,且代码保密程度是可以开源时,才比较适合使用此类壳处理。

https://github.com/upx/upx/releases

使用方法也很简单:upx -d 即可一键脱壳


逆向脱壳(三) - 完结篇 


加密壳脱壳 


常见的加密壳有ASProtect和Armadillo穿山甲,加密效果较强,但就像密码一样,没有破解不了的密码也没有脱不掉的壳,目前针对ASProtect好像已经有了可用的脱壳机,但一般通用的脱壳方法如下:


1.用OD打开程序,点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序.

2.按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数n.

3.重载程序,再按SHIFT+F9,这次按的次数为上次让程序运行时的次数的n-1次.

4.此时观察OD的右下角有一个"SE 句柄",这时我们按CTRL+G,输入SE 句柄前的地址!来到这个地址.

5.在这里,按F2下断点!然后按SHIFT+F9来到断点处!

6.这时候我们已经跳过了所有异常,然后去掉断点,按F8慢慢向下跟踪很快就到达OEP了.



虚拟壳脱壳 


虚拟技术应用到壳的领域,设计了一套虚拟机引擎,将原始的汇编代码转译成虚拟机指令,要理解原始的汇编代码,就必须对其虚拟机引擎进行研究,此壳可以说是现在市面上最难脱的壳,因为不容易拖干净,很少有完美脱壳的办法,但是壳总有能脱的方法,这里用简单1.6x来举例:


逆向脱壳(三) - 完结篇


可以看到虚拟壳最基本的特征就是增加vmp的区段

打开od对od调试选项进行设设置:


逆向脱壳(三) - 完结篇 逆向脱壳(三) - 完结篇


然后运行程序ctrl+G用到一个断点:virtualProtectEx 下断点,然后查看区段,text到vmp1以后有6个区段所有下完断点后运行6次


逆向脱壳(三) - 完结篇


运行到第六次后查看Address返回地址,然后在text设置内存访问断点,运行后我们就跑出了虚拟机,如果出现乱码ctrl+a分析下代码,ctrl+D FF 25 然后删除分析代码 到OEP

通过ctrl+d 寻找相应编程的push 例如VB 就push vb5 或者 vb6



总结

总的来说脱壳都是遵循一定的定律

最常用的就是堆栈平衡(esp):

用压缩壳举例,在运行程序以前,先运行了压缩壳,而压缩壳也可以看作是一个段子程序,调用这个子程序就需要入栈操作,汇编语言中称作PUSH,调用栈在程序结束后,为了清空栈内数据,和返回调用程序所压入的地址,所以要出栈,简称POP


具体操作如下:


1开始就点 F8,注意观察 OD 右上角的寄存器中 ESP 有没有变成红色(这只是一般情况下,更确切的说我们选择的 ESP 值是关键句之后的第一个 ESP 值)

2.在命令行下:dd XXXXXXXX(指在当前代码中的 ESP 地址,或者是 hr XXXXXXXX),按回车

3.选中下断的地址,断点>硬件访问>WORD 断点.

4.按一下 F9 运行程序,直接来到了跳转处,按下 F8,到达程序 OEP.


当然这只是其中的一种:

单步跟踪法,内存镜像法,命令查找法,末次异常法,通常在实战中这些方法都是综合起来使用。


逆向的学问太多了,能讲的很多,更多其实就是慢慢尝试,总结逆向的需要学习的就是,语言,调试,还有一定的分析。

点击进入同系列文章:

脱壳学习(一)- 计算机底层基础
逆向脱壳(三) - 完结篇
脱壳学习(二)- 反“反调试”篇
逆向脱壳(三) - 完结篇




往期回顾



01

后渗透之windows中无文件落地执行方法

02


网络空间搜索引擎使用技巧



03


两个账户劫持案例

逆向脱壳(三) - 完结篇

雷石安全实验室

商务咨询:

0571-87031601

商务邮箱:

[email protected]


逆向脱壳(三) - 完结篇
觉得文章不错,记得【点赞、在看、转发】!!!

原文始发于微信公众号(雷石安全实验室):逆向脱壳(三) - 完结篇

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月29日13:40:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   逆向脱壳(三) - 完结篇http://cn-sec.com/archives/1764415.html

发表评论

匿名网友 填写信息