Reverse Engineering
Raw Diary π₯
13
Mencari PW π₯
13
nomolog π₯
6
Gacor π₯
4
ffiishy (TBU)
1
Raw Diary
Description
Author: .effie
I put a digital sign on this diary ^-^
Initial Analysis
We are given a file:
ββ[mirai@parrot]β[~/ctf/TCP1P Ramadhan 2025/Raw Diary]
ββββΌ $file chall
chall: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=9edbed209686e8fd38cc522ae3f08453c9262498, for GNU/Linux 3.2.0, strippedCode Analysis
Decompile using IDA:
This code essentially opens 2 files, flag.txt and output.txt. Then it initiate a PRNG using the current time as a seed. It then encrypt the content if flag.txt using XOR against a randomly generated number. After that, it will output the encrypted flag to output.txt
Solve
To decrypt the flag, we first need to find out what seed is used when initiating the PRNG.
But when i try to decrypt using the exact timestamp given on the output.txt, it doesn't outputs a flag.
So my instant thought is to bruteforce the timestamp, with the range of 10 minutes before and 10 minutes after. And we will get the flag.

Flag: RAMADAN{1_60nn4_b3_m3}
Mencari PW
Description
Author: b4r
Mas bisa bantu aku buat login? Aku lupa passwordnya :(
Initial Analysis
We are given a file:
If we try to run it, we will get this error:
We identify that it is a PyInstaller executable:

To get the code, we need to extract the .pyc files first, we can use pyinstxtractor.

Code Analysis
We decompile chall.pyc using pylingual:
There is no password checker logic, but when we look at the python bytecode:

There is some python bytecode, that is checking our input:
There are two conditions that it needs to pass:
This code checks if char is in pw_string:
This code checks if it is not in the range of [a-z_]
So it will not jump this this condition:
So for every password list it needs to:
Is in the range of [a-z_]
For every char[i], is not in password[i]
Solve
Based on the two condition above, i write a script and get the flag:

Flag: RAMADHAN{ini_adalah_password_hehe}
nomolog
Description
Author: .effie
D.I.D. i do that??
Initial Analysis
We are given two files:
Code Analysis
We open the file in IDA:
This is a rust binary. I am not really familiar with Rust. (And i don't really understand how this code works :b). So i do output based analysis.
Solve
Analyzing Program Behavior
We are given an encrypted string:
Our objective is to match our input with the encrypted string.
This will outputs all possible chars and this is what it will look like when encoded:
So for every character, it will have the prefix 111312211 then is followed by the character. 1 is a special case where it becomes 312211
Knowing that, we will first try to look which character have the prefix 111312211 :

We found some character, that is:
While analyzing, we noticed some characters not following the prefix, so i thought that it was a multiple character:
We found that it matches part of the encrypted flag:

The flag becomes:
We continue:




You get the idea. After some trial and error, we will get the correct flag:

When submitted to the platform, the flag doesn't use the flag format so...
Flag: {_sshhhhhhh_d0n7_l00k_0r_54y_4ny7h1n6_oookkkkkkkk?_}
Gacor
Description
Author: .effie
i did not have gaming relation with that balatro
Initial Analysis
We are given 3 files:
Code Analysis
We decompile in IDA:
Solve
ffiishy (TBU)
Description
Author: f4r4w4y
Foreign Function Interface is FFIishy (or ffiilthy?)
Initial Analysis
TBU
Code Analysis
TBU
Solve
TBU
Last updated