PoC e-KTP Reader

Sebagai informasi bahwa aplikasi PoC e-KTP Reader yang biasa dapat ditemui di Google Play Store, sekarang sudah diremove oleh Google karena dianggap tidak sesuai dengan kebijakan terkait aturan aplikasi yang boleh dipublish di Play Store.

Maka, dengan kondisi ini bagi yang masih ingin memanfaatkan atau menggunakan aplikasi PoC e-KTP Reader sementara dapat mendownload aplikasi tersebut melalui situs pooling aplikasi android APKPure. Dengan konsekuensi HP anda harus memperbolehkan untuk diinstall aplikasi dari source di luar Play Store.

Demikian informasi ini semoga bermanfaat. Terimakasih.

SPARC Disassembly

ORACLE SPARC Logo

Postingan ini sebagai catatan pribadi dan mudah-mudahan bermanfaat untuk yang kebetulan harus “kecemplung” debugging aplikasi di Solaris dengan mesin SPARC. Sebagai catatan berikut adalah mesin yang saya pergunakan:

Sedangkan file executable binary-nya adalah:

Tools

Sebelum memulai debugging di Solaris, sebenarnya ada beberapa tools yang disediakan oleh Solaris untuk keperluan debugging live appication. Tools tersebut adalah dtrace dan mdb. Untuk saat ini saya lebih prefer menggunakan mdb karena kebutuhan untuk melakukan patching kecil pada executable file sehingga perlu diketahui offset bytecode yang akan dipatch, dan hal ini bisa dicapai dengan mdb.

Selain mdb, perlu disiapkan adalah dokumen manual terutama instruction set sparcv9. Yang sayangnya saya tidak bisa menemukannya di internet mapping bytecode dengan instruction set yang diharapakan di sparcv9. Sebagai tools tambahan, dan banyak membantu adalah Online Disassembler. Situs ini menyediakan disassembler untuk berbagai tipe prosesor yang salah satunya adalah sparcv9.

Tools terakhir adalah hex editor, saat ini saya menggunkan HxD, karena kemudahan dan kebetulan saat ini menggunakan Windows di laptop kantor.

 

Solaris Modular Debugger

Inti dari tool debugging adalah kita bisa melakukan trace instruksi yang dilakukan oleh sebuah proses atau aplikasi, kemudian melakukan intercept pada bagian proses tertentu untuk dianalisa lebih jauh. Dalam postingan ini saya hanya akan memberikan beberapa command yang dipergunakan untuk proses debugging hingga pada akhirnya dapat menemukan lokasi bytecode yang harus dipatch.

Untuk command-command lain di mdb sepertinya banyak dan dapat ditemui di situs Oracle,

Untuk memulai debugging aplikasi dengan mdb (dan banyak debugger lainnya) dapat dipilih apakah melakukan debug pada file binary atau pada proses aplikasi yang berjalan. Untuk kebutuhan dynamic analysis saya menggunakan yang kedua.

Sebagai contoh saya mencoba menjalankan mdb untuk melakukan debugging proses aplikasi yang berjalan dengan pid=1024.

 

List Functions

Karena kebetulan binary yang akan dipatch adalah not stripped, maka nama-nama fungsi dapat dilihat dengan mdb. Command yang dipergunakan adalah:

Dari command nm, dapat diketahuai pula offset lokasi bytecode untuk fungsi tersebut pada binary file. Sebagai contoh function sa_msg_pre, dapat kita temukan pada offset 0xa4260.

Disassembly

Untuk melakukan disassembly pada mdb dapat menggunkan command “dis”, struktur commandnya adalah “offset::dis” atau “function_name::dis”. Contoh saya akan melakukan disassembly sebuah function sa_msg_pre:

Breakpoint

Untuk melakukan breakpoint pada offset tertentu atau fungsi tertentu dapat menggunakan command “offset:b” atau “function_name:b”. Sebagai contoh saya melakukan breakpoint fungsi sa_msg_pre:

Untuk melihat list breakpoint:

Untuk menghapus breakpoint gunakan command “:d {nomor_breakpoint}” contohnya untuk menghapus breakpoint terakhir (nomor 13) : “:d 13”.

Online Disassembler

Tools ini memudahkan kita untuk membuat bytecode yang akan dipergunakan untuk mengganti bytecode asli dari aplikasi / modul. Sayang saat postingan ini dibuat, situs tersebut sedang offline (selalu mendapat “Server Error (500)”). Jadi untuk detilnya saya belum bisa menuliskan di postingan ini.

Sementara saya akan posting sample bytecode sparcv9 yang akan dipatch:

Untuk kasus saya saya hanya perlu merubah satu byte dari aplikasi sehingga aplikasi dapat berjalan sesuai dengan yang diharapkan.

Membedah: mandiri e-money isi ulang (2)

Akhirnya ada yang mencoba melakukan attack dan berhasil (menurut pengakuannya — saya belum melihat dokumentasi attack ini dilakukan).

Sesuai dengan analisa pertama saya bahwa memberikan fasilitas debug/logging pada aplikasi production (sebelumnya saya hanya menyebut “feature“, karena toh sudah ada yang menulis secara detil di blog) memberikan kemudahan attacker melakukan analisa alur program, terlebih lagi protokol komunikasi yang dipergunakan.

Sebuah pembelajaran untuk selalu kritis dalam implementasi aplikasi (terutama aplikasi untuk industri financial).