逆向分析-汇编分析

汇编实现:

1.参数入栈;
2.函数调用;升栈;保护现场;填充缓冲区,执行操作;恢复现场,减低堆栈
3.平衡栈;

eg:
//保存原来栈底
push ebp
//提升栈
mov ebp,esp
sub esp,0x40
//保护现场
push edi
push esi
push ebx
//填充堆栈
mov eax,0x0cccccccc
lea edi,[ebp-40]
mov ecx,0x10
rep stosd ptr es:edi

//执行代码
//局部变量从ebp-4开始。参数从ebp+8开始
//恢复现场
pop ebx
pop esi
pop edi
//恢复堆栈
mov esp,ebp
pop ebp

三种调用约定:
_cdecl 参数从右至左入栈 平衡栈式调用者清理堆栈
_stdcall 参数从右至左入栈 平衡栈时自身清理堆栈
_fastcall ecx/edx传送前两个,剩下从右至左入栈 自身清理堆栈

float数据表示
IEEE实现方式

指数表示方法:
若表示数据小数点为左移时将整数部分最高位置1,整数部分右移时将最高位置0;将为位移部分数据减1

区分if 与if …else 语句的特点在于jcc跳转之后的语句的上一句是否存在跳转语句

逆向工程函数分析:
1.分析函数参数:将传入的参数分别用符号进行表示;
2.分析局部变量:[ebp-4]
3.分析全局变量:[0x12345678]
4.功能分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值