Reverse Engineering
Last updated
Last updated
Challenge | Link |
---|---|
-
Diberikan file PE, buka dengan ida. Terdapat beberapa fungsi yang dibuat oleh probset, ubah variable yang menyimpan fungsi untuk mempermudah tracing
Diketahui bahwa func4 merupakan fungsi flag, karena uang kita 0 dan hanya bisa menambah 1 setiap klik maka cara paling mudah adalah bypass validasi pengecekan uang.
Run program lalu ubah nilai esi == ebx pada breakpoint 0xf89f8d
Lalu lanjutkan
Flag : IFEST23{4r3_y0u_Ch4n9e_7H3_V4lu3}
-
Diberikan APK yang dibuat dengan react native, lakukand extract terhadap file apk dan dapatkan index.android.bundle pada assets.
Diketahui bahwa file tersebut merupakan hermes javascript bytecode, cari di internet untuk cara decompilenya dan didapatkan repo berikut https://github.com/P1sec/hermes-dec . Lakukan decompile dengan hermes-dec.
Saat menjalan APK diketahui bahwa terdapat output “flag value is false” ketika menginputkan nilai random. Jadi cari string tersebut
Setelah didapatkan cek baris kode sebelumnya yang melakukan validasi. Diketahui terdapat beberapa ciphertext yang memiliki format Salted__ (sama seperti keluaran dari openssl). Scroll keatas lagi dan didapatkan potongan kode berikut
Terlihat bahwa terdapat fungsi aes decrypt dari crypto js dan key juga terlihat. Jadi tinggal decrypt dengan crypto-js
Flag : IFEST23{s1Mp13_f14G_yUP_8f3d8a}
-
Diberikan APK, lakukan decompile dengan JADX-GUI.
Pada Home.java terdapat pengecekan emulator dan rooted device.
Pada ifestaccount terdapat pemanggilan flag jika location sesuai. Langkah yang kami lakukan pertama adalah melakukan patch terhadap smali untuk melakukan bypass terhadap rooted device, entah kenapa deteksi emulator tidak mendeteksi emulator saya (avd).
Pada masing-masing smali di Home$n smali ubah pengecekan menjadi if-nez. Selanjutnya compile kembali dengan “apktool b SecureApp” dan sign dengan uber signer. Setelah di sign selanjutnya tinggal gunakan frida untuk trigger pemanggilan terhadap getFlag saat salah satu fungsi di trigger dimana disini kami trigger getflag ketika fungsi doubleToDigitArray dijalankan. Berikut script yang kami gunakan
Flag : IFEST23{Wh4T_d0_Y0u_Th1Nk_4B0u7_th15_4pP_1t_S0_5eCuR3_R19hT}
Broken Shop 🏬 (320 pts)
isHeReact? (380 pts)
Broken PM (400 pts)