reverse/Real Warmup

Description

<aside> 📌 Làm nóng người 1 tí Flag format: KCSC{}

</aside>

Solution

Mở file trong IDA64, chương trình cho người dùng nhập vào và so sánh với một chuỗi cho trước.

int __fastcall main(int argc, const char **argv, const char **envp)
{
    char Str1[256]; // [rsp+20h] [rbp-60h] BYREF

    _main(argc, argv, envp);
    puts("Nh4p. v40` f149 v4` nh4n' [3N73R]");
    while ( 1 )
    {
        if ( !gets(Str1) )
        {
            return 0;
        }

        if ( !strcmp(Str1, "S0NTQ3tDaDQwYF9NfF98bjlgX0QzTidfVjAxJ183N1wvX0tDU0N9") )
        {
            break;
        }

        puts("Sai roi. Hay thu lai");
    }

    return printf("Great!!!");
}

Chuỗi này khá giống với chuỗi bị mã hóa base64. Lên CyberChef decode nó và thu được flag

KCSC{Ch40_M|_|n9_D3N'_V01'_77\\/_KCSC}

pwn/A gift for pwners

Description

<aside> 📌 Just find flag in file, no need netcat

</aside>

Solution

Load file vào IDA64, dùng shortcut Shift + F12 để kiểm tra các string, ta có được phần đầu và phần cuối của flag là KCSC{A_gift_pwners_0xdeadbeef}.

Kiểm tra hàm secret(), ta có được phần giữa của flag là for_the_.

Flag đầy đủ của bài toán là KCSC{A_gift_for_the_pwners_0xdeadbeef}

reverse/dynamic function