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

牛壳ARMADILLO和 NANOMITES (第一部分)(图)

更新时间:2008-5-14 0:18:51
责任编辑:果果龙
热 点:

 

这张表包括了每一个INT 3的类型号它们的顺序和Table 1是一样的,也就是取决于INT 3的地址所以 0C属于Table 1中的第一个INT 3以此类推

我们使用变量X来描述在两张表中属于同一个INT 3值,可以表示为:

 

TABLE 1

 

Table 1的起始值 + X * 4

 

TABLE  2

 

Table 2的起始值+ X

 

所以如果X=0

 

Table1=3E5cE8 + 0 * 4= 3e5ce8

 

Table2= 3e6480 + 0  =3e6480

 

这表明当X=0时,第一个INT 3Table 1 中属于它的值是 [3e5ce8]=00401565 table 2中是 [3e6480]=0c

 

 X=1 将是第二个INT 3

 

Table 1=3E5cE8 + 1 * 4=[ 3e5cec]=00401633

 

Table 2= 3e6480 + 1 =[3e6481]=04

 

我希望你能够明白这些因为这对你有用

这部分可能不易理解所以需要仔细地阅读 我们需要搞清楚Table 2那些值的含义它们是一些取决于标志值的跳转

 

 

PUSH ECX 保存它从Table 2获得的将要被执行的属于INT 3的条件跳转这里它的值是04 ,所以我们需要知道它是什么样的条件跳转,因为04代表相同的条件跳转我们进入那个 Call 然后看到:

 

005C7507  |  FF248D C8765C>   JMP DWORD PTR DS:[ECX*4+5C76C8]

 

这里我们看到了一个取决于ECX的值的跳转取决于表中ECX的值和4的乘积+ 5C76C8的值,它将跳转到不同的地址很容易通过改变ECX的值来看看它究竟 跳向何方,然后在OLLYDBG中加注解。

 

 

这回如果ECX=04它将跳向5C750E写下它然后试着从00 改到11

 

 

 

 

如果我们依次尝试其它的值,我们将的到列表如下:

 

0         前往

 

 

1         前往

 

 

以此类推

 

 

 

上一页 1 2 3 4 5 6 下一页

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