 |
脱壳----对用Petite2.2加壳的程序进行手动脱壳的一点分析 |
|
| 脱壳----对用Petite2.2加壳的程序进行手动脱壳的一点分析 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:59:10
|
| 脱壳----对用Petite2.2加壳的程序进行手动脱壳的一点分析
(以后如未特别说明,这里所说的脱壳均是指对用Petite2.2加壳的程序而言)
前言:这几天一直在对Petite2.2做试验。总结一下这几天的一点经验,希望对大家对Petite2.2加壳的程序进行手动脱壳时有一点帮助。一般按照以下方法可以简化跟踪的过程,也节省一点大家手动脱壳的时间。(当然大家如果手头上有对此的自动脱壳的工具的话,就不在此列了。可惜现在我手头上还没有。也没有编写这类脱壳程序的经验,不知道如何下手。希望以后我能对此知其一二 :-) )这里能简化的一点步骤就是不需要重建import table,(以下可以看到原因)。看到r!sc的文章对Petite.exe(注意是加壳程序本身)脱壳时,需要自己构造一个import table(我没有构造import table的经验,想来这是一件很花工夫的事情),这很让人以为Petite加壳的程序也需要这样做。实际上情况比想象的好 :-)。这也是我写篇文章的动机所在。
以下用Petite2.2加壳Notepad.exe(M$自带的记事本程序)来说明一下。 目标文件: Notepad.exe (用Level 4级压缩方式加壳) 加壳方式: Petite 2.2 所用工具: SoftICE v4.0, ProcDump v1.6.2, ICEDump v6.0.15 作者: ljttt
1、首先,当然少不了用ProcDump来分析一下对我们有用的文件信息。 Entry Point: 0000D042 Size of image: 0000E000 Image Base: 00400000
2、用SoftICE的Loader加载加壳程序。 3、设断点 bpx loadlibrarya do "dd esp->4" 4、F5运行程序,将中断在我们所设断点上。观察数据窗口。可以看到将要被程序加载的的动态链接库的名字字符串。如下: 0030:00400800 4C454853 2E32334C 006C6C64 4E52454B SHELL32.dll.KERN 0030:00400810 32334C45 6C6C642E 45535500 2E323352 EL32.dll.USER32. 0030:00400820 006C6C64 33494447 6C642E32 6F63006C dll.GDI32.dll.co 0030:00400830 676C646D 642E3233 41006C6C 50415644 mdlg32.dll.ADVAP 0030:00400840 2E323349 006C6C64 00000000 00000000 I32.dll......... 0030:00400850 00000000 00000000 00000000 00000000 ................
但是这里不是image_import_des criptors的部分。大多数时候我们看到的内存地址为400800,(这是在PE头的空间内),从我跟踪的几个程序的情况分析,还原代码总是把要加载的链接库名字复制到此,而没有破坏真正的image_import_des criptors,因此我们要找到真正的import table的入口地址。
5、下指令。向后搜索 [1] [2] [3] [4] 下一页
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: chm帮助编辑器v2.6注册码破解详谈之一*脱壳篇* 下一篇文章: Petite2.x脱壳 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |