WinUpackC脱壳思路和一些体会
本帖最后由 abellixun 于 2018-1-14 00:27 编辑本人1-9号开始学脱壳,没有任何基础,今天发表自己的脱壳思路,全靠看大神们的视频,这里推荐Ximo大神的教学视频,有视频有例子
遇到不懂的问题,先运用论坛搜索功能,很实用。今天一口气从Ximo的第9课学到第16课,感觉第16课里有Upack 2.x - 3.x的用法不太熟练回顾熟练这个脱法,
然后比较懒不想多练习,就想我为什么不脱了加壳的程序呢,因为加壳的比被加壳的更加难脱(参考ASPACK变形壳加密程序)
好进入正题
惯例查壳,Upack的壳,载入OD
一. 单步法
进入,直接单步F8,碰到向上跳转直接F4来到下图
这里我们注意到,这边蓝色框框里的 00419557- 0F84 310CFFFF je WinUpack.0040A18E
按照经验这个是一个大跳,大跳就可能接近OEP,但是这个是不实现了,所以我们继续单步,来到箭头上头的那个jmp 0041957A^\EB E7 jmp short WinUpack.00419563
发现是往上跳,惯例F4到箭头处,发现跑飞,结合之前的大跳猜测,我判定到这一步程序肯定都已经释放完毕了,重来来到第三个图的位置
蓝框和JMP之间还有一个jnz,这里一开始我是选择F4过的,然后按照Upack的IAT建立原则,我一直按着F8
发现一个结果,寄存器里面的没有变化,一直在红框这里跳,开始以为我想错了,然后我去看了下,test al,al这里每一次循环,al的值都是变化的,当al=0就不像上跳转了
然后一直F8,发现寄存器开始有变化了,然后按照方法,在蓝框里的je里下个条件断点 eax==0,shift+F9 运行,去掉断点,单步到达OEP,是一个C++编写的
二.. 两部内存法
找到.rsrc红框内的,F2,然后shirt+F9,然后找到 地址=00401000 这个,下断,F2,shirt+F9,一次发现地址没有变化,返回内存看见断点还在,再一次shirt+F9,变化,然后单步,来到IAT创建的地方,依葫芦画瓢。完成脱壳
ESP定律,最后一次异常不适用
总结:多注意细节,程序肯定是要运行的,不可能无限循坏,如果用了各种方法发现,不是,适用最基础的单步方法来到无限循坏的地方,重复注意寄存器是否发生变化,或者在这里最后一个上跳的地方下个断下,配合最后一次异常方法,注意寄存器是否发生变化(ASpack变形壳0.1汉化版)
如果有变化,那么这里就是突破口,记住程序一定是可以运行的,不存在无限循坏。
附上样本和成品
链接:https://pan.baidu.com/s/1bqwzAH5 密码:xcqt
等你真正精通脱壳就会发现,无壳可脱,真正强的加密壳脱不掉,nb的软件都没带壳 smile1110 发表于 2018-1-14 00:58
等你真正精通脱壳就会发现,无壳可脱,真正强的加密壳脱不掉,nb的软件都没带壳
大神的见解一语中的
WinUpack这样的压缩壳,重建PE头,修正区段偏移属性,修正资源,都要费不少时间 感谢楼主的教程 收藏了人 smile1110 发表于 2018-1-14 00:58
等你真正精通脱壳就会发现,无壳可脱,真正强的加密壳脱不掉,nb的软件都没带壳
还没碰到呢,估计到我可以碰到那种壳的时候,我就可以强破了,还在学习中,哈哈,感受大手的提醒 smile1110 发表于 2018-1-14 00:58
等你真正精通脱壳就会发现,无壳可脱,真正强的加密壳脱不掉,nb的软件都没带壳
大牛的这句话是真理 楼主请问XIMO大神的脱壳视频在哪?可以分享下么?谢谢楼主
学到不少东西,期待自己也能达到可脱可破的高度。。 X86ZJY 发表于 2018-1-14 13:04
楼主请问XIMO大神的脱壳视频在哪?可以分享下么?谢谢楼主
http://down.52pojie.cn/吾爱破解视频教程/ximo脱壳基础.7z byh3025 发表于 2018-1-14 10:09
大牛的这句话是真理
嗯,继续努力{:1_921:} :lol很适合新手学习谢谢楼主分享