Необходимо подобрать правильный серийный номер для решения.

Solution

Начну со статического анализа. Перейду к функции main, благо файл не зачищен)

main:

int32_t main(int32_t argc, char** argv, char** envp)
{
    void* const __return_addr_1 = __return_addr;
    int32_t* var_c = &argc;
    int32_t var_14 = 0xb;
    printf("Enter serial number: ");
    void buf;
    fgets(&buf, 0xb, stdin);
    Check(&buf);
    return 0;
}

Понятно, мы вводим серийный номер длиной 0xb, далее он проверяется функцией Check:

int32_t Check(char* arg1)
{
    size_t ebx = 0;
    
    if (strlen(arg1) > 6)
    {
        if (arg1[3] == 'w')
            ebx = 1;
        
        if (arg1[6] == 'D')
            ebx += 1;
        
        if (arg1[5] == '3')
            ebx += 1;
        
        if (arg1[2] == 'F')
            ebx += 1;
        
        if (arg1[1] == '2')
            ebx += 1;
        
        if (arg1[4] == '1')
            ebx += 1;
    }
    
    size_t eax;
    eax = ebx == 6;
    char var_d = eax;
    PrintOK(((uint32_t)var_d));
    return PrintError(((uint32_t)(var_d ^ 1)));
}

Функция не выглядит сложной. Отсортирую проверки, чтобы легко подобрать серийный номер:

if (strlen(arg1) > 6) {

        if (arg1[1] == '2')
            ebx += 1;
            
        if (arg1[2] == 'F')
            ebx += 1;
        
        if (arg1[3] == 'w')
            ebx = 1;
        
        if (arg1[4] == '1')
            ebx += 1;
            
        if (arg1[5] == '3')
            ebx += 1;
            
        if (arg1[6] == 'D')
            ebx += 1;
    }

Итак, ключ должен выглядеть следующим образом (* - любой символ, регулярки все таки):

*2Fw13D****

Бинарь у меня не запускается, поэтому проверю флаг на сайте:

IMG