看雪.京东 2018 CTF 第一题点评与解析
各位亲爱的坛友们!端午节快乐啊!
小长假最后一天,我们也迎来了看雪.京东 2018 CTF 第一题的尾声。
这一题,可以说是开门红。
有一位选手以55秒的神速,拿下第一题,留下小编我在风中凌乱......
我想这个大概可以吹一辈子...
好了,话不多说,看看本题过后的排名吧!
大家加油!再接再厉!
看雪.京东 2018 CTF 第一题点评
本次看雪CTF比赛共有 15 题,第一题是一个普通的入门级的 CrackMe,主要是降低参与门槛,鼓励更多的人员参与比赛中来,接下来的 14 题,思路都不重复,需要攻击者有较强的知识面。
看雪.京东 2018 CTF 第一题解析
*本解析来自看雪论坛 oooAooo
int __cdecl main(int argc, const char **argv, const char **envp)
{
int v3; // ST08_4
signed int v4; // ebx
char v5; // al
int result; // eax
int v7; // [esp+0h] [ebp-70h]
int v8; // [esp+0h] [ebp-70h]
char v9; // [esp+12h] [ebp-5Eh]
char inputKeyBuf[20]; // [esp+14h] [ebp-5Ch]
char inputKeyHexBuf; // [esp+28h] [ebp-48h]
__int16 v12; // [esp+48h] [ebp-28h]
char v13; // [esp+4Ah] [ebp-26h]
char key; // [esp+4Ch] [ebp-24h]
// 输入的key经过变换后与其比较
strcpy(&key,"437261636b4d654a757374466f7246756e");
while ( 1 )
{
memset(&inputKeyHexBuf, 0, 0x20u);
//获取输入的key
v12 = 0;
v13 = 0;
sub_40134B((int)aPleaseInputYou, v7);
scanf(aS, inputKeyBuf, v3);
if (strlen(inputKeyBuf) > 0x11)
{
break;
}
//将输入的key字符串转换成16进制字符
v4 = 0;
do
{
v5 = inputKeyBuf[v4];
if ( !v5 )
break;
sprintf(&v9, asc_408044, v5);
strcat(&inputKeyHexBuf, &v9);
++v4;
}
//将转换成16进制字符的key与"437261636b4d654a757374466f7246756e"
if ( !strcmp(&inputKeyHexBuf, &key) )
{
//比较成功
sub_40134B((int)aSuccess, v8);
}
else
{
//比较失败
sub_40134B((int)aWrong, v8);
}
}
sub_40134B((int)aWrong, v8);
result = stru_408090._cnt-- - 1;
if ( stru_408090._cnt < 0 )
return _filbuf(&stru_408090);
++stru_408090._ptr;
return result;
}
通过上面分析,输入的key转换成16进制的字符串是"437261636b4d654a757374466f7246756e"
由此可知 key为:CrackMeJustForFun
CTF 旗帜已经升起,等你来战!
扫描二维码,立即参战!
扫描二维码关注我们,更多干货等你来拿!