Writeup
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:
