一步步教你Android反編譯

前言

反編譯已經有不少大佬寫過了,我這裏又寫了一遍。一是但願可以更加的通俗易懂,讓沒接觸過反編譯的小夥伴能java

夠快速入手。二也是但願本身可以更加的牢記,就像是筆記同樣。但願你們可以多多支持。git

工具介紹

  1. Android反編譯通常會用到三個工具。apktooldex2jarjd-gui
  2. apktool將xml資源文件反編譯成能夠查看。並把class.dex文編譯成了能夠smali文件。smali具體是什麼我也不太清楚,上網查說是底層java虛擬機讀的語言。
  3. dex2jar將class.dex文件轉換成jar包的工具
  4. jd-gui能夠讀取jar包的工具
  5. 工具地址: 「 https://github.com/13046434521/-」

實例

這裏咱們以某TV爲例。由於我的想寫一個直播視頻的Demo,但是沒有數據,因此只能用fiddler去攔截請求。但是發現並無直接把地址直接寫在返回的請求裏。我的猜想是把返回的數據,拼接成了播放地址。這裏咱們反編譯試一下。github

1.apktool:

  • 咱們將apk文件解壓。這樣咱們就能獲得該apk的資源文件以及class.dex文件即源代碼。

解壓


  • 這樣咱們就獲得了圖片。可是咱們打開AndroidManifest和layout佈局這些xml格式的文件就會發現,全是亂碼。我要是想看這個Apk的佈局怎麼寫的該怎麼辦呢。這時候就用到apktool了。將咱們要反編譯的apk文件放進apktool的文件夾方便一會用到。 打開dos窗口,進入apktool界面。apktool d 文件名.apk

apktool


  • 這樣咱們就獲得了編譯好的文件了。這時的xml文件已經能夠查看了,而不是亂碼了 。

反編譯完成.png

2.dex2jar:

將classes.dex文件翻入dex2jar的文件夾。輸入圖中的命令,就可獲得圖中的jar文件,即源代碼。 工具

jar文件

3.jd-gui:

將jar文件,經過jd-gui打開便可看到源代碼。 佈局

源代碼

結尾 :

反編譯出來的代碼有可能,有a,b,c這種代碼,那是由於打包的時候加了混淆,防止反編譯。ui

反編譯就說到這裏了,感受排版有點亂。各位大大就湊合來吧。我去看他的源碼去了。3d

喜歡的點個關注唄,大家的關注就是我最大的動裏。code

仍是那句話,風力雨裏在這裏等你。感謝各位,但願你們共同進步,3Q。cdn

(另外加句題外話,我發現有的公司喜歡把圖片放到drawable裏而不是mipmap裏。好比我反編譯的這個項目就是。不知道大家喜歡放到哪兒。)視頻

相關文章
相關標籤/搜索