首页
社区
课程
招聘
[求助]这段代码是什么意思?
发表于: 2011-9-7 17:49 3292

[求助]这段代码是什么意思?

2011-9-7 17:49
3292
逆向一个工具的时候调用的函数,初步估计应该是一个反汇编引擎,但代码太多,不能一点一点去逆向,问问大家有谁知道这是哪个开源反汇编引擎的代码呢?

signed int __cdecl sub_403900(int a1, int a2, int a3, int a4, int a5, signed int a6, signed int a7, const void *a8, char *a9)
{
  char *v9; // eax@4
  int v11; // [sp+8h] [bp-64h]@2
  int v12; // [sp+Ch] [bp-60h]@6
  int v13; // [sp+10h] [bp-5Ch]@16
  char v14; // [sp+2Ch] [bp-40h]@5

  if ( a7 <= 0 )
    return -1;
  memset(&v11, -1, 0x24u);
  if ( a8 )
    memcpy(&v11, a8, 0x24u);
  v9 = a9;
  if ( !a9 )
    v9 = &v14;
  *((_DWORD *)v9 + 6) = 1;
  *((_DWORD *)v9 + 5) = a2;
  v11 = 0;
  v12 = 0;
  *((_DWORD *)v9 + 1) = a2 - 1;
  *((_DWORD *)v9 + 3) = a2 - 1;
  if ( a6 == 2 || a6 == 5 )
  {
    v12 = 32;
  }
  else
  {
    if ( a6 == 3 || a6 == 6 )
    {
      v12 = 8;
    }
    else
    {
      if ( a6 != 4 && a6 != 7 )
        return -1;
      v12 = 16;
    }
  }
  if ( a7 > 3 || v13 != -1 )
  {
    if ( a7 == 4 )
    {
      if ( v13 == -1 )
        v13 = 32767;
    }
  }
  else
  {
    v13 = 8191;
  }
  if ( a6 >= 2 && a6 <= 4 )
    return sub_401050(a1, a2, a3, a4, a5, a7, &v11, v9);
  if ( a6 >= 5 && a6 <= 7 )
    return sub_401EA0(a1, a2, a3, a4, a5, a7, &v11, v9);
  return -1;
}

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

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//