Overview
A 64-bit Windows command-line binary checks user inputs and validates flags.
Reconnaissance
Using Capstone to disassemble the .text section, we locate key bytes moved to memory in main functions.
Exploitation Strategy
The inputs are XORed with 0x5b before verification. We decrypt the expected key bytes to pass input check constraints and recover the flag.
Solution Code
key_bytes = [0x1e, 0x0f, 0x1b, 0x7a, 0x2d, 0x3c, 0x20, 0x2b, 0x2b, 0x3c, 0x20, 0x2d, 0x7c]
print(''.join([chr(b ^ 0x5b) for b in key_bytes]))Flag
Kaal{4r3_y0u_cr4k3_k44l_ch4kr4}