LOADING

正在加载喵~

攻防世界\\Reversing-x64Elf-100

2025/11/19 未来与梦 未标记

Reversingx64Elf100 c if ( (unsigned int)sub_4006FD(s) ) 需要走一遍sub_4006FD函数 函数内容 c __int64 __fastcall sub_4006FD(__int64 a1) { int i; // [rsp+14h] [rbp24h] _QWORD v3[4]; // [rsp+18h]…

Reversing-x64Elf-100

image-20251119160638848

  if ( (unsigned int)sub_4006FD(s) )

需要走一遍sub_4006FD函数

函数内容

__int64 __fastcall sub_4006FD(__int64 a1)
{
  int i; // [rsp+14h] [rbp-24h]
  _QWORD v3[4]; // [rsp+18h] [rbp-20h]

  v3[0] = "Dufhbmf";
  v3[1] = "pG`imos";
  v3[2] = "ewUglpt";
  for ( i = 0; i <= 11; ++i )
  {
    if ( *(char *)(v3[i % 3] + 2 * (i / 3)) - *(char *)(i + a1) != 1 )
      return 1LL;
  }
  return 0LL;
}

这里我们已知结果和条件去求输入的a1


def main():
    v0 = "Dufhbmf"
    v1 = "pG`imos"
    v2 = "ewUglpt"
    v3 = [v0, v1, v2] #数组
    out = ""
    for i in range(12):
        out+= chr(ord(v3[i%3][2*int(i/3)])-1)#将每一个满足的a1存储起来

    print(out)
if __name__ == "__main__":
    main()

Code_Talkersjie’chu