脱upx壳--初试--单步追踪

為{幸葍}努か 提交于 2021-01-18 06:32:10

这里的练习题目是reversing.krEasy Crack

我自己用upx加壳工具给它加了个壳,由于原文件逻辑简单,所以用它来练练手

之后用到的工具是IDA和Ollydbg

<br>

0x00 在正式调试之前需要知道的一些操作

1.单步追踪法向下调试一般用的是F8(单步步过)

2.遇到红色的向上箭头说明运行到此处之后会向上跳转,对于单步跟踪法来说是不能让它发生的,所以点击下一行,F4运行到该处。

1

3.遇到灰色箭头:灰色说明它没有起作用,直接F8就行,并不会向上跳转

2

4.如果看到popad指令,说明在下面不远处会有一个大跳转(跳到另一个区段) ,即程序即将运行到OEP (真正的程序入口点)。

5.在快到popad的时候可能程序会跑飞,如下图的第一个箭头所指

0040BAC0    FF96 A8B00000   call dword ptr ds:[esi+0xB0A8] 

那么我们可以直接F4到0x400AC63

0x01 脱壳

*有了上述的了解之后,经过耐心的调试,程序来到了OEP。

4

注意看,jump的目标地址0x401188, 而当前程序所处的地址是0x40BB03, 跨度如此之大,说明我们离成功不远。

*F8单步运行,到了最后一步。

6

*在0x401188处右键 -> 用Ollydump脱壳调试进程,点脱壳。

7

小trick:alt+m可以看内存映像(memory map),如下图

5

可以看到0x401188 属于UPX0区段,而0x40BB03 属于UPX1,验证了上面的说法。

<br>

0x02 验证

用IDA32位打开。

第一张是未脱壳的结果。

9

第二张是脱壳之后的结果。

8

可以看到脱壳之后flag很容易就可以看到是Ea5yR3versing, 但很迷的是用file命令或者是DIE工具扫出来还是有upx壳==

<br>

作者: LB919

出处:http://www.cnblogs.com/L1B0/

如有转载,荣幸之至!请随手标明出处;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!