Reverse Engineering APK

Saya sudah menulis beberapa artikel terpisah mengenai reverse engineering APK Android (misalnya di http://yohan.es/security/android/) . Di posting ini saya ingin menggabungkan berbagai tulisan yang pernah saya buat dalam satu posting, supaya lebih gampang dibaca. Topik yang lebih umum mengenai Pengantar Reverse Engineering sudah pernah saya bahas di blog ini (tidak spesifik Android).

 

Tujuan Reversing

Pertama, tentukan tujuannya apa ingin bisa reversing APK. Ini bisa digolongkan jadi dua bagian: apakah ingin mengetahui cara kerjanya? (sekedar membaca kode) atau ingin mengubah aplikasinya? (memodifikasi kode) Yang termasuk dalam kategori pertama: apakah ingin ekstrak API-nya, ingin membaca file yang dibuat oleh aplikasi, ingin tahu protokol aplikasi. Lanjutkan membaca “Reverse Engineering APK”

Hacking dan Reverse engineering hardware

Saat ini di jaman IOT, makin banyak orang yang tertarik untuk hacking dan reverse engineering (RE) hardware. Karena sudah cukup banyak orang menanyakan topik ini, maka di artikel ini akan saya bahas dasar-dasarnya, plus tools apa saja yang dibutuhkan jika ingin memulai.

Dalam artikel ini RE hanya bertujuan memahami software dan hardware dalam sebuah sistem. Hacking hardware bermakna lebih luas misalnya menambah atau mengubah sesuatu di hardware, misalnya menjalankan Doom di printer, membuat hardware baru, atau oprekan apapun yang berhubungan dengan hardware.

Supaya bisa mengubah sebuah hardware yang tidak terdokumentasi, kita perlu melakukan dulu reverse engineering untuk memahami cara kerjanya, baru setelah itu kita bisa melakukan perubahan. Untuk hardware open source atau yang dokumentasinya sangat baik, proses RE ini tidak perlu.

Tujuan melakukan Hacking Hardware

Ada banyak tujuan RE dan hacking hardware, misalnya:

  • Mencari key enkripsi untuk mengakses konten gratis atau untuk membuat konten baru (misalnya game homebrew), atau bahkan membajak, contohnya dalam kasus Game Console
  • Memperbaiki, menambah atau menghilangkan fungsionalitas , misalnya menambah SD Card di router
  • Mengekstraksi firmware dengan berbagai tujuan: mencari bug di firmwarenya, mengclone firmwarenya (membuat produk tiruan), mencari key dalam firmwarenya

Perlu dicatat bahwa dalam 99% kasus, ujung dari reversing hardware adalah melakukan reversing software yang berjalan di hardware tersebut. Lanjutkan membaca “Hacking dan Reverse engineering hardware”

Tantangan Flare On

Di posting ini saya ingin memperkenalkan kompetisi Flare On untuk para reverse engineer sekaligus mengajak ikutan buat yang belum ikutan. Flare On adalah tantangan dalam bentuk CTF (silakan baca tulisan saya ini untuk yang belum tahu apa itu CTF) khusus di bidang reverse engineering yang diadakan oleh Fireye. Tantangannya 6 minggu, semua peserta yang bisa menyelesaikan semua tantangan akan dianggap pemenang dan dapat hadiah. Ini bisa dibandingkan dengan lari Marathon (lama, butuh stamina, tingkat kesulitannya bisa sangat tinggi, semua yang selesai dianggap sebagai finisher), dan kebanyakan CTF lain bisa dibandingkan dengan lari sprint (biasanya hanya 2 hari, kesulitan soal dibatasi supaya bisa selesai dalam hitungan jam) .

Reverse Engineering (RE)

Saya sudah menulis soal pengenalan reverse engineering dan tulisan pengantar jika ingin memulai reverse engineering. Inti reverse engineering adalah: membongkar/memahami kode (terutama kode biner, tapi tidak selalu biner). Contoh kode biner yang perlu dipahami:

  • Software yang dibeli atau download (tanpa source code)
  • Malware
  • Kode exploit

Contoh penggunaan reverse engineering:

  • Software dari Hacking Team (untuk menghack orang, software ini banyak dibeli oleh beberapa pemerintah dunia) ternyata ada backdoornya.
  • Berbagai file yang kena ransomware berhasil didekrip karena ada kelemahan dalam enkripsinya, dan ini ditemukan dengan reverse engineering (dan tentunya ilmu kriptografi)
  • Malware yang sangat spesifik (misalnya yang digunakan untuk hacking Bank Sentral Bangladesh) harus dianalisis khusus, tidak akan ketemu oleh antivirus biasa
  • Malware yang tertarget (via email/web) untuk perusahaan tertentu juga perlu dianalisis secara khusus
  • Berbagai software legal ternyata menginstall rootkit (kasus terbaru saat ini di game Street Fighter)
  • Untuk melakukan pentesting secara benar untuk aplikasi mobile
  • Berbagai router dan benda IOT perlu direverse engineer untuk mengetahui cara kerjanya
  • Berbagai exploit disebarkan via halaman web (via Javascript yang diobfuscate, memanfaatkan kelamahan Flash/Java/IE, lalu mengandung kode biner berisi shell code)

Lanjutkan membaca “Tantangan Flare On”

Pengantar Reverse Engineering

Sudah beberapa kali saya ditanya: kalo ada aplikasi X bagaimana cara membongkarnya? Bahasa kerennya: bagaimana saya melakukan reverse engineering terhadap aplikasi tertentu?. Sayangnya tidak ada jawaban sederhana untuk ini. Bagaimana membongkar sesuatu tergantung pada teknologi yang digunakan untuk membangun dan memproteksi benda itu. Berbagai tools juga bergantung pada sistem operasi yang menjadi target.

Saya sudah menulis secara umum tentang reverse engineering, tapi belum memberikan jawaban praktis, jadi di posting ini saya akan berusaha menuliskan secara praktis langkah-langkah untuk memulai reverse engineering.

label
convert -size 1200×630 -background white -fill black -font Nimbus-Mono-L -pointsize 144 -gravity center -label:”Reverse\nEngineering” -flip label.png

Lanjutkan membaca “Pengantar Reverse Engineering”

Bug Mandiri e-Money Isi Ulang (November 2015)

Jika Anda belum membaca, sebaiknya baca dulu pengantar seri ini: Mencari dan melaporkan bug security. Perlu dicatat: bug ini sudah dilaporkan (akhir November 2015), sudah (sebagian besar) diperbaiki. Posting ini hanya untuk pelajaran bersama.

Kartu mandiri e-money adalah stored value card dengan teknologi NFC. Tadinya proses isi ulang tidak bisa dilakukan dari ponsel, tapi sejak sekitar Februari 2015, aplikasi isi ulang diluncurkan untuk ponsel Android dengan NFC.

NFC

Saya sudah agak lama memiliki beberapa kartu mandiri e-money dengan saldo sedikit sekali dari adik saya, tapi belum sempat mengeksplore kartu ini (dulu saya pernah minta diberikan berbagai kartu prabayar Indonesia). Pada hari saya menemukan bug ini, ada dua hal yang terjadi: adik saya mengirimkan ADB log menanyakan bug aplikasi Android yang ditulisnya, dan kebetulan saya mendapat pekerjaan checking implementasi NFC bank lain dan menemukan blog ini.

Saya tidak tahu apakah ada yang sudah menemukan bug ini sebelumnya, dari blog yang saya sebutkan sebelumnya, sepertinya dia tidak menemukan bug (karena APDU tidak bisa diplayback).

Lanjutkan membaca “Bug Mandiri e-Money Isi Ulang (November 2015)”

Hacking dan Reverse Engineering

Sejak dulu banyak yang bertanya kepada saya mengenai Hacking, dan mengenai  reverse engineering. Pertanyaan ini semakin sering muncul setelah saya menulis mengenai Hacking, Cracking dan IT Pemilu serta artikel Analisis Lengkap Virus Brontok. Pertanyaan yang sering muncul adalah yang sejenis ini “bagaimana caranya ngehack situs x”, “bagaimana caranya ngehack program x”, “di mana saya bisa mendapatkan program x”, “bagaimana caranya menganalisis virus x”.

Seringkali saya tidak membalas email-email tersebut, karena berbagai macam alasan. Pada tulisan ini saya akan menjelaskan apa alasan-alasan tersebut, dan sekaligus berusaha menjawab pertanyaan yang sering diajukan.

Warning posting ini sangat panjang. Pastikan Anda punya waktu luang sebelum mulai membaca. Kalau Anda membaca di kantor, pastikan bos sedang tidak melihat. Mungkin saya akan terdengar seperti orang yang sombong dan mengesalkan, jadi bertabahlah dalam membacanya.

Lanjutkan membaca “Hacking dan Reverse Engineering”

Brontok baru dan antivirus untuk brontok

Ternyata pembuat brontok belum bosan, jadi dia masih membuat versi baru (yang kali ini ditulis menggunakan Visual C++). Silakan baca analisis brontok baru, dan jika Anda terkena, silakan download CompactbyteAV untuk membasminya. Jika Anda punya koleksi virus buatan Indonesia, dan bersedia memberikannya kepada saya, silakan kirim email ke [email protected].