天天看點

反編譯一款APP然後重新打包(Windows環境)

最近有小夥伴私信我,怎麼把一款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

檔案

反編譯一款APP然後重新打包(Windows環境)

通過如上指令,可以幫我們打包出

build

目錄,接下來就全靠這個build目錄幹 ”大事“ 了,我們來看看這個目錄下的檔案:

反編譯一款APP然後重新打包(Windows環境)

二、安裝apktool

接下來安裝今天的第二個工具——apktool

下載下傳連結:https://ibotpeaches.github.io/Apktool/install/

1、下載下傳apktool檔案

打開網址後找到

windows

節點,對着

wrapper script

右鍵:

反編譯一款APP然後重新打包(Windows環境)

彈窗儲存時一定要使用

bat

格式,預設就是bat格式。

反編譯一款APP然後重新打包(Windows環境)

2、下載下傳apktool.jar

點選windows節點上的 (find newest here)

反編譯一款APP然後重新打包(Windows環境)

進入該界面後,檢視右側jar下載下傳清單,當然下載下傳最新檔案:

反編譯一款APP然後重新打包(Windows環境)

3、配置apktool執行權限

至此,我們下載下傳了兩個檔案,我們把這兩個檔案放到

C://Windows

目錄下,這個過程等價于在系統環境變量Path中配置。

反編譯一款APP然後重新打包(Windows環境)

4、測試apktool權限

随便找個指令行執行如下指令:

apktool

,隻要列印内容說明沒問題

反編譯一款APP然後重新打包(Windows環境)

三、開始反編譯APP

我們找個簡單點的APP,有人提議用我的塗塗影院,出門右拐,請私下自己嘗試,我怎麼會公開處刑自家孩子。

某視訊APP:https://niceyoo.lanzoux.com/iCi92eksqjc

1、反編譯

反編譯用到的是第二個下載下傳的工具—apktool,我們先下載下傳上方連結中的app,然後在該檔案目錄的控制台下執行如下指令:

apktool d 名稱.apk

apktool d 一個TV.apk
           

d,代表反編譯,b代表回編譯,不要記混。

反編譯一款APP然後重新打包(Windows環境)

執行後我們得到了一個檔案夾《一個TV》,我們簡單看一下這個目錄:

反編譯一款APP然後重新打包(Windows環境)

如圖,其中,res檔案夾下存放的是反編譯出來的所有資源,smali檔案夾下存放的是反編譯出來的所有代碼,

AndroidManifest.xml

則是經過反編譯還原後的

manifest

檔案。

smali

檔案夾下的檔案

smali

檔案使用的是Android虛拟機所使用的寄存器語言,如果看的懂smail檔案的話,就可以修改源代碼的邏輯了,比如增加一個圖檔、增加一行文字等等都是修改的smail檔案;

在這之前我們得看到代碼才行,不然都不知道在哪改,改到哪,那麼接下來就是去看APP的源碼了,是以這就用到第一個安裝的軟體了—jadx

2、檢視源碼資料

接下來我們複制一份 《一個TV.apk》,然後将複制的

apk

字尾改成

zip

,得到如下:

反編譯一款APP然後重新打包(Windows環境)

進入 《一個TV的副本》,這一步主要是想得到

classes.dex

檔案,該檔案是擷取源碼的重點。

然後需要用到第一個工具—jadx,進入

buil/jadx/bin

目錄。輕按兩下執行

jadx-gui.bat

檔案:

反編譯一款APP然後重新打包(Windows環境)

i

在彈出的視窗選擇《一個TV-副本》中的

classes.dex

反編譯一款APP然後重新打包(Windows環境)

然後就可以看到如下的源碼視圖了,具體代碼細節就不帶大家一塊看了

反編譯一款APP然後重新打包(Windows環境)

為了友善直接在控制台使用,大家可以将 jadx 的目錄配置到系統環境變量中:

反編譯一款APP然後重新打包(Windows環境)

可能有小夥伴會好奇,怎麼沒看到實質性的源碼呀,别着急,進入《一個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
           
反編譯一款APP然後重新打包(Windows環境)

執行完該指令後,會在 《一個TV》 檔案夾下生成一個 dist 目錄,目錄下有個app... 咳咳别激動,還有最後一步:

反編譯一款APP然後重新打包(Windows環境)

5、應用簽名

關于應用簽名,說麻煩也不麻煩,稍微懂點Android的小夥伴,①可以通過Android Studio或者直接指令行生成簽名檔案;②将apk和簽名檔案放在同一個目錄,然後再終端執行 jarsigner 代碼;

詳細的我就不啰嗦了,今天為照顧大多數小夥伴,介紹一個工具

Android Crack Tool

下載下傳連結:https://niceyoo.lanzous.com/iWKoBem1atg

下載下傳解壓後,執行

ApkToolkit.exe

檔案,點選按鈕

簽名.apk

,選擇上方回編譯生成的APPs:

反編譯一款APP然後重新打包(Windows環境)

簽名完成後,會在根目錄生成

dist一個TV.S.apk

我們将它裝到手機上,安裝試一下:

反編譯一款APP然後重新打包(Windows環境)

其實成功了,就是名稱太長 「niceyoo部落格」 沒顯示出來,ok,下一篇帶大家深一步魔改APP。

小夥伴們不要慌,你慌我也慌,來都來了,關注一下,交個朋友。