ByteScope

APK Analyzer

在本機檢視 Android APK 的 manifest、權限、簽章、符號與程式碼。

檔案不會離開你的瀏覽器 — 全部在本機處理。

Drop APK files here

or click to browse — .apk / .xapk / .apks / .apkm · analyzed locally, never uploaded

關於這個工具

這個 APK 分析器會解開 Android 的 .apk 檔案,讓你看清裡面到底裝了什麼:套件名稱與版本、完整的權限清單(危險權限會特別標示)、每一個 activity、service、receiver 與 provider(匯出的元件會醒目呈現)、v1/v2/v3 簽章背後的簽署憑證,以及檔案位元組的組成分析。它適合開發者檢查自己的建置產物、注重安全的使用者在安裝前審視 APK,也適合任何好奇一個 app 實際要求了哪些東西的人。

它還能挖得比 manifest 更深。原生函式庫區塊會列出每一個內含的 .so、標示它是否已 stripped,並可依需求解析 ELF 符號表來顯示 C++ 函式名稱 —— 包含 .dynsym 的匯出符號,以及(若存在).symtab 的完整清單,都會經過 demangle,並把 JNI(Java_…)進入點優先列出。程式碼瀏覽器會把 DEX bytecode 反組譯成 Smali,讓你瀏覽每一個 Java 與 Kotlin 類別和方法、跳到定義,並過濾到只看 app 自己的程式碼。

所有處理都在你的瀏覽器中進行。APK 本質上是一個 ZIP 壓縮檔,工具會讀取它的 central directory、只解壓縮需要的項目、解析二進位格式的 AndroidManifest.xml 與 resources.arsc、擷取原生符號與 DEX 程式碼,並用 Web Crypto API 計算憑證指紋 — 全程在本機完成,沒有任何上傳。想線上檢查 apk 權限、檢視原生函式庫符號或驗證 apk 簽章、又不想把檔案交給伺服器,用它最快。

常見問題

我的 APK 會被上傳到伺服器嗎?
不會。APK 完全在你的瀏覽器中以 JavaScript 和 Web Crypto API 解壓縮並解析 — 檔案不會離開你的裝置。沒有上傳步驟,檔案大小也只受限於你電腦的記憶體。
不反編譯 APK 的情況下,它怎麼讀取 AndroidManifest.xml?
APK 內的 AndroidManifest.xml 是以 Android 的二進位 XML(AXML)格式儲存,而不是純文字。這個工具內建從零打造的 AXML 解析器,直接讀取字串池與 chunk 結構,並搭配 resources.arsc 解析器來取得應用程式的名稱與圖示。
危險權限與特殊權限旗標代表什麼?
危險權限(以洋紅色標示)是使用者必須明確授權的執行階段權限 — 例如相機、位置、聯絡人、簡訊等。特殊權限(橘色)是 appop 或需簽章授權的能力,例如顯示在其他應用程式上層或安裝套件。一般權限則在安裝時自動授予。
支援哪些簽章方案?
v1(JAR 簽章,來自 META-INF 的 PKCS#7 區塊)、v2 和 v3(來自 APK Signing Block)。工具會顯示存在哪些簽章方案,並擷取簽章憑證的主體、簽發者、有效期限,以及 SHA-1 / SHA-256 指紋 — 方便你確認 APK 確實來自預期的發行者。
支援 .xapk、.apks、.apkm 和 SAI bundle 嗎?
支援。當你拖入 .xapk、.apks、APKMirror 的 .apkm 或 SAI 匯出的容器時,工具會找出其中的 base(或 universal)APK 進行分析,並利用容器本身的中繼資料(manifest.json、toc.pb、info.json 或 meta.sai)來分類 split。舊式加密的 .apkm 檔無法在本機讀取。MVP 階段不會合併 split 設定 APK。
為什麼某些元件的 exported 旗標會被特別標示?
標示為 android:exported="true" 的元件可以被裝置上的其他應用程式啟動,是安全檢查的常見重點。工具會標示出被匯出的 activity、service、receiver 和 provider,讓你可以快速找到它們。
可以列出 APK 原生 .so 函式庫的符號與函式名稱嗎?
可以。對每一個原生函式庫(.so),分析器都會在你的瀏覽器中解析 ELF 符號表:判斷該函式庫是否已 stripped、列出 .dynsym 的匯出函式,以及(若存在).symtab 的完整函式清單,對 C++ 名稱做 demangle,並把 JNI(Java_…)進入點優先列出。還可用過濾器隱藏編譯器與 STL 產生的雜訊,讓有意義的符號更突出。分割套件也支援 —— 會彙整 .xapk/.apks/.apkm 內所有 APK 的符號。
可以瀏覽 APK 裡的 Java 與 Kotlin 類別和方法嗎?
可以。程式碼瀏覽器會完全在你的瀏覽器中把 DEX bytecode 反組譯成 Smali,讓你瀏覽每一個 Java 與 Kotlin 類別和方法、跳到定義、搜尋,並過濾到只看 app 自己的套件、而非框架與第三方函式庫。.xapk / .apks 分割套件的 base APK 也能讀取其類別。