日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 反编译及二次打包详细步骤

發布時間:2023/12/9 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 反编译及二次打包详细步骤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有時候有反編譯的需求,借鑒或者修改下APK的代碼及資源。

先下載必須軟件

ApkTool? ? ?https://ibotpeaches.github.io/Apktool/install/

ApkTool用于解壓.apk文件及二次打包,直接用解壓工具解壓出來的文件是無法閱讀和修改的;

mac下安裝有時會提示權限問題,指令實例:chmod +x d2j_invoke.sh

指令解釋:chmod +x 未獲取權限的文件名,文件可以是相對或者絕對路徑

然后下載

選擇一:

dex2jar??https://sourceforge.net/projects/dex2jar/files/

最新版本是2.0,? 2015年最后更新,說明有點過時了,作用是將.dex文件反編譯為.jar;

jd-gui? ? ?http://java-decompiler.github.io/

最新版本是1.6.6,下載mac版本要求電腦安裝JDK11,所以直接下載通用的.jar就可以運行了,作用是查看反編譯后的.jar,然后修改對應的.samli文件,.samli文件是很難看懂的,不過也是能修改的。

選擇一是以前的方式,有點過時了,建議用選擇二;

選擇二:

jadx-gui? ? ??https://github.com/skylot/jadx/releases

這個軟件可以直接解壓apk文件及反編譯,相當方便好用。

有些需要梯子,這里直接提供了目前最新工具套裝forMac,因為我現在很少用win哈:

https://download.csdn.net/download/msn465780/83369358

如何使用?

安裝好ApkTool后,把.apk文件拷貝到apktoo目錄下的bin目錄下,和apktool這個可執行文件一級,mac系統在/usr/local/Cellar下;

指令官方文檔:?https://ibotpeaches.github.io/Apktool/documentation/

有解壓和二次打包的各種指令;

終端進入上述bin目錄,這里先解壓指令例子:apktool d -s zz.apk -o zz

說明:apktool d -s [apk名字]?-o [解壓后的文件夾名字],d是decode

當然也可以用絕對路徑哈;

解壓后得到如圖:

還有一個指令:apktool d ?zz.apk -o zz,這個沒有-s, 解壓出來的就不是.dex文件,而是.smali

接下來,使用dex2jar,看名字就知道是將dex反編譯為jar, 將.dex拷貝到dex2jar根目錄下,

終端進入到dex2jar目錄下,mac系統指令:?sh d2j-dex2jar.sh classes.dex

指令解釋:sh d2j-dex2jar.sh [目標dex文件的名字]

然后生成一個classes-dex2jar.jar;

在后, 用下載好的jd-gui打開這個.jar進行查看源碼,如圖:

?是不是有點麻煩?是的

那么新一代神器就出場了哈,jdx-gui,

用這個軟件直接打開目標.apk,如圖:

接著,另存為android工程,用androidstudio查閱,就相當方便了哈,如圖:

?此過程可能需要幾分鐘,請耐心等待或者去搞其他的事,好了后用AS打開此項目,當然項目結構語法肯定有錯誤哈,這個的目的是為了查閱源碼和資源的,是不能二次打包的哈;

再接著,找出需要修改的地方,就找到對應的.smail文件修改哈,.jar和.smali文件的名字都是一樣的哈,應該找文件問題不大哈。

二次打包,

同樣定位到bin下apktool文件那個目錄,進入終端,指令:

apktool b zz?-o new_zz.apk

指令解釋:apktool b [解壓后的文件名]?-o [二次打包的apk名],b指build

?然后終端進入到SDK自帶的platform-tools目錄下,用adb指令安裝新的apk, 指令示例:

adb install /Users/chenqi/Downloads/new_zz.apk

以為可以開心的玩耍了嗎?還差一點點哈,

此時會發現安裝不了,提示證書檢驗失敗,簡單,再次簽名就好了哈,將簽名文件拷貝到apktool可執行文件目錄下,當然也可以寫絕對路徑,

指令示例:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Untitled -storepass 123456 new_zz.apk 123456

指令解釋:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystore文件路徑] -storepass [keystore文件密碼] [待簽名APK路徑] [keystore文件別名]

再次指令安裝,好了,這下可以開心的玩耍了

總結

以上是生活随笔為你收集整理的android 反编译及二次打包详细步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。