Diberikan file apk , disini kami langsung membukanya menggunakan jadx-gui lalu menyimpan source beserta resourcenya juga.
Pada class MainActivity terdapat method menarik yaitu onClick
Pada method tersebut dilakukan pengecekan login , kemudian akan ada suatu sharedpreference dengan nama FLAG yang di set dengan value yaitu variable v pada class MainActivity
publicbyte[] v = {49,53,66,68,53,65,50,67,48,56,48,66,66,48,55,54,49,52,48,53,68,52,57,69,57,49,51,54,67,48,52,69,48,68,67,55,50,65,48,49,69,68,69,48,50,57,69,53,51,52,69,52,50,69,70,54,68,66,54,50,65,50,50,55};
Pada class DashboardActivity terdapat method oncreate yang menggunakan sharedpreference flag yang di set tadi dan memanggil method a
Jadi selajutnya kami coba buka method a
Pada method a dilakukan decrypt menggunakan AES , jadi disini kami tinggal menyalin kode tersebut untuk melakukan decrypt terhadap encrypted text. Berikut script yang kami gunakan
Diberikan file apk disini kami langsung membukanya menggunakan jadx.
Pada class MainActivity terdapat pemanggilan method yang menarik karena melibatkan native library yaitu xide
Setelah kami telusuri ternyata pada class flags dilakukan pemanggilan terhadap fungsi flag yang didapat dari hasil load terhadap dex. File dex sendiri didapat dari fungsi wrt yang dilakukan pemanggilan dari native library. Jadi disini saya coba buka native library tersebut lalu mengambil file dex nya dan konversi file dex ke jar lalu membukanya dengan jd gui. Terakhir tinggal analisis fungsi decrypt dari flag dan terapkan pada kode java yang dibuat sendiri.
Extract dengan python
f =open("libxide.so","rb").read()out =open("flags.jar","wb")out.write(f[0xB66B0:0xB6EFD])
Berikut script yang kami gunakan untuk melakukan decrypt