反编译一款APP然后重新打包(Windows环境)
最近有小伙伴私信我,怎么把一款A(yù)PP改成自己的信息呀,咳咳,這又來送題材了,今天水一把APP反編譯+回編譯,文中會(huì)針對(duì)一款A(yù)PP進(jìn)行簡(jiǎn)單的修改信息,問問題的小伙伴還不火速右上角支持一下。
MacOS跟Windows我是分開寫的,怕你說平臺(tái)不一致就打退堂鼓了。
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
下載后進(jìn)入該文件根目錄執(zhí)行 ./gradlew.bat dist文件
通過如上指令,可以幫我們打包出 build 目錄,接下來就全靠這個(gè)build目錄干 ”大事“ 了,我們來看看這個(gè)目錄下的文件:
二、安裝apktool
接下來安裝今天的第二個(gè)工具——apktool
下載鏈接:https://ibotpeaches.github.io/Apktool/install/
1、下載apktool文件
打開網(wǎng)址后找到windows節(jié)點(diǎn),對(duì)著 wrapper script 右鍵:
彈窗保存時(shí)一定要使用bat格式,默認(rèn)就是bat格式。
2、下載apktool.jar
點(diǎn)擊windows節(jié)點(diǎn)上的 (find newest here)
進(jìn)入該界面后,查看右側(cè)jar下載列表,當(dāng)然下載最新文件:
3、配置apktool執(zhí)行權(quán)限
至此,我們下載了兩個(gè)文件,我們把這兩個(gè)文件放到 C://Windows 目錄下,這個(gè)過程等價(jià)于在系統(tǒng)環(huán)境變量Path中配置。
4、測(cè)試apktool權(quán)限
隨便找個(gè)命令行執(zhí)行如下指令:apktool,只要打印內(nèi)容說明沒問題
三、開始反編譯APP
我們找個(gè)簡(jiǎn)單點(diǎn)的APP,有人提議用我的涂涂影院,出門右拐,請(qǐng)私下自己嘗試,我怎么會(huì)公開處刑自家孩子。
某視頻APP:https://niceyoo.lanzous.com/iCi92eksqjc
1、反編譯
反編譯用到的是第二個(gè)下載的工具—apktool,我們先下載上方鏈接中的app,然后在該文件目錄的控制臺(tái)下執(zhí)行如下指令:apktool d 名稱.apk
apktool d 一個(gè)TV.apkd,代表反編譯,b代表回編譯,不要記混。
執(zhí)行后我們得到了一個(gè)文件夾《一個(gè)TV》,我們簡(jiǎn)單看一下這個(gè)目錄:
如圖,其中,res文件夾下存放的是反編譯出來的所有資源,smali文件夾下存放的是反編譯出來的所有代碼,AndroidManifest.xml則是經(jīng)過反編譯還原后的manifest文件。
smali文件夾下的文件smali文件使用的是Android虛擬機(jī)所使用的寄存器語言,如果看的懂smail文件的話,就可以修改源代碼的邏輯了,比如增加一個(gè)圖片、增加一行文字等等都是修改的smail文件;
在這之前我們得看到代碼才行,不然都不知道在哪改,改到哪,那么接下來就是去看APP的源碼了,所以這就用到第一個(gè)安裝的軟件了—jadx
2、查看源碼數(shù)據(jù)
接下來我們復(fù)制一份 《一個(gè)TV.apk》,然后將復(fù)制的apk后綴改成zip,得到如下:
進(jìn)入 《一個(gè)TV的副本》,這一步主要是想得到 classes.dex 文件,該文件是獲取源碼的重點(diǎn)。
然后需要用到第一個(gè)工具—jadx,進(jìn)入 buil/jadx/bin 目錄。雙擊執(zhí)行 jadx-gui.bat 文件:
在彈出的窗口選擇 《一個(gè)TV-副本》 中的 classes.dex 文件:
然后就可以看到如下的源碼視圖了,具體代碼細(xì)節(jié)就不帶大家一塊看了
為了方便直接在控制臺(tái)使用,大家可以將 jadx 的目錄配置到系統(tǒng)環(huán)境變量中:
可能有小伙伴會(huì)好奇,怎么沒看到實(shí)質(zhì)性的源碼呀,別著急,進(jìn)入《一個(gè)TV-副本》文件夾控制臺(tái)執(zhí)行:
執(zhí)行該命令,反編譯后會(huì)把源碼放入out文件夾下(如果out不存在它會(huì)自動(dòng)創(chuàng)建)
補(bǔ)充:這一小節(jié)的目的就是為了使用jadx-gui可視化界面查看app的源碼,小伙伴千萬不要混了,主要的、以及接下來要操作的還是在第一小節(jié)反編譯出來的代碼。
3、魔改數(shù)據(jù)
代碼也看到了,本來計(jì)劃這篇就帶大家修改源碼數(shù)據(jù),但是為了照顧大部分小伙伴,接下來就只修改一下APP名稱,然后重新打包APP,下一篇補(bǔ)充:修改布局 + 修改smali代碼。
我們?cè)倩氐降谝还?jié)使用apktool反編譯出來的代碼,找到根目錄的AndroidManifest.xml,修改文件中的label標(biāo)簽對(duì)應(yīng)的string.xml文件中的值,這次我們簡(jiǎn)單粗暴點(diǎn),直接修改內(nèi)容吧:
修改完記得保存,然后我們就開始回編譯了。
4、回編譯APP
退回到 《一個(gè)TV》 文件夾目錄,執(zhí)行如下指令apktool b 文件夾名稱
apktool b 一個(gè)TV
執(zhí)行完該命令后,會(huì)在 《一個(gè)TV》 文件夾下生成一個(gè) dist 目錄,目錄下有個(gè)app… 咳咳別激動(dòng),還有最后一步:
5、應(yīng)用簽名
關(guān)于應(yīng)用簽名,說麻煩也不麻煩,稍微懂點(diǎn)Android的小伙伴,①可以通過Android Studio或者直接命令行生成簽名文件;②將apk和簽名文件放在同一個(gè)目錄,然后再終端執(zhí)行 jarsigner 代碼;
詳細(xì)的我就不啰嗦了,今天為照顧大多數(shù)小伙伴,介紹一個(gè)工具 Android Crack Tool
下載鏈接:https://niceyoo.lanzous.com/iWKoBem1atg
下載解壓后,執(zhí)行ApkToolkit.exe文件,點(diǎn)擊按鈕簽名.apk,選擇上方回編譯生成的APPs:
簽名完成后,會(huì)在根目錄生成dist一個(gè)TV.S.apk文件:
我們將它裝到手機(jī)上,安裝試一下:
其實(shí)成功了,就是名稱太長(zhǎng) 「niceyoo博客」 沒顯示出來,ok,下一篇帶大家深一步魔改APP。
小伙伴們不要慌,你慌我也慌,來都來了,關(guān)注一下,交個(gè)朋友。
本文首發(fā)于博客園:https://www.cnblogs.com/niceyoo/p/13303136.html
總結(jié)
以上是生活随笔為你收集整理的反编译一款APP然后重新打包(Windows环境)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于SQLyog的破解注册码
- 下一篇: console 程序随系统启动及隐藏当前