📄 chap8-4-4.htm.primary
字号:
<html>
<head>
<title>Crack Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="style/css.css" type="text/css">
<link rel="stylesheet" href="../STYLE/Css.css" type="text/css">
</head>
<body bgcolor="white" text="#000000" link="#004080" vlink="#004080" background="../image/Back.gif">
<p><a href="../catalog.htm">目录</a>>>第8章</p>
<p align="center" class="shadow1Copy"><b class="p3">第8章 压缩与脱壳</b></p>
<table width="80%" border="0" cellspacing="0" cellpadding="3" align="center" bgcolor="#bcbcbc" bordercolor="#111111" class="shadow1">
<tr>
<td class="shadow1" width="20%">
<div align="center"><a href="Chap8-1.htm"><font color="#FFFFFF">第一节 PE文件格式</font></a></div>
</td>
<td class="shadow1" width="20%">
<div align="center"><a href="Chap8-2.htm"><font color="#FFFFFF">第二节 认识脱壳</font></a></div>
</td>
<td class="shadow1" width="20%">
<div align="center"><a href="Chap8-3-1.htm"><font color="#FFFFFF">第三节 自动脱壳</font></a></div>
</td>
<td class="shadow1" width="20%">
<div align="center"><a href="Chap8-4.htm"><font color="#FFFFFF">第四节 手动脱壳</font></a></div>
</td>
<td class="shadow1" width="20%">
<div align="center"><a href="Chap8-5.htm"><font color="#FFFFFF">第五节 脱壳高级篇</font></a></div>
</td>
</tr>
</table>
<p align="center"><span class="p9"><b>第四节 手动脱壳</b></span></p>
<table border="1" width="80%" cellpadding="5" bordercolor="#111111" bgcolor="#efefef" align="center" cellspacing="0">
<tr>
<td width="50%" valign="middle" align="center" class="p9" height="23">
<div align="left"><span class="p9"><span class="p9"> <span class="p9"> </span> <span class="p9">1、<a href="Chap8-4-1.htm">基本知识</a></span></span></span></div>
</td>
<td colspan="2" valign="middle" align="center" class="p9" height="23" width="50%">
<div align="left"><span class="p9"><span class="p9"> <span class="p9"> </span> </span></span>2、<a href="Chap8-4-2.htm">UPX
V1.01的壳</a></div>
</td>
</tr>
<tr>
<td width="50%" valign="middle" align="center" class="p9" height="23">
<div align="left"><span class="p9"><span class="p9"> <span class="p9"> </span> </span></span>3、<a href="Chap8-4-3.htm">Shrinker
v3.4 的壳</a></div>
</td>
<td colspan="2" valign="middle" align="center" class="p9" height="23" width="50%">
<div align="left"><span class="p9"><span class="p9"> <span class="p9"> </span> </span></span>4、<a href="Chap8-4-4.htm">ASPack
v1.083</a></div>
</td>
</tr>
</table>
<p align="center"><b>4、ASPack v1.083</b></p>
<p class="p9">压缩文件:<a href="Exercise/chap8-4-4.zip">下载</a>。</p>
<p class="p9">如<span class="p9">用TRW2000调试,装载后,下命令:pnewsec就可中断到入口点。为了提高跟踪水平,下面以SOFTICE为例,讲述跟踪过程。
</span> </p>
<p class="p9" align="left">_________________________________________________________________________</p>
<p class="p9" align="center">寻找程序的入口点( Entry Point) </p>
<p class="p9"><br>
用Symbol Loader打开Notepad-ASPACK.exe,点击Symbol loader的第二个图标("Load the currently
open module") </p>
<p class="p9">如SOFTICE 装载成功,它应中断在起始程序入口处。 </p>
<p class="p9"><br>
当跟踪时,你会经过许多条件跳转指令及循环指令,要用点技巧跳出这些圈子,其形式一般这样:</p>
<p class="p9">*************************************<br>
aaaaaaaa<br>
...<br>
wwwwwwww<br>
xxxxxxxx JNZ zzzzzzzz <-- 循环返回到aaaaaaaa<br>
yyyyyyyy JMP aaaaaaaa<br>
zzzzzzzz 新的指令</p>
<p class="p9">如果你跟踪时,你将跳转到 aaaaaaa处多次,你可将光标移到 zzzzzzzz一行,按F7让指令直接跳到此处,可省不少时间。<br>
*************************************</p>
<p class="p9"><br>
在跟踪过程会来到:<br>
167:0040D558 POPAD<br>
0167:0040D559 JNZ 0040D563 (JUMP)<br>
0167:0040D55B MOV EAX,00000001<br>
0167:0040D560 RET 000C<br>
0167:0040D563 PUSH EAX<--EAX的值就是入口点的值=4010CC<br>
0167:0040D564 RET <--返回到记事本的真正的入口点</p>
<p class="p9">*************************************<br>
0167:004010CC PUSH EBP <--真正的入口点<br>
0167:004010CD MOV EBP,ESP<br>
0167:004010CF SUB ESP,00000044<br>
0167:004010D2 PUSH ESI</p>
<p class="p9">经过0167:0040D564 RET 一行,程序将来到0167:004010CC刚完全解压的真正程序第一条指令处。<br>
*************************************<br>
当我们跟踪时发现POPAD或POPFD,就要提高警惕,一般入口点就在附近了,在此程序的原始入口点是004010CC<br>
在0167:0040D564 RET一行键入:<br>
a eip (然后按回车)<br>
jmp eip (然后按回车)<br>
F5</p>
<p class="p9">这个方法是让程序挂起,按F5回到windows下。<br>
运行 Procdump,在Task的列表中的第一个list上点击鼠标右键,然后选择"Refresh <br>
list". 在Task列表中找到notepad.exe,在它的上面点击鼠标右键. <br>
然后,选中"Dump (Full)",给脱壳的程序起名存盘. <br>
再在notepad.exe上点击鼠标右键,然后选中"Kill Task". </p>
<p class="p9"><br>
_________________________________________________________________________</p>
<p class="p9" align="center">修正入口点</p>
<p class="p9">脱壳的notepad.exe程序入口是004010CC. <br>
再次使用ProcDump的PE Editor功能, 打开已脱壳的notepad.exe. </p>
<p class="p9"><br>
修正入口点值=4010CC-00400000(基址)=10CC <br>
点击"OK". </p>
<p class="p9">现在, 运行脱壳后的notepad.exe吧,它应该正常运行了。</p>
<p align="center"><a href="../Catalog.htm"><img src="../image/navtoc.gif" width="84" height="23" border="0"></a><a href="Chap8-4-3.htm"><img src="../image/Navprev.gif" width="80" height="23" border="0"></a><a href="Chap8-5.htm"><img src="../image/navnext.gif" width="83" height="23" border="0"></a></p>
<hr width=735>
<div align="center"><span class="p9"><font size="2"><span class="p9"><font size="2"><span class="p9">Copyright
© 2000-2001 <a href="http://www.pediy.com/">KanXue Studio</a> All Rights
Reserved.</span></font></span></font></span></div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -