Struktur Aplikasi Android
Bahagian dalaman APK
Struktur Aplikasi Android ialah pelajaran Ethical Hacking Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ethical Hacking Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ethical Hacking Academy merangkumi sejumlah 4 pelajaran.
Fail APK
Aplikasi Android diedarkan sebagai APK (Pakej Android). Sebenarnya, ia ialah arkib ZIP yang mengandungi kod terkompil, sumber dan metadata.
Oleh sebab ia ialah ZIP, anda boleh menyahzipnya untuk memeriksa kandungannya, iaitu langkah pertama dalam ujian penembusan mudah alih.
unzip app.apk -d app_extracted/Kandungan APK
APK yang diekstrak mengandungi:
AndroidManifest.xml: konfigurasi aplikasi.classes.dex: kod bait terkompil.res/danresources.arsc: sumber.lib/: pustaka natif.META-INF/: maklumat penandatanganan.
Manifest
AndroidManifest.xml mengisytiharkan komponen, keizinan dan konfigurasi aplikasi. Dalam APK, ia berbentuk XML binari yang boleh dinyahkod oleh alat.
Fail ini merupakan fail paling penting untuk memahami permukaan serangan aplikasi.
DEX dan Masa Jalan
Sumber Java/Kotlin dikompil kepada kod bait DEX (Dalvik Executable) dalam classes.dex. Android moden menjalankannya melalui ART (Android Runtime).
DEX boleh ditukar kembali kepada kod yang lebih mudah dibaca, dan inilah yang dimanfaatkan oleh analisis statik APK.
Empat Komponen
Aplikasi Android dibina daripada empat jenis komponen:
- Aktiviti: skrin / UI.
- Perkhidmatan: kerja latar belakang.
- Penerima Siaran: bertindak balas terhadap peristiwa sistem.
- Penyedia Kandungan: berkongsi data antara aplikasi.
Komponen yang Dieksport
Komponen yang ditandai android:exported="true" boleh dipanggil oleh aplikasi lain. Jika komponen sedemikian melaksanakan tindakan sensitif tanpa pemeriksaan, ia menjadi permukaan serangan.
Penguji penembusan mencari aktiviti, perkhidmatan dan penyedia yang dieksport, yang membocorkan data atau melaksanakan tindakan berkeistimewaan.
<activity android:name=".AdminActivity" android:exported="true"/>Keizinan
Aplikasi meminta keizinan dalam manifest (contohnya INTERNET, READ_SMS, ACCESS_FINE_LOCATION).
Keizinan yang terlalu luas memberikan petunjuk tentang tingkah laku berisiko atau akses data berlebihan. Keizinan tersuai juga boleh dikonfigurasi dengan salah sehingga membenarkan akses tanpa kebenaran.
<uses-permission android:name="android.permission.READ_SMS"/>Kotak Pasir Aplikasi
Android mengasingkan setiap aplikasi dalam kotak pasirnya sendiri dengan UID Linux yang unik. Secara lalai, aplikasi tidak boleh membaca data sesama sendiri.
Kerentanan berlaku apabila aplikasi melemahkan sempadan ini, seperti fail yang boleh dibaca semua pengguna atau penyedia yang terdedah.
Penyimpanan Data Aplikasi
Aplikasi yang dipasang menyimpan data peribadi di bawah /data/data/<package>/: pangkalan data, keutamaan dikongsi dan fail.
Pada peranti yang telah diakar atau melalui sandaran, penguji penembusan memeriksa direktori ini untuk mencari rahsia yang disimpan secara tidak selamat, seperti yang akan diterokai dalam pelajaran seterusnya.
/data/data/com.example.app/Penandatanganan
Setiap APK ditandatangani secara digital; tandatangan itu berada dalam META-INF/. Android mengesahkannya semasa pemasangan dan kemas kini.
Jika anda mengubah suai dan membungkus semula aplikasi, anda mesti menandatanganinya semula. Oleh sebab itu, pembangun bergantung pada penandatanganan untuk mengesan pengubahan.
Pustaka Natif
Logik yang penting untuk prestasi atau disamarkan mungkin berada dalam pustaka natif (fail .so) di bawah lib/, yang dikompil daripada C/C++.
Pustaka ini tidak terdapat dalam DEX, jadi ia memerlukan analisis berasingan menggunakan penyahhimpun natif. Pembangun kadangkala menyembunyikan rahsia di sini kerana tersilap menganggap kod natif lebih sukar diperiksa.
lib/arm64-v8a/libnative.soSemakan Pantas
Ingat kembali atribut manifest yang mendedahkan komponen kepada aplikasi lain.
Imbas Kembali
Kini anda memahami struktur aplikasi Android:
- APK ialah ZIP yang mengandungi
AndroidManifest.xml,classes.dex, sumber dan data penandatanganan. - Aplikasi menggunakan empat komponen; komponen yang dieksport ialah permukaan serangan.
- Keizinan dan kotak pasir setiap aplikasi mengawal akses; data peribadi berada dalam
/data/data/. - APK ditandatangani untuk mengesan pengubahan.
Seterusnya, anda akan menyahkompil APK dalam analisis statik.
Pelajari Ethical Hacking Academy dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 31
- Pelajaran
- 111
Soalan Lazim
Adakah pelajaran “Struktur Aplikasi Android” percuma?
Ya — teks penuh “Struktur Aplikasi Android” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ethical Hacking Academy, tingkat taraf kepada CoddyKit PRO. Kursus Ethical Hacking Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Struktur Aplikasi Android”?
Bahagian dalaman APK Anda berlatih Ethical Hacking Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ethical Hacking Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ethical Hacking Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Struktur Aplikasi Android” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ethical Hacking Academy ini?
Ya. Setiap pelajaran Ethical Hacking Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Struktur Aplikasi Android
- Analisis Statik APK
- Analisis Dinamik dengan Frida
- Storan dan Komunikasi Tidak Selamat