[TMUCTF 2021] – UnBIOSed

Challenge Description

Diberikan sebuah file .exe, jika dianalisa ini merupakan file .exe berbasis python. Disana ada .PYZ yang merupakan Python Zipped Executable Files.

Strings

Lalu unpack .exe tersebut dengan Python Exe Unpacker.

Python Unpacker

Jika sudah selesai, maka cari file “Unbiosed” lalu buka dengan Hex Editor. Jika dilihat, file ini seharusnya mempunyai extension .pyc (untuk kita decompile menjadi source code python yang asli) akan tetapi magic bytesnya masih salah.

Unbiosed
New Magic Bytes

Tambahkan extension .pyc pada file tersebut. Lalu decompile menggunakan decompyle3.

Jadi jika dilihat aplikasi ini meminta untuk memasukkan sebuah key. Algoritmanya seperti ini:

  • Ada random uniform dari numpy yang membuat distribution random dari (0-4), sederhananya seperti RNG kurang lebih. Jika <=2 maka file tersebut akan mengeluarkan “The Bios is Corrupted” dan akan exit dari program.
  • Jika >2 maka program akan meminta input. Input akan ditampung pada variabel E yang merupakan list.
  • Pada variabel H ada sebuah list angka decimal yang jika kita convert akan menghasilkan ASCII.
  • Ada checking per-karakter dengan variabel G yang akan ditambahkan dengan 1 apabila sebuah index dalam input tidak sama dengan index yang ada pada variabel H.

Nah, kalian bisa scripting maupun menggunakan online decimal to ascii converter untuk mendapatkan flagnya.

Flag: TMUCTF{M4y_4ll_Y0ur_D3c1510n5_b3_Unb1053d!}

Leave a Reply

Your email address will not be published. Required fields are marked *