Oracle

ファイル Oracle.class が与えられた。

これを JD-GUI で逆コンパイルしてみると、 入力された文字列が指定の長さであり、かつそれを3個の関数で順に処理した結果が指定のものになるかをチェックしているようだった。
そこで、Z3を用いて入力を求める以下のプログラムを作成した。

A file Oracle.class was given.

Decompling this program using JD-GUI, I found it checking if the input string has the expected length, and becomes expected data after processing it with 3 functions.
Seeing this, I created this program to determine the input via Z3.

solve.py

このプログラムを実行することで、flagが得られた。

I obtained the flag by executing this program.

sdctf{u_f0und_th3_LANGu4ge_0f_th1s_0r4cl3}

San Diego CTF 2022