IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

黑客老鸟讲逆向分析:逆向分析技术全揭秘(1)

2008年02月25日
/

经过前几课的学习,我们现在开始正式开讲逆向分析。逆向分析技术是指通过分析反汇编代码来理解其代码功能,如各接口的数据结构等,然后用高级语言重新描述这段代码,逆向推出原软件的思路。下面从函数的调用、循环、控制语句等方面分析。

在高级语言中,子程序依懒于堆栈来传递参数。
例如test1(Par1,Par2,Par3:integer),按C,Psacal和StdCall的调用约定汇编代码如下:

函数调用

按StdCall约定调用函数test2(par1,par2),其堆栈建立情况如下:
Push  ebp ;保护现场原先的EBP指针
Mov ebp,esp ;设置新的EBP指针,指向栈顶
Sub esp,xxx ;堆栈中留出点空间放局部变量
… …
Add esp,xxx ;释放局部变量占用的堆栈
Pop ebp  ;恢复现场的ebp指针
Ret 8  ;返回 

循环

如果确定某段代码是循环,就可以分析其计数器,一般是用ecx寄存器做计数器。

下面的汇编代码:

xor ecx,ecx;ecx清零
:00440000
inc ecx;计数
… …
cmp ecx,05;循环4次
jbe 00440000;重复

上面的汇编代码用C语言描述有以下3种形式:

While(i<5){… …}
For(i=0;i<5;i++){… …}
i=0
Repeat
i++;
…
Unitl(i>=5)

控制语句

If …else语句:
Cmp byte prt[00221450],bl
Jne 00221590
Case语句:

汇编代码

高级语句

Mov eax,edi          ;

Sub eax,00000002 ;

Je    00401            ;

Sub eax,0000000E ;

Jne 0040114E

Swith(K)

{

    case’0x2’:…;break;

    case’0x10’:…;break;

Default:  

}


共3页: 1 [2] [3] 下一页
 第 1 页:  第 2 页:静态分析/OD动态分析
 第 3 页:结构化异常处理
发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

UTM安全革命:谁说鱼与熊掌不能兼得?
UTM安全革命:谁说鱼与熊掌不能兼得?随着市场和技术的发展,很多用户发现自己采购的UTM产品很象是瑞士军刀仅限于单功...
UTM革命:“一键配置”轻松搞定网关安全
UTM革命:“一键配置”轻松搞定网关安全发布时间:2009-9-14 15:09:33 UTM 革命:一键配置搞定网关安全 摘要:联想网御 P...

本类热点