反向伪代码

逆向工程 艾达 六线谱
2021-07-05 01:12:28

我正在反转一个二进制文件,它似乎导出了所有有帮助的符号。我看到的是一堆变量和函数,它们都以字母 ' v'开头,例如v101我一直在玩 IDA 的反编译器,并注意到它的伪代码通常使用相同的形式,变量以字母 ' v'开头我知道这可能看起来很愚蠢,但我正在查看一个二进制文件,它实际上只是 IDA pro 伪代码编译的?

生成的伪代码片段:

int v3480()
{
  __int32 v0; // r0@1

  v0 = time(0);
  srand48(v0);

  // TODO Object initialisation!!
  v877 = &v3688;
  v1277 = &v7299;
  v1634 = &v5690;
  v2042 = &v7024;

  v873 = &v3688;
  v872 = (char *)&v3688 + 1;
  v1274 = &v7299;
  v485 = &unk_40B69FF5;

  v1631 = &v5690;
  v1629 = (char *)&v5690 + 1;

  v2037 = &v7024;
  v2038 = (char *)&v7024 + 1;

  v5661 = -1;
  v2325 = -1;
  v1259 = -1;
  v4048 = -1;
  v5509 = &v5497;
  v3845 = &unk_40B69EEC;
  v3522 = &v4191;
  v7253 = &unk_40B69EE4;
  v2081 = &v3009;
  v5828 = &unk_40B69EDC;
  v7014 = &v2061;
  v3636 = &unk_40B69ED4;
  v217 = &v6520;
  v218 = &v6524;
  v219 = &v6525;
  v221 = &v6523;
  v1455 = &v6523;
  unk_40B69EF4 = &v6524;
  v7297 = &dword_40A071D0;
  v5530 = &dword_40A071D0;
  if ( dword_40A071D0 )
  {
    v6935();
  }
  else
  {
    memcpy(v219, &v5764, 0xE3958u);
    dword_40A071D0 = 1;
  }
  return 0;
}
1个回答

您正在查看从二进制文件重建的伪代码。编译后所有变量名都消失了,因此 IDA 生成了新的通用变量。

看起来所有 v* 变量都是本地的(分配在堆栈上)