首页
社区
课程
招聘
[原创]看雪.纽盾 KCTF晋级赛2019 Q2 第一题 神秘来信
发表于: 2019-6-18 14:20 2205

[原创]看雪.纽盾 KCTF晋级赛2019 Q2 第一题 神秘来信

2019-6-18 14:20
2205
用IDA找到main函数,查看伪代码
int __cdecl main(int argc, const char **argv, const char **envp)
{
  int v3; // esi
  unsigned int v4; // kr00_4
  unsigned int v6; // ecx
  unsigned __int8 v9; // [esp+10h] [ebp-3Ch]
  unsigned __int8 v10; // [esp+11h] [ebp-3Bh]
  unsigned __int8 v11; // [esp+12h] [ebp-3Ah]
  char v12; // [esp+13h] [ebp-39h]
  char v13; // [esp+14h] [ebp-38h]
  char v14; // [esp+15h] [ebp-37h]
  CPPEH_RECORD ms_exc; // [esp+34h] [ebp-18h]

  v3 = 0;
  sub_401410("请输入序列号:\n");
  sub_4013D0("%s", &v9);
  v4 = strlen((const char *)&v9);
  if ( v4 < 7 && v14 == '3' && v13 == '5' && v12 == '3' && v11 + v10 + v9 == 0x95 )
  {
    v6 = 0;
    if ( v4 )
    {
      do
        v3 = *(&v9 + v6++) + 16 * v3 - '0';
      while ( v6 < v4 );
    }
    ms_exc.registration.TryLevel = 0;
    MEMORY[0] = 'A';
    sub_401410("error!\n");
    while ( 1 )
      ;
  }
  sub_401410("error\n");
  return 0;
}
我们可以得知key是6位,前三位相加等于0x95, 后三位是"353"
伪代码里面还有ms_exc.registration.TryLevel,说明这里可能会产生异常。


那答案就显而易见了,key就是401353

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

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