Membongkar cara kerja aplikasi, memahami bagaimana logikanya bisa diubah, dan — yang terpenting — bagaimana cara melindunginya. Lab simulasi langsung di dalam slide.
Tekan tombol → atau klik panah di bawah untuk mulai · Spasi = lanjut
Reverse engineering adalah memahami. Code tampering adalah mengubah. Satu bisa berdiri sendiri, satunya hampir selalu diawali yang pertama.
Proses membongkar aplikasi yang sudah jadi (binary/APK/EXE) untuk merekonstruksi cara kerja, alur logika, dan struktur-nya — tanpa memiliki kode sumber aslinya.
Memodifikasi kode/binary aplikasi agar berperilaku berbeda dari yang dirancang pembuatnya — lalu dikemas ulang & dijalankan kembali.
Etika & legal: teknik ini sah hanya pada aplikasi milik sendiri, dengan izin tertulis (penetration testing / bug bounty), atau untuk riset keamanan. Memodifikasi aplikasi orang lain untuk merugikan = pelanggaran hukum (UU ITE, hak cipta). Materi ini murni untuk pertahanan: pahami serangannya agar bisa menghentikannya.
Klik Jalankan Tahap untuk menelusuri pipeline reverse-engineering lengkap di terminal simulasi — persis langkah yang dipakai analis di dunia nyata.
App tidak dijalankan. Baca kode & resource.
App berjalan. Hook & debug live.
Metode checkLicense() FinVault mengembalikan false → fitur premium terkunci. Klik baris Smali yang disorot, pilih patch-nya, dan amati aplikasinya berubah secara langsung.
12# direct methods 13.method public checkLicense()Z 14 .registers 2 15 # v0 = status premium (0=false, 1=true) 16 const/4 v0, 0x0 ✎ edit byte 17 return v0 18.end method
Status aplikasi mengikuti nilai yang kamu patch
Bandingkan perilaku build asli (signed resmi) dengan build hasil tamper. Klik Jalankan Pengujian untuk menjalankan assertion otomatis pada kedua versi.
| Skenario Uji | Build Asli | Build Tamper | Dampak |
|---|---|---|---|
| checkLicense() | false ✓ | — | — |
| Dashboard premium | terkunci ✓ | — | — |
| Export PDF | ditolak ✓ | — | — |
| Verifikasi tanda tangan | valid (resmi) ✓ | — | — |
| Integritas kode (hash .dex) | cocok ✓ | — | — |
Ini inti dari materi. Aktifkan mekanisme proteksi di bawah, lalu lihat apakah APK hasil tamper dari Lab 2 & 3 masih bisa berjalan. Satu lapisan saja sering sudah cukup untuk menggagalkannya.
Saat start, app cek signature APK. Tamper = signature berubah → app menolak jalan.
Bandingkan hash kode saat runtime dengan hash resmi. Tidak cocok → berhenti.
Nama kelas & method diacak jadi a/b/c. Menyulitkan analis menemukan target patch.
Status premium diputuskan server, bukan boolean lokal. Patch lokal jadi tak berarti.
Hentikan app bila lingkungan tidak tepercaya (root, emulator, hook aktif).
Reverse engineering & tampering bukan sihir — hanya proses yang sistematis. Memahaminya membuat kita membangun aplikasi yang jauh lebih sulit dibobol.
Keduanya berbeda. Tampering hampir selalu diawali reverse engineering untuk menemukan titik keputusan.
Konstanta 0x0 → 0x1 mengubah false menjadi true. Logika kritis tak boleh bergantung pada boolean lokal.
Keputusan penting (lisensi, pembayaran, otorisasi) divalidasi di server, bukan di dalam APK yang ada di tangan pengguna.
Signature check + integrity + obfuscation + server-side + anti-tamper. Satu lapis bisa dilewati; berlapis jauh lebih mahal untuk dibobol.
Checklist developer: aktifkan R8/obfuscation di rilis · verifikasi signature saat start · pindahkan logika kritis ke server · gunakan Play Integrity / SafetyNet · jangan hardcode rahasia · uji aplikasimu sendiri dengan mindset penyerang.
Selesai · tekan ← untuk mengulang lab · Terima kasih 🙏