DexCalibur adalah platform teknik terbalik Android yang fokus pada otomatisasi instrumentasi. Kekhasannya adalah menggunakan analisis dinamis untuk meningkatkan heuristik analisis statis. Ini bertujuan mengotomatiskan tugas membosankan yang terkait dengan instrumentasi dinamis, seperti:
Apakah Anda ingin membagikan sesuatu atau Anda membutuhkan bantuan? Bergabunglah dengan obrolan resmi kami:
Telegram - cara paling cepat untuk memberikan tanggapan
Dokumentasi resmi tersedia di sini (Situs Web - Work In Progress).
Lihat berita terbaru di sini: http://docs.dexcalibur.org/news.html
Tampilkan video demo dexcalibur: demo: kurang dari 1 menit untuk mengaitkan 61 metode? Bukan masalah. (YouTube)
Kontribusi!
Jangan ragu! Ada beberapa cara untuk berkontribusi:
Pergi ke Instal Doc
Alternatif: Gunakan Docker
adb (dan emulator android jika perlu)docker-compose build android-dexcaliburdocker run --rm -it --net=host -v /tmp/dexcalibur:/shared -p 8000:8000 dexcalibur:2023.01 /bin/bashUntuk Linux dan MacOS
Instalasi NPM: Jika dexcalibur telah diinstal global menggunakan npm ( -g opsi), maka dexcalibur dapat diluncurkan dari terminal dengan melakukan $ dexcalibur , kalau tidak lokasi dapat diluncurkan dengan $ node $(node root -g dexcalibur)/dexcalibur/dexcalibur.js .
Instal dari sumber: dari folder dexcalibur , jalankan $ dexcalibur atau $ node dexcalibur.js .
Untuk windows
Instal NPM: Acara jika dexcalibur diinstal global menggunakan npm ( -g opsi), dexcalibur harus diluncurkan dari terminal dengan menjalankan perintah berikut dari node <NPM_ROOT>/dexcalibur/dexcalibur.js .
Instal dari sumber: dari folder dexcalibur , ke terminal, jalankan node dexcalibur.js .
Anda menggunakan versi dexcalibur sebelumnya?
Ikuti langkah -langkah yang sama dari instalasi baru, dan kapan Anda harus memasukkan jalur ruang kerja, masukkan lokasi ruang kerja Anda saat ini.
Hanya dengan melakukan:
$ npm install -g dexcalibur
Konfigurasi dan ruang kerja yang ada akan terdeteksi secara otomatis.
Tangkapan layar berikut menggambarkan pembaruan otomatis XREFS saat runtime.
Sebenarnya, batasan terbesar adalah dexcalibur tidak dapat menghasilkan kode sumber fungsi penargetan kait fungsi asli (ke dalam perpustakaan JNI). Namun, Anda dapat menyatakan secara manual seorang interseptor Frida dengan mengedit kait.
Dengan asumsi Dexcalibur tidak menyediakan (untuk saat ini) fitur untuk menganalisis bagian asli seperti Perpustakaan JNI atau JNA, hanya fitur dan keterbatasan yang terkait dengan bagian Java yang telah dideta.
Akurasi analisis tergantung pada kelengkapan gambar API Android yang digunakan selama langkah -langkah awal analisis. Itu berarti, jika Anda menggunakan file DEX yang dihasilkan dari file Android.jar dari Android SDK, beberapa referensi ke metode internal, bidang, atau kelas dari Android Java API bisa hilang. Hasil yang lebih baik diperoleh ketika analisis dimulai dari file "boot.oat" yang diekstraksi langsung dari perangkat nyata yang menjalankan versi Android yang diharapkan.
TODO: Tulis teks
TODO: Tulis teks
Perilaku yang dilacak
Analisis statis yang terlibat dalam tindakan "Run Smali (VM)" dapat menemukan dan menerima tetapi melacak perilaku berikut:
Sebenarnya, penangan/pendengar untuk instruksi yang tidak valid seperti itu tidak didukung tetapi peristiwa dilacak dan diberikan.
Dexcalibur Ir
VM menghasilkan representasi perantara (IR) yang disederhanakan dan disederhanakan yang hanya ditampilkan untuk membantu analis melakukan analisisnya.
Bergantung pada nilai kedalaman dan konfigurasi CallStack, IR dapat menyertakan atau tidak instruksi yang dieksekusi ke dalam fungsi yang dipanggil. Jika eksekusi masuk ke blok mencoba dan terus kembali, tetapi tidak pernah menangkap ekskute, maka blok tangkapan tidak akan diberikan. Sebenarnya tujuan dexcalibur IR adalah untuk hanya membuat "apa yang dieksekusi" atau "apa yang dapat dieksekusi tergantung dari nilai simbol beberapa" ke dalam konteks VM.
Dexcalibur IR membantu membaca versi bytcode yang dibersihkan dengan menghapus Goto dan predikat buram yang tidak berguna. Dexcalibur IR dapat dihasilkan oleh VM dengan 2 level penyederhanaan:
IR level pertama, dapat digunakan jika Anda tidak mempercayai IR level ke -2:
Level ke -2:
Android API Mock
Todo
Detail
Smali VM mengikuti langkah -langkah:
Bagaimana VM Menangani Instruksi-* Instruksi?
Analisis manifes (terbatas)
Sebelum menjalankan pertama, manifes android dari aplikasi diuraikan. Sebenarnya, anomali ke dalam manifes konfigurasi tidak aman seperti itu benar -benar terdeteksi pada level ini.
Satu -satunya tujuan parsing manifes android adalah untuk mengisi jenis analisis lainnya.
Analisis izin
Setiap izin yang diekstraksi dari manifes terdaftar dan diidentifikasi dan dibandingkan dengan spesifikasi Android dari versi API Android target.
DexCalibur menyediakan - hanya dalam beberapa kasus - deskripsi tujuan izin, versi API Android minimal, ...
Analisis Kegiatan
Analisis Penyedia
Analisis Layanan
Analisis Penerima
Pemantauan Jaringan
Intent Monitoring
Pemantauan akses file
Anda tidak dapat menemukan menu multi-pengguna? Bukan masalah, tidak ada menu tetapi pekerjaan kolaboratif minimalis dapat dicapai.
DexCalibur menjalankan server web. Jadi, jika beberapa orang berada di jaringan yang sama dari server web ini dan jika firewall host dikonfigurasi dengan baik, Anda dapat menjadi beberapa untuk bekerja pada instance dexcalibur yang sama.
Keterbatasan yang sebenarnya adalah:
Terima kasih khusus kepada kontributor:
Sebelumnya masuk lebih dalam:
dexcalibur --reinstall ? Jika tidak, coba. Pertama, periksa apakah pengaturan global telah disimpan ke dalam <user_directory>/.dexcalibur/
$ ls -la ~/.dexcalibur
total 8
drwxr-xr-x 3 test_user staff 96 29 avr 11:41 .
drwxr-xr-x+ 87 test_user staff 2784 29 avr 11:47 ..
-rw-r--r-- 1 test_user staff 204 29 avr 11:41 config.json
$ cat ~/.dexcalibur/config.json
{
"workspace":"/Users/test_user/dexcaliburWS3",
"registry":"https://github.com/FrenchYeti/dexcalibur-registry/raw/master/",
"registryAPI":"https://api.github.com/repos/FrenchYeti/dexcalibur-registry/contents/"
}
Selanjutnya, periksa apakah struktur ruang kerja dexcalibur adalah sebagai berikut (konten /api dapat berbeda).
$ ls -la ~/dexcaliburWS/.dxc/*
/Users/test_user/dexcaliburWS/.dxc/api:
total 0
drwxr-xr-x 3 test_user staff 96 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
drwxr-xr-x 8 test_user staff 256 29 avr 11:41 sdk_androidapi_29_google
/Users/test_user/dexcaliburWS/.dxc/bin:
total 34824
drwxr-xr-x 4 test_user staff 128 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
-rwxr-xr-x 1 test_user staff 17661172 29 avr 11:41 apktool.jar
drwxr-xr-x 18 test_user staff 576 29 avr 11:41 platform-tools
/Users/test_user/dexcaliburWS/.dxc/cfg:
total 8
drwxr-xr-x 3 test_user staff 96 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
-rw-r--r-- 1 test_user staff 314 29 avr 11:41 config.json
/Users/test_user/dexcaliburWS/.dxc/dev:
total 0
drwxr-xr-x 2 test_user staff 64 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
/Users/test_user/dexcaliburWS/.dxc/tmp:
total 0
drwxr-xr-x 2 test_user staff 64 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
Jika Anda menggunakan perangkat fisik yang terhubung melalui USB, pastikan mode pengembang dan debugging USB diaktifkan.
Jika Anda menggunakan perangkat virtual, buka /splash.html , pilih Device Manager , klik Connect over TCP ... dan ikuti instruksi. Jika Anda tidak tahu alamat IP perangkat Anda, biarkan dexcalibur mendeteksi dengan mencentang kotak automatic configuration .
Anda perlu mendaftarkan perangkat target sebelumnya untuk dapat menggunakannya. Selama pendaftaran dexcalibur mengumpulkan metadata perangkat dan dorong versi server Frida yang kompatibel.
Metadata semacam itu digunakan untuk memilih target Frida-Server dan Frida-gadget kanan.
Jika tanda seru merah ! Muncul pada daftar ke dalam daftar perangkat, maka desktop Anda tidak diizinkan oleh perangkat. Anda mungkin perlu mengonfirmasi
Jika perangkat Anda terdaftar di DeviceManager dan kolom online diperiksa, lalu klik enroll
Jika perangkat Anda terdaftar di DeviceManager dan kolom online diperiksa, lalu klik enroll
Versi dexcalibur <v0.7 tidak dapat mendeteksi perangkat yang ditiru secara otomatis dan menggunakannya karena parsing output ADB yang tidak lengkap.
Karena versi> = v0.7, setelah perangkat virtual Anda berjalan, buka /splash.html atau klik DEXCALIBUR ke bilah navigasi. Klik tombol Device Manager ke menu kiri, dan klik tombol Refresh di atas array.
Anda harus memiliki baris yang dimulai dengan ID ADB dari perangkat virtual Anda.
Pertama, seperti perangkat target apa pun, Anda harus mendaftarkannya.
Klik Connect over TCP ... untuk menambahkan perangkat baru melalui TCP atau untuk menghubungkan perangkat yang terdaftar melalui TCP.
Jika perangkat tidak pernah terdaftar, maka pendaftaran akan dilakukan melalui TCP. Dalam beberapa kasus, koneksi melalui TCP lebih lambat daripada di atas USB. Jadi pendaftaran bisa memakan waktu tambahan.
Jika perangkat telah terdaftar di atas USB, maka jenis transportasi yang disukai untuk perangkat ini menjadi TCP.
Buat permintaan tarik di repositori ini atau buat masalah.
Buat permintaan tarik pada repositori dexcalibur-doc.
Dokumentasi tersedia di sini (situs web DOC) dan di sini (wiki)
![]() |
|---|
| Mereka menawarkan lisensi untuk semua produk <3 |
Sebenarnya ada beberapa dokumentasi dan sumber daya pelatihan tentang dexcalibur. Jika Anda berhasil menggunakan dexcalibur untuk memenangkan CTF Challenge atau untuk menemukan kerentanan, saya sangat mendorong Anda untuk berbagi pengalaman.