BabianNest / docs

怎麼校驗幣安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:

  1. 去 Android 開發者官網下載 command-line tools
  2. 解壓後用 sdkmanager 安裝 build-tools
  3. 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 操作步驟

  1. 裝 ApkSignatureViewer(Google Play 或 F-Droid 找到)
  2. 裝好幣安 APK
  3. 開啟 ApkSignatureViewer → 選 Binance
  4. 看到包名、版本、簽名 SHA-256

App Inspector 操作步驟

  1. 裝 App Inspector
  2. 開啟後選 Binance
  3. 滑到底部 → 看簽名 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 也能查。