Men-debug aplikasi yang tidak bisa di-debug
- Baru-baru ini saya menemukan aplikasi yang tidak bisa di-debug. Aplikasi ini memblokir koneksi debugger, berhenti lebih awal saat kode diinjeksikan, dan membuat seluruh ponsel crash jika dijalankan di perangkat yang sudah di-jailbreak.
- Aplikasi iOS sering kali menyertakan perlindungan tambahan seperti deteksi jailbreak atau obfuscation kode. Aplikasi ini secara khusus menggabungkan banyak mekanisme perlindungan.
Versi video
- Ada versi video dari postingan ini yang menunjukkan prosesnya dengan lebih rinci.
Daftar isi
PT_DENY_ATTACH
- Melewati
PT_DENY_ATTACH (mode mudah)
- Melewati
PT_DENY_ATTACH (mode sulit)
- Ponsel crash
- Injeksi kode
- Penutup
PT_DENY_ATTACH
- Menghubungkan debugger adalah langkah pertama. Di ponsel yang sudah di-jailbreak, biasanya cukup mudah untuk menghubungkan debugger.
- Fungsi bernama
ptrace memblokir koneksi debugger. Fungsi ini memblokir koneksi debugger di masa depan melalui request PT_DENY_ATTACH.
Melewati PT_DENY_ATTACH (mode mudah)
PT_DENY_ATTACH hanya memblokir debugger setelah dipanggil. Jika breakpoint dipasang sebelum pemanggilan, debugger bisa terhubung dengan normal.
- Kita bisa melewati pemanggilan ini dengan memasang breakpoint pada fungsi
ptrace itu sendiri.
Melewati PT_DENY_ATTACH (mode sulit)
- Beberapa developer mengimplementasikan pemblokiran debugger dengan memakai system call secara langsung alih-alih
ptrace.
- Dalam kasus ini, kita harus menemukan system call tersebut di biner dan melewatinya.
Ponsel crash
- Aplikasi melakukan soft reboot pada ponsel dalam kondisi tertentu. Ini terjadi dengan memanggil method yang intensif memori dalam loop tak berujung.
- Ini bisa dilewati dengan menggunakan
lldb.
Injeksi kode
- Aplikasi crash saat kode diinjeksikan. Kemungkinan besar ini adalah masalah yang terjadi karena app group identifier yang salah.
- Di ponsel yang sudah di-jailbreak, kode bisa diinjeksikan tanpa harus me-resign aplikasi. Jika tidak, masalahnya bisa diatasi dengan melakukan method swizzling.
1 komentar
Komentar Hacker News
Bryce Bostwick melakukan pekerjaan yang sangat keren dan menginspirasi dalam debugging dan reverse engineering aplikasi
Di DOS/Windows, trik anti-debugging sudah umum sejak lama
Mengejutkan bahwa pemeriksaan App Store Apple tidak menolak aplikasi yang melakukan system call secara langsung
Penasaran mengapa penulis mencari
svc 0x80alih-alihmov w16, #26Penulis siap menjawab pertanyaan
Video di bagian atas adalah video pemrograman yang sangat bagus
Penasaran apakah ini aplikasi yang sah atau diduga malware sehingga perlu di-debug
Melewati PT_DENY_ATTACH (Hard Mode)
Penasaran tentang notifikasi "com.apple.tw.twrr"
Penasaran apakah ada yang mengenal orang-orang yang melakukan reverse engineering pada kode JavaScript situs web
Penasaran apakah custom kexts bisa dijalankan di iPhone yang sudah di-jailbreak