Memahami Anatomi Fail APK Melalui Analisis Statik
Setiap aplikasi Android yang dipasang pada peranti pintar dibungkus di dalam satu fail arkib khas yang dikenali sebagai Android Application Package (APK). Fail dengan pelanjutan .apk ini mengandungi keseluruhan kod boleh laksana, sumber, aset, dan metadata yang diperlukan oleh sistem operasi Android untuk menjalankan aplikasi tersebut.
Untuk memahami struktur dalaman fail ini tanpa membahayakan peranti, kaedah analisis statik digunakan. Melalui kaedah ini, kandungan fail diperiksa secara langsung tanpa perlu memasang atau menjalankan aplikasi tersebut. Di dalam setiap APK, terdapat beberapa komponen penting yang menentukan cara aplikasi berfungsi:
AndroidManifest.xml: Fail konfigurasi utama yang mengisytiharkan nama pakej, komponen aplikasi, keizinan yang diperlukan, serta versi SDK minimum dan sasaran.- Fail DEX (
.dex): Fail kod boleh laksana (Dalvik Executable) yang mengandungi kod sumber aplikasi yang telah dikompilasi untuk dijalankan oleh runtime Android. - Sumber dan Aset: Fail imej, susun atur XML, dan fail media yang disimpan di dalam direktori sumber (
res) dan aset (assets). - Kod Asli (Native Code): Pustaka pengaturcaraan (biasanya ditulis dalam C atau C++) yang dikompilasi untuk seni bina pemproses (ABI) tertentu.
Alat Papar Nota APK membolehkan pemeriksaan fail .apk secara telus terus dari pelayar web anda. Dengan mengekstrak maklumat penting ini, pengguna dan pembangun boleh mengesahkan integriti aplikasi sebelum ia dipasang pada peranti.
Keperluan Sistem dan Versi SDK Android
Setiap fail APK mengandungi pengisytiharan khusus mengenai versi sistem operasi Android yang disokong. Maklumat ini diletakkan di bawah seksyen Keperluan untuk memastikan aplikasi berjalan pada peranti yang serasi. Terdapat tiga parameter utama yang menentukan had ini:
- Android Minimum (
lMinSdk): Menunjukkan versi Android paling rendah yang diperlukan untuk menjalankan aplikasi. Jika peranti anda menggunakan versi di bawah had ini, aplikasi tidak boleh dipasang. Paparan akan menunjukkan format sepertiAndroid ‹version› (API ‹level›)atau hanyaAPI ‹level›. - Android Sasaran (
lTargetSdk): Menunjukkan versi API Android yang digunakan oleh pembangun semasa membina dan menguji aplikasi ini. Parameter ini menentukan tingkah laku keselamatan dan privasi yang akan dikuatkuasakan oleh sistem operasi terhadap aplikasi tersebut. - SDK maks
‹n›(lMaxSdk): Jika dinyatakan, parameter ini mengehadkan pemasangan aplikasi pada versi Android yang lebih baharu daripada tahap API yang ditetapkan.
Pengurusan Keizinan dan Lencana Berbahaya
Apabila memeriksa fail APK, senarai keizinan (Keizinan) yang diminta oleh aplikasi merupakan aspek paling kritikal untuk dinilai. Android membahagikan keizinan kepada beberapa kategori berdasarkan tahap risiko terhadap privasi pengguna.
Alat ini menyusun senarai keizinan dengan mengutamakan keizinan yang membawa lencana Berbahaya (lDangerous) di bahagian atas senarai. Keizinan yang diklasifikasikan sebagai berbahaya oleh Android adalah keizinan yang membolehkan aplikasi mengakses data peribadi sensitif atau mengawal fungsi peranti yang boleh menjejaskan pengguna. Contoh keizinan ini termasuk akses kepada lokasi peranti, senarai kenalan, kamera, mikrofon, dan storan luaran.
Dengan meneliti senarai ini, anda boleh menilai sama ada keizinan yang diminta adalah munasabah dengan fungsi aplikasi yang dinyatakan. Sebagai contoh, aplikasi kalkulator ringkas yang meminta akses kepada lokasi atau kenalan harus dianggap sebagai petunjuk amaran (red flag).
Komponen Aplikasi dan Had Paparan
Sistem Android membina aplikasi menggunakan empat jenis komponen utama. Di bawah seksyen Komponen (secComponents), alat ini mengesan dan memaparkan komponen berikut:
- Activities (dikumpulkan di bawah
groupActivities, menunjukkan labeldieksportjika berkenaan). - Services (dikumpulkan di bawah
groupServices, menunjukkan labeldieksportjika berkenaan). - Receivers (dikumpulkan di bawah
groupReceivers, menunjukkan labeldieksportjika berkenaan). - Providers (dikumpulkan di bawah
groupProviders, menunjukkan labeldieksport, autoriti penyedia, atauTiadajika berkenaan).
Setiap komponen ini boleh membawa label dieksport (lExported). Komponen yang dieksport bermaksud ia boleh diakses atau dicetuskan oleh aplikasi lain di luar pakej tersebut, yang sering menjadi subjek audit keselamatan. Bagi memastikan laporan kekal kemas dan boleh dibaca, alat ini mengehadkan paparan sehingga 100 entri bagi setiap kategori komponen. Jika jumlah komponen melebihi had ini, label seperti +‹count› lagi (lMore) akan dipaparkan di hujung senarai.
Skema Tandatangan Digital dan Pengesahan Penerbit
Keselamatan ekosistem Android bergantung sepenuhnya pada kod penandatanganan aplikasi. Setiap APK mesti ditandatangani secara digital dengan sijil sebelum ia boleh dipasang pada peranti. Android menyokong beberapa skema tandatangan, termasuk v1 (PKCS#7), v2, v3, dan v3.1.
Di bawah seksyen Tandatangan (secSignatures), alat ini mengekstrak metadata sijil X.509 yang merangkumi:
- Subjek (
lSubject): Maklumat entiti pemilik sijil. - Dikeluarkan oleh (
lIssuer): Entiti yang mengeluarkan sijil tersebut. - Nombor siri (
lSerial): Pengecam unik bagi sijil. - Sah dari (
lValidFrom) dan Sah sehingga (lValidTo): Tempoh sah sijil. - Algoritma tandatangan (
lSigAlg) dan Algoritma kunci (lKeyAlg): Kaedah kriptografi yang digunakan.
Sijil ini juga mengandungi cap jari kriptografi MD5, SHA-1, dan SHA-256. Cap jari ini berfungsi sebagai identiti unik pembangun. Jika tiada tandatangan dikesan, mesej Tiada blok tandatangan yang diiktiraf ditemui — pakej mungkin tidak ditandatangani atau dibungkus semula. (unsigned) akan dipaparkan. Perlu diingat bahawa alat ini hanya mengekstrak metadata dan tidak melakukan pengesahan kriptografi rantaian amanah atau mengesahkan identiti dunia sebenar pembangun tersebut.
Pemprosesan Tempatan dan Privasi Data
Keselamatan data anda adalah keutamaan. Alat Papar Nota APK beroperasi sepenuhnya di dalam pelayar web anda menggunakan teknologi Worker tempatan.
| Aspek Pemprosesan | Butiran Teknikal |
|---|---|
| Lokasi Analisis | Tempatan (di dalam tab pelayar pengguna) |
| Penghantaran Fail | Tiada fail dihantar ke pelayan luar |
| Pemasangan Fail | Fail APK tidak pernah dipasang atau dijalankan pada peranti |
| Had Saiz Fail | Maksimum 500 MB |
Apabila anda meletakkan fail, proses pengiraan cincangan fail (hashing) seperti MD5, SHA-1, dan SHA-256 dijalankan secara langsung pada peranti anda. Ini memastikan fail APK yang mengandungi kod proprietari atau data sensitif tidak akan terdedah kepada pihak ketiga.
Soalan Lazim (FAQ)
Apakah yang boleh saya ketahui daripada APK tanpa memasangnya? Agak banyak: nama pakej dan versi aplikasi, versi Android yang diperlukannya, setiap kebenaran yang dimintanya, skrin dan komponen latar belakang yang diisytiharkannya, jenis pemproses yang disediakan kod asalnya, dan sijil ia ditandatangani.
Bolehkah alat ini memberitahu saya sama ada APK ialah perisian hasad? Tidak — dan berhatihatilah dengan sebarang alat yang menjanjikan keputusan daripada imbasan pantas. Apa yang anda dapat di sini ialah fakta: kebenaran, komponen, penandatangan, dan cincangan. Bandingkannya dengan apa yang diterbitkan oleh pembangun, dan anggap kebenaran yang tidak dijangka atau penandatangan yang berbeza daripada keluaran rasmi sebagai sebab untuk menjauhkan diri.
Fail manakah yang disokong? Fail APK tunggal sehingga 500 MB. Pakej belah (XAPK, APKM) dan Android App Bundle (.aab) ialah bekas atau format penerbitan dan bukannya satu pakej yang boleh dipasang, jadi ia ditolak dengan mesej yang jelas dan bukannya laporan yang mengelirukan.
Apakah maksud butiran tandatangan kepada saya? Setiap aplikasi Android ditandatangani, dan sijil mengenal pasti siapa yang menerbitkannya. Anda melihat skema tandatangan yang dibawa oleh pakej (v1, v2, v3) dan subjek setiap penandatangan, tempoh sah, serta cap jari MD5, SHA-1, dan SHA-256. Dua APK dengan cap jari yang sepadan datang daripada penerbit yang sama — sama ada anda mempercayai penerbit itu terpulang kepada penilaian anda.
Apakah maksud lencana “Berbahaya” pada kebenaran? Ia adalah klasifikasi Android sendiri: kebenaran berbahaya boleh mengakses data peribadi — lokasi, kenalan, kamera, mikrofon, storan — jadi sistem meminta pengguna sebelum memberikannya. Lencana itu bukanlah tuduhan; aplikasi peta yang meminta lokasi adalah normal. Ia hanya menandakan kebenaran yang patut dibaca dua kali.