安全中国首页 > 文章中心 > 脱壳技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

Armadillo加壳软件Getright 5.01的脱壳(图)

更新时间:2008-5-16 0:12:57
责任编辑:池天
热 点:
Armadillo for Dummies: Getright 5 手动脱壳和重建 IAT (第一部分)
因为Armadillo实在是太复杂了,以至于人们已经不得不沿用下面这个手动的方法去脱壳armadillo,这不是我的过错,只是因为armadillo实在是太难脱壳了,然后我将会在这个文档中一步一步地去完成脱壳,同时配上很多图片,只是想让它变得尽量容易理解.我并不想写一个10兆大的参考教程,所以我把这个文档分成两部分.第一部分主要讲如何转储(dump)armadillo保护的程序,然后我会在第二部分中提及一些以前在其它任何教程中都未曾见过的东西,那就是输入表(import table)redirectionrebuilding.

在我们开始之前,我必须声明这篇参考教程只在Windows XP上测试.请不要在 windows98或者2000中尝试.原因是只有Windows xp才拥有必要的API,能够把子进程(child)从它的父进程father那儿脱钩下来.

这次练习,我们找到的自愿者是Getright 5 final. Crusader曾经写过关于这个软件的某一个版本的参考教程,但是这篇参考教程在很多方面都不同于crusader写的那篇.

crusader
写的那篇参考教程(原版)----(1)

crusader
写的那篇参考教程(FTBirthday翻译版本)----(2)

你可以从以下连接下载GetRight 5.不管怎样我在我的ftp中保存了一个副本,所以你可以从那儿下载,就不用去管它在网上被放在哪儿了.

http://www.getright.com/

抓起你的鼠标,安装好Getright然后准备作战.Armadillo将会变得软弱无力.

如何脱壳(UNPACK)以及转储(DUMP)Getright 5

OLLYBG中载入GETRIGHT.exe然后整装待发.我将按照以下的步骤,很容易记住的,你可以在其它任何armadillo保护软件中按部就班.

第一步:重新设置检测ISDEBUGGERPRESENT API的字节

我将要解释如何在任何电脑中去寻找这个字节.

首先从这个连接下载命令行插件:

http://dd.x-eye.net/file/cmdbar10802.zip

解压它然后复制dllOLLYDBG文件夹.只要你运行Ollydbg你将会在调试窗口的左下角看到一个白色的输入框,在那儿你可以键入很多命令.让我们键入:
Bp IsDebuggerPresent

我们必须准确地按图示键入Bp IsDebuggerPresent.记住我们必须保证大小写的顺序,因为如果我们键入了任何不同于以上形式的命令,那么一个错误提示(UNKNOWN COMMAND)将在命令行的右边产生.所以正确地键入BP IsDebuggerPresent然后按回车如果在按回车后没有错误提示出现,那就说明这个BP已经生效.

现在按F9运行程序,它将会中断在API IsDebuggerPresent

 

在这张图中我们可以看到OllyDBG中断在API IsDebuggerPresent(红色), 然后按F7步进到第三行(白色)

77E52E9B 0FB640 02 MOVZX EAX,BYTE PTR DS:[EAX+2]

一旦到达那儿,看一下disassembly,在那儿我们可以看到如下图的内容

 

这儿我们可以看到在我的机器中偏移是7ffdf002,包含了值01.这个地址在其它机器中可能会不同01意味着调试器被检测到了,所以写下这个地址,在任何时候我们在ollydbg中运行程序,都必须把它修改为00,从而避免被packer检测到.记住在ollydbg中运行或重运行程序的任何时候修改此值为00. 

我们将以重启ollydbg (ctrl+F2)来结束第一步,到转储窗口(DUMP)单击右键选择"前往 表达" 7ffdf002或者其它任何先前你记下的地址,然后把它的值从01修改为00.

 

 

把它改为00.

 

第二步:BP WAITFORDEBUGEVENT

这一步并非必要,但却是一个好的选择,当它停止时在转储(DUMP)区看到report.让我们看看该怎样做.

首先我们需要在命令行输入BP WaitForDebugEvent,和我们输入IsDebuggerPresent的方法是相同的.

现在运行它,当它停下时我们可以在堆栈窗口(Stack window)看到关于这个API的所有参数信息.

 

看一下第二行.那儿我们可以看到它将在哪儿显示report,所以到转储窗口(dump window), 右键选择 "前往 表达"= 12EFF8.注意这个值在一些机器上可能会不同,所以前往你的机器显示的值.

1 2 3 4 5 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画