攻防世界--Hello, CTF

Posted mayfly-nymph

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了攻防世界--Hello, CTF相关的知识,希望对你有一定的参考价值。

测试文件地址:https://www.lanzous.com/i5ot1yd

 使用IDA1打开

技术图片

打开之后,这个字符串和第一题的有些类似,拿去转换一下,Flag就得到了

CrackMeJustForFun

 

也可以对伪代码进行分析

 1 int __cdecl main(int argc, const char **argv, const char **envp)
 2 
 3   signed int v3; // ebx
 4   char v4; // al
 5   int result; // eax
 6   int v6; // [esp+0h] [ebp-70h]
 7   int v7; // [esp+0h] [ebp-70h]
 8   char v8; // [esp+12h] [ebp-5Eh]
 9   char v9[20]; // [esp+14h] [ebp-5Ch]
10   char v10; // [esp+28h] [ebp-48h]
11   __int16 v11; // [esp+48h] [ebp-28h]
12   char v12; // [esp+4Ah] [ebp-26h]
13   char v13; // [esp+4Ch] [ebp-24h]
14 
15   strcpy(&v13, "437261636b4d654a757374466f7246756e");
16   while ( 1 )
17   
18     memset(&v10, 0, 0x20u);
19     v11 = 0;
20     v12 = 0;
21     sub_40134B(aPleaseInputYou, v6);
22     scanf(aS, v9);
23     if ( strlen(v9) > 0x11 )
24       break;
25     v3 = 0;
26     do
27     
28       v4 = v9[v3];
29       if ( !v4 )
30         break;
31       sprintf(&v8, asc_408044, v4);
32       strcat(&v10, &v8);
33       ++v3;
34     
35     while ( v3 < 17 );
36     if ( !strcmp(&v10, &v13) )
37       sub_40134B(aSuccess, v7);
38     else
39       sub_40134B(aWrong, v7);
40   
41   sub_40134B(aWrong, v7);
42   result = stru_408090._cnt-- - 1;
43   if ( stru_408090._cnt < 0 )
44     return _filbuf(&stru_408090);
45   ++stru_408090._ptr;
46   return result;
47 

第36~39行代码是判断输入字符串和right serial是否匹配,通过第15行代码,我们知道v13就是right serial,将初始化v13的十六进制转换为字符串即可。

 

技术图片

以上是关于攻防世界--Hello, CTF的主要内容,如果未能解决你的问题,请参考以下文章

攻防世界 Reverse Hello, CTF

攻防世界-Hello,CTF-十六进制

CTF PWN-攻防世界XCTF新手区WriteUp

CTF PWN-攻防世界XCTF新手区WriteUp

[一千道逆向题] 攻防世界1-5题刷题题解(偏动调)

[一千道逆向题] 攻防世界1-5题刷题题解(偏动调)