数据逆向(二)——区分常量、变量、指针

做数据逆向分析最先应该区分数据是常量、变量,还是指针。可是作为二进制数据本身不会标记自己是什么,然而编译器将不同的的类别储存在不同的区域。

 

 

变量数据应分为这两类:

      1. 局部非静态变量:对于1KB以下的该种变量,一般都要放在栈区,那么它的寻址用到ebp寄存器来间接变址进行寻址。另外,有些编译器(比如gcc)出于优化考虑,也会用到esp寄存器。

举例:

void fun()
{
 int i=0;
 char a[5]="AAAA";
}

//vc2005Debug版反汇编

void fun()
{

-------------------------------------------------保护寄存器数据
00411390  push        ebp 
00411391  mov         ebp,esp
00411393  sub         esp,0E0h
00411399  push        ebx 
0041139A  push        esi 
0041139B  push        edi 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值