flagchecker

solved by hartmannsyg

CTFd is overrated. My flag checker is both fast and secure!

We are given a binary that checks for a flag. Thankfully when we shove it to ghidra it is quite apparent what the flag is:

1
2
3
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
225
226
undefined8 main(void)

{
4-42
printf("Enter flag: "); __isoc99_scanf(&DAT_00102011,&local_38); if (local_38 == 'b') { if (local_37 == 'l') { if (local_36 == 'a') { if (local_35 == 'h') { if (local_34 == 'a') { if (local_33 == 'j') { if (local_32 == '{') { if (local_31 == 'w') { if (local_30 == 'h') { if (local_2f == '4') { if (local_2e == '7') { if (local_2d == '_') { if (local_2c == 'D') { if (local_2b == '3') { if (local_2a == 'C') { if (local_29 == '0') { if (local_28 == 'M') { if (local_27 == 'P') { if (local_26 == '1') { if (local_25 == 'L') { if (local_24 == '3') { if (local_23 == 'r') { if (local_22 == '_') { if (local_21 == 'd') { if (local_20 == '0') { if (local_1f == '_') { if (local_1e == 'y') { if (local_1d == '0') { if (local_1c == 'U') { if (local_1b == '_') { if (local_1a == 'U') { if (local_19 == 's') { if (local_18 == '3') { if (local_17 == '?') { if (local_16 == '}') { puts("Correct flag!"); }
82-224
return 0; }

blahaj{wh47_D3C0MP1L3r_d0_y0U_Us3?}