A reverse engineering crackme written in C, designed as a HackTheBox-style challenge.
A password-protected binary that validates your input and returns a flag if correct. Sounds simple. It isn't.
Reverse engineer the binary to find the correct password. The flag will be printed in HTB{...} format upon success.
make allDependencies: OpenSSL (libssl-dev)
# Ubuntu/Debian
sudo apt install libssl-dev- Anti-debugging techniques (
ptrace) - Multi-threaded execution and race condition analysis
- MD5 hashing
- Byte-level XOR obfuscation
- Loop-based value obfuscation
- Function pointer obfuscation
- Red herring analysis
Hint 1
The program detects debuggers. How does it do that, and can it be bypassed?Hint 2
The password is assembled across multiple threads. What does each thread actually contribute?Hint 3
Not everything that looks random is random. Trace the math.Hint 4
The password is never stored as plaintext. What is it compared against?Andromeda1957 — github.com/Andromeda1957
HTB: andromeda1957 — Prodigy rank, 186 machines rooted
See also: Reversing-Challenges for more RE practice material.