-
-
[原创]看雪CTF 攻防战-2019q2-第一题:神秘来信WriteUp
-
发表于: 2019-6-24 11:45 2854
-
看雪CTF 攻防战-2019q2-第一题:神秘来信WriteUp
https://github.com/wqsemc/kanxue-ctf2019q2/blob/master/1MysteriousLetter2.zip
1、ida打开,快捷键F5转成C源代码,关键部分如下:
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]
v4 = strlen((const char *)&v9);
if ( v4 < 7 && v14 == 51 && v13 == 53 && v12 == 51 && v11 + v10 + v9 == 149 )
{// ) + )
v6 = 0;
if ( v4 )
{
do
v3 = *(&v9 + v6++) + 16 * v3 - 48;
while ( v6 < v4 );
}
所以末3位分别为 51-48,53-48,51-48,即后3位数字为353。
2、for循环进行遍历,前3位ascii码相加为149时打印。
printf("return %d,v9=%d,v10=%d,v11=%d,%c%c%c353 \n",v3,v9,v10,v11,v9,v10,v11);
return -2961972,v9=48,v10=48,v11=53,005353
return -2961972,v9=48,v10=49,v11=52,014353
return -2961972,v9=48,v10=50,v11=51,023353
return -2961972,v9=48,v10=51,v11=50,032353
return -2961972,v9=48,v10=52,v11=49,041353
return -2961972,v9=48,v10=53,v11=48,050353
return -1913396,v9=49,v10=48,v11=52,104353
return -1913396,v9=49,v10=49,v11=51,113353
return -1913396,v9=49,v10=50,v11=50,122353
return -1913396,v9=49,v10=51,v11=49,131353
return -1913396,v9=49,v10=52,v11=48,140353
return -864820,v9=50,v10=48,v11=51,203353
return -864820,v9=50,v10=49,v11=50,212353
return -864820,v9=50,v10=50,v11=49,221353
return -864820,v9=50,v10=51,v11=48,230353
return 183756,v9=51,v10=48,v11=50,302353
return 183756,v9=51,v10=49,v11=49,311353
return 183756,v9=51,v10=50,v11=48,320353
return 1232332,v9=52,v10=48,v11=49,401353
return 1232332,v9=52,v10=49,v11=48,410353
return 2280908,v9=53,v10=48,v11=48,500353
3、穷举如上21个迷,答案为401353
PS C:\1kctf2019q2\1MysteriousLetter2> .\MysteriousLetter2.exe
请输入序列号:
311353
error!
PS C:\1kctf2019q2\1MysteriousLetter2> .\MysteriousLetter2.exe
请输入序列号:
320353
error!
PS C:\1kctf2019q2\1MysteriousLetter2> .\MysteriousLetter2.exe
请输入序列号:
401353
success!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)