記錄一次Android反編譯過程

記錄一次Android反編譯過程

一、所需要的工具

工具一:ApkTool

鏈接:https://pan.baidu.com/s/1fHzJm20xT6LxfqklSQEx0g 
提取碼:9otj

工具二:Dex2Jar-2.0

鏈接:https://pan.baidu.com/s/1amBXR0gsMrgPoR9_80xMFA 
提取碼:7dkm 

工具三:jd-gui.exe

鏈接:https://pan.baidu.com/s/1VOrx_mmPEy1-ccmVrN8JLA 
提取碼:rq8l

二、反編譯源碼篇(注意:這裏要確保apk沒有加固過)

2.1、我這裏準備一個待反編譯的apk,修改成rar或者zip格式,解壓後如下圖所示(注意:這裏的res中的資源都是亂碼的,無法看懂的;另外注意到有一堆classes.dex文件,這個就是待會兒要將dex轉化成jar的文件了):

2.2、進入工具dex2jar的文件中,按住shift+鼠標右鍵,選擇在此處打開命令行。然後將上圖的dex文件拷貝到dex2jar文件中,執行如下命令(成功後會生成下圖空框所示的classes-dex2jar.jar文件):

d2j-dex2jar.bat classes.dex

 

2.3、最後使用jd-gui.exe打開上圖生成的jar文件查看源碼即可。(這裏說一下,如果上兩個結果失敗出問題的話,請首先確保使用最新的工具包apktool和dex2jar試一次,還不行的話就去google。注意這裏將的前提針對沒有加固的apk) 結果展示如下圖:

三、反編譯資源篇

使用apktool工具,將要反編譯的apk放入該工具目錄下。執行如下命令(生成的結果如下圖;注意這裏的res資源就可以正常顯示了,同時生成的是smali文件):

apktool.bat d -f cloud.apk -o cloud

最後:如果你想修改裏面的代碼內容的話,可以使用java2smali工具在AndroidStudio中完成,然後替換掉apktool生成的原始smali文件即可。然後使用apktool重新打包,簽名,對齊後安裝即可。其中最重要的步驟就是找到源碼,然後修改成自己想要的,然後生成smali替換原來的smali文件。下面推薦一個博文看一下如何重新打包等。反編譯及重新打包

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章