menu 牢记自己是菜
二进制脱壳 手撕Nspack
1569 浏览 | 2020-03-22 | 阅读时间: 约 3 分钟 | 分类: 二进制脱壳 | 标签:
请注意,本文编写于 1488 天前,最后修改于 1488 天前,其中某些信息可能已经过时。

0x1 Nspack壳

好的,又是一个压缩壳。所有压缩壳都是一个套路,都是那几种方法。还是自己太年轻了,以为压缩壳就只有UPX和Aspack壳两种,后续的都是其它类型的壳。于是在上次的周总结里面写要做一篇关于Nspack的手撕博客。但是既然说了,那就去完成自己自己的诺言,并且再脱这个壳的时候的确遇到了一些我没有想到的问题。所有人看到的和听到的与自己动手做的一定会有一些出入,所以动手实操还是很有必要的。首先我们先来介绍一下这个壳:北斗程序压缩(Nspack)是一款压缩软件,免去注册项,用它可以制作免杀的软件。主要的选项是:压缩资源,忽略重定位节,在压密约偷期前备份程充,强制压缩等。这个壳的压缩比率是比Nspack壳的比率要高的,所占的空间也是更加少的。废话不多说我们开始试一试。


0x2 动手脱壳

首先我们要做的依旧是上网找一个Nspack加壳的软件,为我们的32位程序进行加壳。这里就要谴责网上的不良下载商,明明是一个UPX的加壳程序,打个压缩包就告诉我是北斗的加壳软件。我一使用,拖进去一看居然显示的UPX的壳,害得我以为我的PE版本不太够了,下载了新的版本的PE,发现就是UPX,真的弟弟。


由于也是一个压缩壳,我们的方法与之前的也没什么区别,习惯单步的单步,习惯esp定律的esp定律。总之我们找到了一个jmp语句,跳转的地址还相当的远,应该就是我们要找的程序入口了。但是问题就出现了,当我步入之后发现居然没有汇编代码,直接懵逼。

一开始我以为是程序跑飞了,换了其他的方法同样的是找到了这个入口,进来依旧是没有汇编代码的问题。甚至我都换了一个程序进行从头到尾重新试了试,还是没有问题。emmmmmm好的度娘救我。啊哈找到了,右键,分析,删除分析,强制将这里面的东西转换为汇编代码。

使用脚本进行脱壳,完成,进入PE查看脱壳结果,emmmmmm好像和预期的结果不太一样,PE段没有变成txt,下面的壳识别处有一段我不认识的壳的提示。

上网搜之,发现PE的工作原理只是对程序进行分析,然后匹配最相近的壳,是存在误报的可能性的。而且也有可能程序一开始就没有壳,是因为使用了花代码导致分析时存在误判,但是我想了想我这最多是壳没有脱净,也不存在花代码的问题。于是我准备拿IDA来测试一下自己的程序脱壳是否完成,毕竟我们逆向手脱壳的目的就是将文件放入IDA进行分析,如果IDA可以对文件进行逆向反汇编的话我们的脱壳就算是成功的,于是我们拿出IDA拖入。
这是有壳时的显示:

这是我们脱完壳之后:

确实是可以汇编的,所以有些时候这样的提示也是脱壳成功后的提示。


0x3 总结

主要写这篇博客的目的主要是总结一下自己遇到的问题,二来是为压缩壳做一个收尾。之后也不打算做压缩壳了,要是有啥问题我就在这后面补充吧。毕竟开始这个专题的最初目的是冲着VMP去的,尽量快点进行复杂的壳的学习吧

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!