首页
社区
课程
招聘
[求助]关于hexray逆出的代码的问题
发表于: 2010-7-15 00:50 4718

[求助]关于hexray逆出的代码的问题

2010-7-15 00:50
4718
愁死了
int __usercall sub_401334<eax>(int a1<ebx>)
{
  int result; // eax@2
  int v2; // ecx@3
  char v3; // al@4
  int v4; // eax@6
  int v5; // eax@7

  if ( a1 )
  {
    v2 = a1;
    if ( !(a1 & 3) )
      goto LABEL_6;
    do
    {
      v3 = *(_BYTE *)v2++;
      if ( !v3 )
        return v2 - 1 - a1;
    }
    while ( v2 & 3 );
    while ( 1 )
    {
      do
      {
LABEL_6:
        v4 = (*(_DWORD *)v2 + 2130640639) ^ ~*(_DWORD *)v2;
        v2 += 4;
      }
      while ( !(v4 & 0x81010100) );
      v5 = *(_DWORD *)(v2 - 4);
      if ( !(_BYTE)v5 )
        break;
      if ( !BYTE1(v5) )
        return v2 - 3 - a1;
      if ( !(v5 & 0xFF0000) )
        return v2 - 2 - a1;
      if ( !(v5 & 0xFF000000) )
        return v2 - 1 - a1;
    }
    result = v2 - 4 - a1;
  }
  else
  {
    result = 0;
  }
  return result;
}

类似上面一段代码  函数头中的 <eax>(int a1<ebx>) 究竟是什么意思啊  怎样修改它们使得编译通过啊?

函数名后面的<eax> 和参数中的<ebx> 究竟是什么意思啊

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 240
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
愁死了  想撞墙
2010-7-15 10:02
0
雪    币: 211
活跃值: (326)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
汇编代码发出来看看~~这样更便于理解
2010-7-15 10:44
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
F5出来是看代码逻辑的.
你得进行改名,自定义结构体等方法进行修正.
2010-7-15 11:03
0
游客
登录 | 注册 方可回帖
返回
//