查看原文
其他

看雪.京东 2018 CTF 第一题点评与解析

小雪 看雪学院 2019-05-27

各位亲爱的坛友们!端午节快乐啊!

小长假最后一天,我们也迎来了看雪.京东 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 旗帜已经升起,等你来战!

扫描二维码,立即参战!



扫描二维码关注我们,更多干货等你来拿!



戳原文,立刻加入战斗!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存