December 16, 2025
Al Khwarizmi CTF Contest
Writeups from ShibirCTF 2025 covering reverse engineering challenges, steganography, and forensics.
Reverse Engineering
Returing is Hard
Just patching the program to execute the print_flag function was enough.


Slogran of July

Wanna Hang Haxina
Using strings command:

This string appeared twice. So:

The file is a PNG image encrypted with ASCII Shift of +5
try:
with open("encrypted.file", "rb") as f:
data = f.read()
decrypted = bytes([(b - 5) % 256 for b in data])
with open("flag.png", "wb") as f:
f.write(decrypted)
print("Success! Open flag.png to see the image.")
except Exception as e:
print(e)
That gives an image with the flag:

Steganography
Unlimited Crack



Forensics
Forensics - 1
It said something about digital signature. So I tried it. Took a few attempts:

First thing I did was select all texts with Control+A then made all font color to black:

That gave the first flag:
