SSCTF Crack类 第一题

Reading time ~1 minute

Crack类的题目也没神马题目描述了,传送门在此

今天发现IDA原来还有反编译功能,顿时觉得自己之前似乎SB了。然后试用了下,感觉效果还不错。

这题整个程序很简单,就是读入name和pass,然后通过下面的子程序(IDA生成的)来judge:

bool __cdecl sub_401000(const char *username, const char *password)
{
  const char *v2; // esi@1
  unsigned int len_user_plus; // kr04_4@1
  int len_user; // ebp@1
  bool result; // al@2
  int i; // eax@3
  int *str_con; // edi@4
  const char v8; // bl@5
  const char *v9; // edi@6
  int j; // ecx@6
  bool v11; // zf@6

  v2 = username;
  len_user_plus = strlen(username) + 1;
  len_user = len_user_plus - 1;
  if ( len_user_plus - 1 == strlen(password) )
  {
    i = 0;
    if ( len_user > 0 )
    {
      str_con = &global_str;
      do
      {
        v8 = *(_BYTE *)str_con ^ password[i];
        ++str_con;
        password[i++] = v8;
      }
      while ( i < len_user );
    }
    v9 = password;
    j = len_user_plus - 1;
    v11 = 1;
    do
    {
      if ( !j )
        break;
      v11 = *v2++ == *v9++;
      --j;
    }
    while ( v11 );
    result = v11;
  }
  else
  {
    result = 0;
  }
  return result;
}

程序很明确,就是将username与一个全局的常量进行xor,然后再将结果与password对比,相等则正确。

00408030  01 00 00 00 02 00 00 00  03 00 00 00 04 00 00 00  ................
00408040  01 00 00 00 05 00 00 00  01 00 00 00 05 00 00 00  ................
00408050  01 00 00 00 03 00 00 00  06 00 00 00 05 00 00 00  ................
00408060  04 00 00 00 08 00 00 00  05 00 00 00 03 00 00 00  ................
00408070  01 00 00 00 02 00 00 00  03 00 00 00 04 00 00 00  ................
00408080  05 00 00 00 03 00 00 00  05 00 00 00 07 00 00 00  ................
00408090  02 00 00 00 03 00 00 00  02 00 00 00 04 00 00 00  ................
004080A0  08 00 00 00 02 00 00 00  05 00 00 00 06 00 00 00  ................
004080B0  04 00 00 00 74 72 79 20  61 67 61 69 6E 21 00 00  ....try again!..

注意这个字符串是每个dword只去某位的一个byte,所以相当于是01、02、03、04、01、05、01、05……

我们可以将username和password分别输入为0、1来测试,会发现程序提示我们正确。

于是,按照要求,使用用户名当username,算出password,计算MD5就是答案了。

CrackMe1.rar

挂载网络文件夹后网络故障时文件操作命令卡死

挂载 NFS 或者 Samba 的时候,经常会由于网络故障导致挂载好的链接断掉。此时如果尝试进行 ls、cd、df 等各种命令,只要与此目录沾上边,就会卡住。如果使用了类似 oh-my-zsh 这种配置的,只要在网络目录中,弹出命令提示符前就会直接卡住。这个时候第一反应就是...… Continue reading

路由折腾记 第四弹

Published on September 02, 2017