了解 Hex-Rays 语法

逆向工程 艾达 反编译 手臂 六线谱
2021-06-12 04:31:21

我有一个 Ida 反编译函数,它通过函数指针调用另一个函数,但我真的很困惑它如何计算它的地址。我是 hex-rays 语法的新手。

int __fastcall SUB_XXXX(int a1)
{
  int result; // r0
  int (__fastcall *v3)(int); // r2
 
  result = 0;
  if ( *off_BD2561B0 )
  {
    v3 = *(int (__fastcall **)(int))(*off_BD2561B0 + 36);// off_BD2561B0 DCD dword_BD277D84
    if ( v3 )
      result = v3(a1);
  }
  return result;
}

所以, v3 = dword_BD277D84 + 0x24 = 0xBD277DA8 或者 v3 = ValueAt (dword_BD277D84) + 0x24 ?

我对 off_* 和 dword_* 有点困惑。

0个回答
没有发现任何回复~