最近有小夥伴私信我,怎麼把一款APP改成自己的資訊呀,咳咳,這又來送題材了,今天水一把APP反編譯+回編譯,文中會針對一款APP進行簡單的修改資訊,問問題的小夥伴還不火速右上角支援一下。
MacOS跟Windows我是分開寫的,怕你說平台不一緻就打退堂鼓了。
MacOS:https://www.cnblogs.com/niceyoo/p/13296260.html
Windows:https://www.cnblogs.com/niceyoo/p/13303136.html
一、下載下傳jadx
下載下傳位址:https://github.com/skylot/jadx/archive/master.zip
下載下傳後進入該檔案根目錄執行
./gradlew.bat dist
檔案

通過如上指令,可以幫我們打包出
build
目錄,接下來就全靠這個build目錄幹 ”大事“ 了,我們來看看這個目錄下的檔案:
二、安裝apktool
接下來安裝今天的第二個工具——apktool
下載下傳連結:https://ibotpeaches.github.io/Apktool/install/
1、下載下傳apktool檔案
打開網址後找到
windows
節點,對着
wrapper script
右鍵:
彈窗儲存時一定要使用
bat
格式,預設就是bat格式。
2、下載下傳apktool.jar
點選windows節點上的 (find newest here)
進入該界面後,檢視右側jar下載下傳清單,當然下載下傳最新檔案:
3、配置apktool執行權限
至此,我們下載下傳了兩個檔案,我們把這兩個檔案放到
C://Windows
目錄下,這個過程等價于在系統環境變量Path中配置。
4、測試apktool權限
随便找個指令行執行如下指令:
apktool
,隻要列印内容說明沒問題
三、開始反編譯APP
我們找個簡單點的APP,有人提議用我的塗塗影院,出門右拐,請私下自己嘗試,我怎麼會公開處刑自家孩子。
某視訊APP:https://niceyoo.lanzoux.com/iCi92eksqjc
1、反編譯
反編譯用到的是第二個下載下傳的工具—apktool,我們先下載下傳上方連結中的app,然後在該檔案目錄的控制台下執行如下指令:
apktool d 名稱.apk
apktool d 一個TV.apk
d,代表反編譯,b代表回編譯,不要記混。
執行後我們得到了一個檔案夾《一個TV》,我們簡單看一下這個目錄:
如圖,其中,res檔案夾下存放的是反編譯出來的所有資源,smali檔案夾下存放的是反編譯出來的所有代碼,
AndroidManifest.xml
則是經過反編譯還原後的
manifest
檔案。
smali
檔案夾下的檔案
smali
檔案使用的是Android虛拟機所使用的寄存器語言,如果看的懂smail檔案的話,就可以修改源代碼的邏輯了,比如增加一個圖檔、增加一行文字等等都是修改的smail檔案;
在這之前我們得看到代碼才行,不然都不知道在哪改,改到哪,那麼接下來就是去看APP的源碼了,是以這就用到第一個安裝的軟體了—jadx
2、檢視源碼資料
接下來我們複制一份 《一個TV.apk》,然後将複制的
apk
字尾改成
zip
,得到如下:
進入 《一個TV的副本》,這一步主要是想得到
classes.dex
檔案,該檔案是擷取源碼的重點。
然後需要用到第一個工具—jadx,進入
buil/jadx/bin
目錄。輕按兩下執行
jadx-gui.bat
檔案:
i
在彈出的視窗選擇《一個TV-副本》中的
classes.dex
然後就可以看到如下的源碼視圖了,具體代碼細節就不帶大家一塊看了
為了友善直接在控制台使用,大家可以将 jadx 的目錄配置到系統環境變量中:
可能有小夥伴會好奇,怎麼沒看到實質性的源碼呀,别着急,進入《一個TV-副本》檔案夾控制台執行:
jadx -d out classes.dex
執行該指令,反編譯後會把源碼放入out檔案夾下(如果out不存在它會自動建立)
補充:這一小節的目的就是為了使用jadx-gui可視化界面檢視app的源碼,小夥伴千萬不要混了,主要的、以及接下來要操作的還是在第一小節反編譯出來的代碼。
3、魔改資料
代碼也看到了,本來計劃這篇就帶大家修改源碼資料,但是為了照顧大部分小夥伴,接下來就隻修改一下APP名稱,然後重新打包APP,下一篇補充:
修改布局
+
修改smali代碼
。
我們再回到第一節使用apktool反編譯出來的代碼,找到根目錄的
AndroidManifest.xml
,修改檔案中的label标簽對應的
string.xml
檔案中的值,這次我們簡單粗暴點,直接修改内容吧:
修改完記得儲存,然後我們就開始回編譯了。
4、回編譯APP
退回到 《一個TV》 檔案夾目錄,執行如下指令
apktool b 檔案夾名稱
apktool b 一個TV
執行完該指令後,會在 《一個TV》 檔案夾下生成一個 dist 目錄,目錄下有個app... 咳咳别激動,還有最後一步:
5、應用簽名
關于應用簽名,說麻煩也不麻煩,稍微懂點Android的小夥伴,①可以通過Android Studio或者直接指令行生成簽名檔案;②将apk和簽名檔案放在同一個目錄,然後再終端執行 jarsigner 代碼;
詳細的我就不啰嗦了,今天為照顧大多數小夥伴,介紹一個工具
Android Crack Tool
下載下傳連結:https://niceyoo.lanzous.com/iWKoBem1atg
下載下傳解壓後,執行
ApkToolkit.exe
檔案,點選按鈕
簽名.apk
,選擇上方回編譯生成的APPs:
簽名完成後,會在根目錄生成
dist一個TV.S.apk
我們将它裝到手機上,安裝試一下:
其實成功了,就是名稱太長 「niceyoo部落格」 沒顯示出來,ok,下一篇帶大家深一步魔改APP。
小夥伴們不要慌,你慌我也慌,來都來了,關注一下,交個朋友。