第一次寫簡書有點興奮,想必大家再第一次寫作的時候都有過這種心情吧。四個小時前Leader給我說小Z啊,咱們的APP這兩天就要上線了你試著將咱的安裝包反編譯一下看看代碼的混淆程度吧,我剛接到這個任務(wù)的時候在此之前一直覺得反編譯是一件很麻煩的事,但是經(jīng)過三四個小時的時間將Leader分派給我的任務(wù)完成,發(fā)現(xiàn)只要認(rèn)真的做一件事,沒有完成不了的,在此鼓勵大家不要覺得自己不行,要相信自己是可以的?。?!
參考大神文章傳送門
OK,肯定有人覺得我是在說廢話了,那么咱們直奔主題吧!GO---->>>
首先給大家簡單的介紹一下反編譯的一個流程以及需要用到的工具:
1.反編譯的工具ApkTool? ??地址:ApkTool
? ? ????分為apktool.bat和apktool.jar,這兩個下載完成之后網(wǎng)上好多文章都說要放在C盤下面的Windows文件夾下面,說是放到此文件夾下面不用配置環(huán)境變量,剛開始我也是放到此文件夾下面,單純是為了省事不想配置環(huán)境變量,后來測試成功之后又把路徑改為自定義的其他路徑下面(我放在了D:\apktool包下,方便下面幾個步驟的引用),發(fā)現(xiàn)不用配置環(huán)境變量也是可以的。。。
? ? ? ? 下載好之后可以通過cmd窗口切到存放的目錄下面后,輸入apktool此命令來判斷是否成功,如果提示此錯誤

可以在apktool前加.\? ? ? ?再次嘗試.\apktool? ?此時提示

說明OK了。
2.把dex文件轉(zhuǎn)成jar文件的工具? ? 地址:? ? ? ? ? ? ? ? ?dex2jar-2.0
? ? ? ? 下載完之后是一個dex2jar-2.0的一個.zip壓縮包文件,加壓出來之后打開會看到很多.sh和.bat的文件,此時我們需要用到的只有三個,分別是下圖標(biāo)記的這三個

? ? ? ? ????因為我用的win系統(tǒng),如果又用mac的大佬可以將.bat的文件換成.sh的文件即可,將這三個文件與之前的apktool的兩個文件放到同一個目錄(D:\apktool)下面。
3.打包apk
? ? ? ? ? ? 將打完包的apk放到apktool文件夾下面將.apk換成.zip格式的文件然后解壓出來會看到一個classes.dex文件,將此文件也放到apktool文件夾下面,此時在cmd窗口輸入d2j-dex2jar.bat classes.dex(或者.\d2j-dex2jar.bat classes.dex),mac系統(tǒng)輸入d2j-dex2jar.shclasses.dex(或者.\d2j-dex2jar.shclasses.dex),成功的話會提示如下圖,并且你會在apktool文件夾下看到一個classes-dex2jar.jar的文件。

4.JD-GUI工具? 地址:JD-GUI
? ??????jd-gui: 這個工具用于將jar文件轉(zhuǎn)換成java代碼。

5.反編譯資源文件
? ? ? ? 在cmd窗口輸入apktool.bat apktool d tamc.apk(或者.\apktool.bat apktool d tamc.apk),提示如下圖表示成功,

成功之后你會在apktool文件夾下面發(fā)現(xiàn)多了一個文件夾,這個文件夾的名稱跟你的apk的文件名一樣,這個文件夾中就是你反編譯之后的apk中所有的資源文件以及AndroidManifest。
此時對APK的反編譯就已經(jīng)差不多告一段落了,之后我會接著補(bǔ)充修改反編譯之后的apk源碼以及重新進(jìn)行簽名打包的文章,還請各位筆下留情,剛開始寫筆記,以后慢慢完善?。?!