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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

APP渗透测试-----APK反编译

發布時間:2024/3/24 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 APP渗透测试-----APK反编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本系列文章旨在對于有一定網絡安全基礎的人員,在日常工作中對APP進行安全測試,請勿應用非法途徑。


一、準備必要工具

工欲善其事,必先利其器,首先我們要下載好反編譯apk時需要的相關工具

1.1、使用工具

1. apktool (資源文件獲取) 2. dex2jar(源碼文件獲取) 3. jd-gui (源碼查看)

1.2、工具介紹

apktool
  作用:資源文件獲取,可以提取出圖片文件和布局文件進行使用查看。

dex2jar
  作用:將apk反編譯成java源碼(classes.dex轉化成jar文件)。

jd-gui
  作用:查看APK中classes.dex轉化成出的jar文件,即源碼文件。

1.3工具下載

apktool下載地址:
  https://bitbucket.org/iBotPeaches/apktool/downloads

下載好之后得到一個如下圖所示的jar文件:

dex2jar下載地址:
  http://sourceforge.net/projects/dex2jar/files/

下載完成之后,得到一個如下圖所示的壓縮包:
 jd-gui下載地址:
   http://jd.benow.ca/
 下載完成之后,得到一個如下圖所示的壓縮包:
到此,需要使用到的3個相關工具都下載好了,在這里說明一下jd-gui的下載,從官方網站上點擊下載時會經常出現如下圖所示的問題


  但是多試幾次又可以下載了,所以如果有遇到這個問題的朋友們不妨多試幾次,或者從別的地方下載jd-gui,jd-gui算是做Java開發的一個必備工具了,用它來將class反編譯成java源代碼是非常方便的,網上搜索一下一般都可以下載到,只不過版本不一定是最新的。

二、Apk反編譯流程

為了方便進行反編譯,我們將上述下載好的3個工具統一放到一個文件夾中,例如:
 
  然后將【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分別解壓到當前文件夾,如下圖所示:

2.1、使用apktool反編譯apk得到圖片、XML配置、語言資源等文件

進入CMD命令行,如下:
   
切換到上述的3個工具的所在目錄,如:E:\AndroidDevelopTool\Android反編譯工具包

 接下來我們要做的就是運行apktool_2.0.1.jar這個jar文件來將apk文件進行反編譯,在java中,運行可執行jar包的命令是:

java -jar jar包名.jar

使用如下的命令運行apktool_2.0.1.jar反編譯MMTS-release-1.0.2.apk

java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反編譯工具包\測試apk\MMTS-release-1.0.2.apk -o MMTS

這個命令是啟動apktool_2.0.1.jar將位于【E:\AndroidDevelopTool\Android反編譯工具包\測試apk\】目錄下的"MMTS-release-1.0.2.apk"這個apk反編譯,然后將反編譯生成的文件存放到當前目錄(apktool_2.0.1.jar所在的目錄,也就是"E:\AndroidDevelopTool\Android反編譯工具包"目錄)下的一個【MMTS】文件夾中。這個文件夾的名字是可以隨便取的,喜歡叫啥都行。
  
  執行反編譯操作:
 反編譯成功后,會在當前目錄(E:\AndroidDevelopTool\Android反編譯工具包)下生成一個MMTS文件夾,打開MMTS里面就有反編譯后生成的文件,如下圖所示:

打開MMTS文件夾,就可以看到反編譯后的生成的文件,如下圖所示:

生成的文件和文件夾當中,我們關心的是【res】文件夾中和AndroidManifest.xml文件,打開res文件夾,里面就有我們想要看到的東西了,如下圖所示:


 想查看哪個xml文件就使用文本編輯器打開看看吧,反正全部都可以看到了。以上就是使用apktool這個工具將一個apk反編譯得到圖片、XML配置、語言資源等文件的過程。

2.2、使用dex2jar反編譯apk得到Java源代碼

將要反編譯的APK后綴名改為.rar或者 .zip,并解壓,得到其中的classes.dex文件(它就是java文件編譯再通過dx工具打包而成的),如下圖所示:

將獲取到的classes.dex放到之前解壓出來的工具【dex2jar-2.0】文件夾內,如下圖所示:

在命令行下定位到dex2jar.bat所在目錄,輸入"d2j-dex2jar classes.dex",效果如下:

命令執行完成之后,在當前目錄下就可以看到生成的Jar文件了,如下圖所示:

反編譯classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具將class文件反編譯成java源代碼了。

使用jd-gui打開classes-dex2jar.jar就可以看到源代碼了,如下圖所示:

 JD-GUI雖然可以將class反編譯成java源代碼,但是對于一些被混淆過的class,反編譯的效果就不是那么理想了,被混淆過的class反編譯后的效果圖(類文件名稱以及里面的方法名稱都會以a,b,c…之類的樣式命名):

以上步驟是親自實踐過之后一步步整理出來的,對照著做應該不會有太大問題。

三、Apk反編譯注意問題

3.1、apktool版本太舊導致反編譯失敗的問題

之前用過了apktool這個工具的一些舊版本,發現總是反編譯不成功,在執行反編譯時會出現如下錯誤:

Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file


 這個問題是因為apktool版本過低導致,而解決這個問題的辦法就是使用最新版本的apktool就可以了,
最新版本的下載地址:https://bitbucket.org/iBotPeaches/apktool/downloads

3.2、apktool執行反編譯命令出現”Input file was not found or was not readable"的問題

這個問題是因為apktool升級到2.0以上時,使用方式已經替換,
 格式為:

apktool d [-s] -f <apkPath> -o <folderPath>

好了,關于反編譯apk的內容就這么多了。
  最后,給大家分享下載好的那三個相關工具,
   下載地址:
    鏈接: https://pan.baidu.com/s/1x4DubTiaF5iLL8bo9kgN-A
    提取碼: 4w4i


轉載自:Android開發學習總結(六)—— APK反編譯

總結

以上是生活随笔為你收集整理的APP渗透测试-----APK反编译的全部內容,希望文章能夠幫你解決所遇到的問題。

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