【51CTO.com 专家特稿】经过前几课的学习,我们现在开始正式开讲逆向分析。逆向分析技术是指通过分析反汇编代码来理解其代码功能,如各接口的数据结构等,然后用高级语言重新描述这段代码,逆向推出原软件的思路。下面从函数的调用、循环、控制语句等方面分析。
在高级语言中,子程序依懒于堆栈来传递参数。
例如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] 下一页 | |||||
|
|
· 黑客老鸟讲逆向分析:.. · 黑客老鸟讲逆向分析:.. · 黑客老鸟讲逆向分析:.. · 如何使用Nikto漏洞扫描.. · 发现新病毒 ntldr.exe .. · J0ker的CISSP之路:系.. |
· 病毒感染可执行文件后.. · 无线安全:让OpenSSH成.. · 技术文库:如何提高杀.. · 黑客攻防入门 · 收集的一些来自黑客站.. · 一个论坛里收集的外大.. |
|
||||
| · 运营商封堵非法ADSL共享 · 龙芯要做中国的“奔腾” · 微软出价446亿美元收购.. · Sun以10亿美元并购开源.. · 珊瑚虫QQ作者侵权案开庭 · Windows Server 2008 · SQL Server 2008/2005.. · 打造安全网络环境 |
· 网络安全产品检验规范 · 社会工程学与网络安全 · 离职员工安全隐患 · 杀毒软件评测专题 · 中间件应用技术专题 · 杀毒软件优化和使用技巧 · 信息安全等级保护专题 · 补丁自动分发管理策略.. |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2008/2005.. · 中间件应用技术专题 · 深入了解PGP加密技术 · MySQL数据库备份 |
· 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · Linux 基础 · SSL VPN详细知识 · Linux防火墙 · 路由器设置与口令恢复 · Linux 集群技术专题 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · MySQL数据库备份 · 身份认证技术 |
· 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 路由器设置与口令恢复 · Linux 集群技术专题 · VPN技术 · Linux 基础 |
|||