萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 手機 >  >> 手機應用 >> Android 教學

Android 應用去廣告完整教程:Smali 反編譯 + Notepad++ 關鍵字替換 + 重新簽名

原理概述

Android APK 本質是 ZIP 壓縮包,核心程式碼在 classes.dex (Dalvik 字節碼)。流程:**反編譯 dex → 修改廣告請求 URL/代碼 → 重新打包 → 簽名 → 安裝**。

所需工具包 (打包下載)

  • smali/baksmali:反編譯/打包 .dex (含 解包.bat/打包.bat)
  • Notepad++ (或 EditPlus):支援「在檔案中搜尋/替換」的程式碼編輯器
  • APK 簽名工具:signapk.jar + testkey.x509.pem + testkey.pk8 (或現成 Sign.bat)

詳細操作步驟

  1. 安裝 Java 環境 (JRE/JDK),確保 java -version 正常。
  2. 用 WinRAR 開啟目標 APK,拖出 classes.dex 到 smali 資料夾。
  3. 將 classes.dex 拖到 解包.bat 上,生成 classes 資料夾 (含 .smali 檔案)。
  4. 用 Notepad++ 開啟 classes 資料夾:
    Ctrl+Shift+F → 「在檔案中尋找」 → 目錄選 classes → 關鍵字填 https:// → 尋找所有。
    結果中包含大量廣告 SDK 請求 URL (如 https://ads.xxx.com/...、https://track.yyy.com/...)。
  5. 刪除廣告 URL 字串 (僅刪除引號內的網址,保留引號與代碼結構),Notepad++ 會自動儲存修改。
  6. 將修改後的 classes 資料夾拖到 打包.bat,生成新的 classes.dex。
  7. 用 WinRAR 開啟原 APK,將新 classes.dex 拖入**替換**原檔。
  8. 刪除 APK 中 META-INF/ 目錄下除 MANIFEST.MF 外的 CERT.SF、CERT.RSA (舊簽名)。
  9. 將修改後的 APK 移動到簽名工具 sign 資料夾,拖到 Sign.bat 自動簽名。
  10. 安裝簽名後的 APK 到手機測試,廣告應已消失。

進階技巧

  • 搜尋關鍵字擴展:ads、adview、admob、gdt、baiduad、startapp 等常見廣告 SDK 類名/標識。
  • 若廣告代碼在 Java 層 (非原生),需分析 .smali 邏輯,註釋或修改條件判斷 (如 if-eqz v0, :cond_xxx 改為 goto :cond_skip_ad)。
  • 部分應用有完整性校驗 (檢測簽名/檔案雜湊),需同時 Hook 校驗邏輯或使用 Xposed 模組 (如 MinMinGuard、AdAway) 更簡便。

法律與道德提醒

去廣告僅限**個人學習研究**、**已購買付費版但仍有廣告**、**開發者測試**等合理場景。請尊重開發者勞動成果,支持正版、訂閱去廣告版本。商業用途或大量傳播修改版 APK 可能涉及侵權。

copyright © 萬盛學電腦網 all rights reserved