首页
社区
课程
招聘
[原创]2018看雪&TSRC CTF第二题WP
发表于: 2018-12-4 07:27 2649

[原创]2018看雪&TSRC CTF第二题WP

2018-12-4 07:27
2649

flag为:jmubojgAbqdvnfmw

check函数并没在main函数内被调用,拿到flag后跟着调了一下,跟进了10多个call,最后找到如下的位置(这部分应该是编译器附带的代码,(类似析构函数)):

int __usercall ctf_get_input@<eax>(int a1@<xmm0>)
{
  signed int length; // [esp+D0h] [ebp-8h]
  int v3; // [esp+D4h] [ebp-4h]
  int savedregs; // [esp+D8h] [ebp+0h]

  sub_10D7B4(&unk_276007);
  ctf_printf(&unk_2731E0, "Please Input:");
  ctf_scanf("%s", buf, 30);
  length = ctf_strlen(buf);
  if ( length <= 30 && length >= 10 )
  {
    ctf_strcpy(key, 30, buf);
    if ( key[7] != 65 )
    {
      ctf_print("输入错误;");
      ctf_exit(0);
    }
    ctf_X_transform(key);
  }
  else
  {
    ctf_print("输入错误;");
    ctf_exit(0);
  }
  return ctf_stack_check(&savedregs == &v3, 0, a1);
}
int __usercall ctf_X_transform<eax>(int a1@<xmm0>, char *key)
{
  unsigned int i; // [esp+D0h] [ebp-8h]

  sub_10D7B4(&unk_276007);
  key[7] = 35;
  for ( i = 0; i < ctf_strlen(key); ++i )
    key[i] ^= 0x1Fu;
  return ctf_stack_check(1, (int)key, a1);
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2018-12-4 07:55 被mratlatsn编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//