Mengenal Frida untuk Reverse Engineering

Salah satu tools reverse engineering yang sering saya pakai adalah Frida. Frida memungkinkan kita meng-intercept fungsi dalam C/native code (di berbagai sistem operasi), Java (di Android) dan Objective C (di macOS/iOS) dengan menggunakan JavaScript. Mungkin bagi sebagian orang deskripsi ini masih agak terlalu mengawang-awang, jadi akan saya berikan contoh nyata apa maksudnya mengintercept fungsi.

Saya berikan contoh program kecil seperti ini dalam C, yang hanya melakukan loop membuka satu file, mencetak sebaris dari file tersebut, lalu program akan sleep selama 1 detik. Program ini akan saya intercept dengan Frida.

Saya mengisi file1 dengan string “Yohanes Nugroho” dan file2 dengan string “Risnawaty”, jadi ketika dijalankan outputnya seperti ini:

Lanjutkan membaca “Mengenal Frida untuk Reverse Engineering”

Biaya Reverse Engineering

Saya pernah menuliskan mengenai mahalnya membuat aplikasi mobile. Saya juga pernah menulis mengenai ransomware dan RE dan betapa sulitnya hal tersebut. Tapi sepertinya banyak yang belum paham bahwa RE juga mahal (untuk yang tidak tahu apa itu RE, silakan baca FAQ berbahasa Indonesia di sini). Ini untuk menjawab berbagai pertanyaan orang yang ini minta bantuan untuk: Reverse engineering game, reverse engineering malware/ransomware, cracking software tertentu, dan segala macam bantuan yang berhubungan dengan reverse engineering.

Jumlah orang yang bisa melakukan reverse engineering di dunia ini tidak banyak. Sesuai hukum supply dan demand: karena yang bisa melakukan RE relatif sedikit maka harga jasanya jadi mahal. Reverse engineering juga butuh waktu cukup lama. Jangan bayangkan RE ini sekedar membuka IDA Pro atau tool sejenis dan langsung bisa menemukan di mana harus patch sesuatu atau menemukan algoritma tertentu.

Lanjutkan membaca “Biaya Reverse Engineering”

Reverse Engineering Aplikasi iOS

Sudah lama saya menuliskan tentang reverse engineering Android tapi sampai saat ini belum menuliskan untuk iOS. Tulisan ini akan memperkenalkan cara reverse engineering aplikasi iOS dengan berbagai pendekatan. Tujuan utamanya di sini adalah untuk pentesting. Reversing untuk tujuan lain (misalnya Tweak development) sebagian akan sama, tapi masih butuh usaha dan tool ekstra dan hanya akan saya bahas sekilas.

Mesin macOS dan XCode

Memiliki mesin macOS akan sangat membantu dalam reverse engineering. Mesin ini bisa fisik asli dari Apple (Macbook, MacMini atau yang lain), mesin tidak resmi (Hackintosh), atau bahkan Virtual Machine. Pengunaan utamanya adalah untuk menjalankan Xcode terbaru dan iTunes.

Sebenarnya ini tidak 100% wajib, karena kebanyakan tool bisa berjalan di OS Lain. Misalnya di Linux saya memakai libimobiledevice untuk menginstall IPA, membaca log dari device, dsb. Tapi biasanya jika ada iOS baru, berbagai tool di luar OS X akan berhenti bekerja sampai beberapa hari atau bulan, menunggu developernya memahami apa yang diubah Apple dan bagaimana memperbaikinya.

Lanjutkan membaca “Reverse Engineering Aplikasi iOS”

Ghidra Tools Reverse Engineering dari NSA

Baru-baru ini NSA (National Security Agency) Amerika merilis tools RE baru bernama Ghidra yang gratis. Rencananya ini akan open source, tapi saat ini repositorynya masih kosong. Ghidra ini merupakan saingan IDA Pro yang saat ini harganya sangat mahal. Sebagai informasi: harga license IDA Pro paling murah ratusan USD (versi starter edition), sampai totalnya puluhan ribu USD jika kita ingin paket lengkap (IDA Pro dengan semua plugin decompilernya).

Ghidra

Tulisan kali ini merupakan kesan pertama memakai Ghidra. Perlu dicatat bahwa pekerjaan utama saya bukan reversing. Ini sekedar hobi buat saya. namun demikian saya sudah melakukan reversing beraneka hal baik yang populer seperti Windows/Linux/Mac/Android/iOS maupun berbagai target yang unik, misalnya (yang sudah saya terbitkan tulisannya): hardware Pokemon Go Plus (berbasis ARM), berbagai challenge Flare-On (campuran), Challenge BEVX (Arm), dan RHME (AVR).

Lanjutkan membaca “Ghidra Tools Reverse Engineering dari NSA”

Root check dan jailbreak check pada aplikasi mobile

Artikel ini akan membas mengenai metode untuk mengecek root (pada Android) atau jailbreak (pada iOS) dan mengapa pemeriksaan ini diperlukan. Berikut saya akan membahas bagaimana melakukan bypass pengecekan ini supaya seorang pentester bisa melakukan testing pada aplikasi mobile.

Apa itu rooting/jailbreak?

Baik rooting maupun jailbreak gunanya adalah untuk mendapatkan hak akses setara administrator pada mobile device yang kita miliki. Di Android kita bebas menginstall aplikasi apa saja, di iOS sebuah aplikasi hanya bisa diinstall dalam mode development, dengan jailbreak maka aplikasi tambahan bisa diinstall.

Jika device sudah dijailbreak/root maka sebuah aplikasi kemudian bisa diberi hak untuk melakukan apa saja, termasuk juga membaca data privat aplikasi lain. “Melakukan apa saja” bisa berarti positif, misalnya kita bisa mengganti berbagai aplikasi sistem dengan versi yang lebih baik, menghapus aplikasi bawaan sistem yang tidak terpakai, dsb.

Biasanya seseorang dengan sengaja melakukan rooting/jailbreaking pada devicenya sendiri supaya bisa melakukan hal-hal yang sebelumnya tidak bisa diijinkan oleh sistem. Contohnya: kita bisa mengganti isi file hosts untuk memblokir iklan di berbagai aplikasi, atau meningkatkan privasi dengan menggunakan aplikasi tertentu yang mencegat berbagai kebocoran informasi (misalnya dengan XPrivacyLua), atau bahkan sekedar untuk mencurangi game tertentu.

Lanjutkan membaca “Root check dan jailbreak check pada aplikasi mobile”

Ransomware, Reverse Engineering dan Backup

Cukup banyak yang bertanya ke saya mengenai ransomware, selain itu sering juga di group reverse engineering ada yang bertanya: saya kena ransomware (dengan scren capture layar permintaan tebusan), diteruskan dengan: apa yang harus saya lakukan? Tulisan ini akan berusaha menjawab kenapa sulit mengatasi ini, kenapa percuma meminta tolong ke group reverse engineering, dan kenapa sebaiknya Anda perlu membackup file Anda.

Ransomware

Ransomware adalah jenis malware (software jahat) yang memaksa Anda mengirimkan uang ke pembuatnya melalui berbagai cara. Cara yang saat ini paling banyak dipakai adalah mengenkripsi file Anda, lalu jika Anda mengirim uang tebusan, maka Anda akan dikirimi key atau program untuk membuka file Anda. 

Jawaban singkat untuk yang kena ransomware: cobalah ke situs No More Ransom. Jika Anda beruntung, file Anda bisa kembali. Jika tidak, maka harapannya sangat kecil. Coba juga search nama ransomwarenya (jika ada nama yang unik yang muncul di layar ransom) dan coba baca apakah sudah ada yang membuat tool gratis untuk membukanya. Bagian berikut artikel ini hanya ingin menjelaskan kenapa file Anda sulit kembali.

Alternatif lain: Anda bisa membayar tebusan, tapi perlu dicatat: Andaikan Anda membayar uang tebusan, belum tentu file Anda bisa kembali. Tidak ada jaminan dari para penjahat ini bahwa file Anda masih aman. Sebagian ransomware merusak file tanpa bisa dikembalikan dengan cara apapun (membayar atau pun cara lain).

Lanjutkan membaca “Ransomware, Reverse Engineering dan Backup”

Flare-On 5 (2018)

Ini sudah keempat kalinya saya mengikuti challenge tahunan Flare-On dari FireEye. Saya sudah pernah menuliskan tentang Flare-On ini di posting saya yang lain, tapi akan saya ulangi sedikit.

Flare-On adalah challenge reverse engineering, alias tantangan membongkar program. Bentuk Flare-On adalah challenge, semua yang selesai adalah pemenang. Ini ibaratnya seperti marathon, semua yang berhasil menyelesaikan disebut sebagai finisher. Ini berbeda dari CTF lain yang biasanya sifatnya adalah lomba (seperti lari Sprint) di mana yang duluan memecahkan adalah pemenangnya (contoh seperti ini adalah ketika saya menang hadiah ke Hong Kong dari reverse engineering). 

Hadiah Flare-On Tahun ini
Lanjutkan membaca “Flare-On 5 (2018)”