怎麼校驗幣安APK簽名?兩種工具實操
校驗幣安 APK 簽名最實用的兩種工具是 apksigner(命令列)和 Android 上的簽名檢視 App。本文給出 apksigner 完整命令、簽名指紋的核對方法、以及不同版本幣安 APK 簽名變化的處理。
校驗幣安 APK 簽名最實用的兩種工具是 **apksigner(命令列)**和 Android 上的簽名檢視 App。直接答標題:apksigner 用 apksigner verify --print-certs Binance.apk 一行命令列印證書指紋(SHA-256),App 端用 ApkSignatureViewer 類工具直接檢視。兩種工具結果應一致,簽名指紋只要和已知的幣安官方指紋匹配就是真包。
簽名校驗是辨別仿冒 APK 最強的手段——包名可以仿冒,簽名幾乎不可能偽造。仿冒者重新打包後必須用自己的金鑰重新簽名,證書指紋會完全不同。本文給出兩種工具的完整操作步驟,以及拿到簽名後如何核對。如果你剛從 幣安官網 下載了 APK,可以走完本文流程做最嚴格的校驗。
為什麼簽名校驗比包名校驗更可靠
| 維度 | 包名 | 簽名 |
|---|---|---|
| 是否容易仿冒 | 容易(改 manifest 即可) | 極難(要拿到原始私鑰) |
| 是否唯一 | 一個 App 一個 | 一個開發者一組(可有多個) |
| 是否會變 | 極少變 | 偶爾輪換 |
| 工具門檻 | 低(看應用資訊即可) | 中(要工具) |
| 校驗強度 | 弱 | 強 |
簽名校驗是真偽辨識的最後一道關。
工具 1:apksigner(命令列,最權威)
apksigner 是 Google 官方的 Android SDK 自帶工具,業界最權威的 APK 簽名驗證工具。
準備 apksigner
方法 1:裝 Android Studio
Android Studio 自帶 apksigner,路徑在:
C:\Users\<你>\AppData\Local\Android\Sdk\build-tools\<版本>\apksigner.bat
或 Mac/Linux:
~/Library/Android/sdk/build-tools/<版本>/apksigner
方法 2:單獨裝 build-tools
不想裝整個 Android Studio,可以單獨下 command-line tools:
- 去 Android 開發者官網下載 command-line tools
- 解壓後用
sdkmanager安裝 build-tools - apksigner 就在
build-tools/<版本>/下
命令 1:列印證書指紋
最常用的命令:
apksigner verify --print-certs Binance.apk
輸出示例:
Signer #1 certificate DN: CN=Binance, O=Binance Holdings Limited
Signer #1 certificate SHA-256 digest: a1b2c3d4...(64 個十六進位制字元)
Signer #1 certificate SHA-1 digest: f1e2d3...(40 個字元)
Signer #1 certificate MD5 digest: 1a2b3c...(32 個字元)
記下 SHA-256 指紋,去幣安官方公告或開發者簽名公示頁核對。
命令 2:僅驗證簽名有效性
apksigner verify Binance.apk
輸出 Verifies 表示簽名有效(但不一定是幣安的)。失敗會輸出錯誤原因(如簽名損壞、被篡改)。
命令 3:檢視簽名方案
apksigner verify --verbose Binance.apk
輸出會顯示用了哪些簽名方案:
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
幣安官方 APK 通常使用 v2 + v3 雙簽名(APK Signature Scheme v2/v3),如果只看到 v1 → 可能是老版本或被處理過的包。
工具 2:Android App(手機端,最方便)
如果不想裝命令列工具,可以在 Android 手機上直接用 App 檢視簽名。
推薦工具
| App 名 | 平臺 | 是否需要 root | 顯示內容 |
|---|---|---|---|
| ApkSignatureViewer | Android | 否 | 包名 + 簽名指紋 |
| App Inspector | Android | 否 | 包名 + 許可權 + 簽名 |
| APK Analyzer | Android | 否 | 完整 APK 結構 |
ApkSignatureViewer 操作步驟
- 裝 ApkSignatureViewer(Google Play 或 F-Droid 找到)
- 裝好幣安 APK
- 開啟 ApkSignatureViewer → 選 Binance
- 看到包名、版本、簽名 SHA-256
App Inspector 操作步驟
- 裝 App Inspector
- 開啟後選 Binance
- 滑到底部 → 看簽名 SHA-256
App 端工具的好處:不用電腦、不用 ADB、不需要 root,幾十秒搞定。
兩種工具結果應該一致
無論 apksigner 還是 App 端工具,輸出的 SHA-256 指紋應該完全一樣。如果不一致:
- App 端可能演算法實現錯誤 → 以 apksigner 為準
- 安裝後查的是真包,APK 檔案是仿冒包 → 應當心
- 工具版本太老 → 升級工具
核對幣安官方簽名指紋
拿到 SHA-256 指紋後,怎麼知道是不是幣安官方的?
來源 1:幣安官方公告
幣安官網的"應用安全"或"開發者"頁面偶爾會公開 APK 簽名指紋。但這個頁面不是固定地址,要靠搜尋。
來源 2:APKMirror 等知名映象
APKMirror 是 Android 圈知名的 APK 映象站,每個上架 APK 都有簽名指紋頁。可以下幣安 APK 時看 APKMirror 上的"Cert sha-256"欄位。
來源 3:交叉對比多版本
下載幣安 APK 多個版本(v2.83.x、v2.84.x、v2.85.x),用 apksigner 分別列印指紋:
- 都一致 → 大機率是同一個開發者籤的真包
- 不一致 → 可能其中某些是仿冒包,或者幣安做了金鑰輪換
來源 4:裝在多臺裝置交叉驗證
把同一個 APK 裝到 3 臺手機:A 是從官網下的、B 是別的來源、C 是朋友給的。用 App 端工具查 3 臺的簽名 SHA-256:
- 都一致 → 都是同一份
- A 和 B 一致但 C 不同 → C 可能裝了仿冒包
完整校驗流程
下面是一個推薦的完整校驗流程:
第 1 步:下載 APK(來自官網)
去 幣安官方App 入口下載約 85MB 的 APK。
第 2 步:核對檔案大小
檔案應是 80-95MB。明顯偏離立刻刪。
第 3 步:用 apksigner 看簽名
在電腦上跑 apksigner verify --print-certs Binance.apk,記下 SHA-256 指紋。
第 4 步:核對包名
apksigner 同時會讀 manifest,但更直接是用:
aapt dump badging Binance.apk | grep package
輸出應是 package: name='com.binance.dev'。
第 5 步:裝機後再查一次
裝到手機後用 ApkSignatureViewer 再查一次簽名。兩次結果一致 → 真包。
第 6 步:登入後看是否跳轉 binance.com
啟動 App,登入頁應跳到 accounts.binance.com。如果跳到不知名網址,立刻解除安裝——可能是中間人劫持或仿冒包。
常見的簽名異常情況
| 異常 | 可能原因 | 處理 |
|---|---|---|
Verifies 但 SHA-256 與已知不一致 |
仿冒包重新簽名 | 刪 |
Verification failed |
簽名損壞或被篡改 | 刪 |
| 多個 Signer | 一個 APK 有多個簽名者,可能被注入 | 謹慎 |
| 僅 v1 簽名 | 極老的版本或被工具重打包 | 謹慎 |
| 證書有效期已過 | 證書過期 | 看是否在輪換期 |
| DN 欄位是中文亂碼 | 仿冒包用了非標準證書 | 刪 |
apksigner 的幾個進階命令
驗證簽名塊完整性
apksigner verify --print-certs --verbose Binance.apk
會輸出每個簽名方案的詳情,能看到 v1/v2/v3 是否都有效。
檢視簽名塊大小
apksigner verify --max-sdk-version=33 Binance.apk
針對特定 Android 版本驗證簽名相容性。
檢查是否簽名後被修改
apksigner verify --check-signed Binance.apk
驗證 APK 在簽名之後沒有被修改(包括 ZIP 註釋、對齊)。
aapt 工具補充
apksigner 之外,aapt 也很常用——專門看 APK 元資訊:
aapt dump badging Binance.apk
輸出包含:包名、版本號、最低 Android 版本、應用名、申請的許可權、Activity 列表等。
簽名校驗之外建議 aapt 看一眼申請的許可權列表——仿冒包常請求異常許可權(簡訊、通訊錄、自啟動),官方包只要通知/攝像頭/儲存/網路。
與包名校驗、檔案大小校驗的關係
完整的真偽辨識應該是三層校驗:
| 層級 | 工具 | 用時 | 強度 |
|---|---|---|---|
| 檔案大小 | 檔案管理器 | 5 秒 | 弱 |
| 包名 | 應用資訊 / aapt | 30 秒 | 中 |
| 簽名 | apksigner / App | 1-2 分鐘 | 強 |
具體可以看 幣安 APK 包名核對 配合簽名校驗形成雙保險,或者去 安卓 APK 分類 看更多 Android 端實操。
簽名輪換的應對
少數情況下,幣安會輪換籤名金鑰(比如使用 Android 11+ 的 APK Signature Scheme v3 簽名輪換)。這時你會看到:
Signer #1: <舊簽名 SHA-256>
Signer #2: <新簽名 SHA-256>
兩個簽名同時出現屬於輪換期,正常情況。只看其中一個就判定假包是錯的。輪換期通常持續幾個月。
FAQ
Q:apksigner 必須裝 Android Studio 才能用嗎? A:不需要。可以單獨裝 command-line tools(約 200MB),用 sdkmanager 裝 build-tools 之後就有 apksigner。比裝 Android Studio 節省 6GB+。
Q:APK 在傳輸過程中(比如發郵件、傳網盤)簽名會變嗎? A:不會。APK 是一個 ZIP 檔案,傳輸不會改變內部內容。如果傳輸後簽名變了 → 路上被替換了,不是傳輸問題。
Q:手機直接裝簽名檢視 App 比電腦跑 apksigner 準嗎? A:演算法上一樣準。但 App 端實現可能有 bug 或讀取許可權限制。嚴苛場景以 apksigner 為準。
Q:v2 和 v3 簽名有什麼區別? A:v1 是 JAR 簽名(早期),v2 是 APK 整體雜湊簽名(更安全),v3 支援金鑰輪換。Android 9+ 強制要求 v2,幣安 APK 通常是 v2 + v3 雙簽名。
Q:為什麼 apksigner 輸出"DOES NOT VERIFY"? A:可能:① APK 損壞;② 簽名被篡改;③ 你裝的工具版本太老不識別新簽名方案。先升級 build-tools 到最新,再試。
Q:能不能直接看 APK 解壓後的 META-INF 目錄判斷簽名? A:可以,但 META-INF 裡只有簽名塊的二進位制,人眼看不出來 SHA-256。還是要用 apksigner 這類工具計算。
Q:iOS App 也有類似的簽名校驗嗎? A:iOS 的程式碼簽名機制(Code Signing)由 Apple 強制,App Store 裝的所有 App 都已透過簽名驗證。所以 iOS 使用者不用手動校驗簽名。Android 的開放性導致需要使用者自己校驗。
Q:裝上之後能否再校驗簽名?
A:能。已裝的 App 簽名資訊存在 /data/system/packages.xml(需 root)或者用 ApkSignatureViewer 類 App 直接讀 PackageManager API。無 root 也能查。