| CRACKME - C |
[Click to reveal]Your candidate key is processed and compared with "CR4CKM3_1234" byte for byte. Your candidate key has to be 12 bytes long.
Each byte is processed:
XOR 55
ADD 7
XOR 33
Therefor to get the correct password, you need to reverse each byte in "CR4CKM3_1234" as follows:
XOR 33
SUB 7
XOR 55
The correct answer is a byte array which contains characters that are not printable in ascii and impossible to submit via the command line:
3C 0F 55 3C 24 22 AC 30 AE AF AC 55
You can use this Python to run crackme.exe as a process and pass this byte sequence unaltered as a string. Remember to change the path to the executable:
import subprocess
# Raw 12-byte sequence
key_bytes = bytes([0x3C, 0x0F, 0x55, 0x3C, 0x24, 0x22, 0xAC, 0x30, 0xAE, 0xAF, 0xAC, 0x55])
# Decode 1:1 using latin-1 so Python accepts it as a string argument
key_str = key_bytes.decode('latin-1')
# Run crackme.exe
result = subprocess.run(
["C:\\Ghidra\\Projects\\CRACKME - C\\crackme.exe", key_str],
capture_output=True,
text=False
)
# Print output decoded as latin-1
print(result.stdout.decode('latin-1', errors='replace'))
It will output:
correct! You cracked it
Whoever wrote this code needs to take a long, hard look at themselves in the mirror.
|
2026-10-25 21:05 |