反編譯軟體搜不到代碼
1.下載反編譯工具
需要下載四個工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:將apk中的classes.dex轉化成Jar文件。
JD-GUI:反編譯工具,可以直接查看Jar包的源代碼。
apktool:反編譯工具,通過反編譯APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:輔助windows批處理工具。
下載地址:
dex2jar:http://code.google.com/p/dex2jar/downloads/list
JD-GUI:http://code.google.com/p/innlab/downloads/lis
apktool:http://code.google.com/p/android-apktool/downloads/list
工具截圖:
2.解壓縮APK包
apk文件也是一種常見的zip,常用的壓縮軟體就可輕松地解壓apk文件。用壓縮軟體將apk文件中的文件解壓到一個文件夾中,得到APK中的資源包括XML文件和classes.dex文件,classes.dex就是java文件編譯再通過dx工具打包而成的。
解壓截圖:
3.反編譯dex文件
解壓apk文件後,你會發現res目錄的圖片沒有加密,但java源碼編譯成了一個classes.dex文件,無法用普通的反編譯class文件的方法來處理,dex2jar可以將dex文件轉換成普通的jar包。
解壓下載的dex2jar,把解壓後的文件夾放到系統盤跟目錄中並把這個目錄加到系統path變數中,就可以直接用:dex2jar.bat或dex2jar.sh轉換dex文件了。
DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路徑)。
將在同目錄得到普通jar包:classes_dex2jar.jar,就可以用處理普通jar包的方法來反編譯這個jar包得到原文件。
編譯截圖:
生成jar文件的截圖如下:
4.反編譯jar包
得到jar包後,下載自已喜歡的反編譯工具,推薦使用JD-GUI,有比較簡單的圖形界面,可以反編譯單個class文件,也可以反編譯jar包,比較方便。
打開壓縮文件JD-GUI,運行jd-gui.exe,打開上面生成的jar包,即可看到源代碼了。
截圖如下:
5.反編譯xml文件
打開解壓的res\layout目錄,有很多xml文件,如果你想看下作者是如何設計界面的,你會很失望,因為你看到的是一大堆亂碼!這個時候我們需要用到的是apktool。
具體操作方法:將下載的apktool和apktool-install-windows-r05-ibot兩個包解壓到同一個文件夾下,這個文件夾有三個文件:aapt.exe,apktool.bat,apktool.jar。把這個文件夾也放到系統盤的根目錄中並把這個目錄加到path變數中。以HelloWord.apk為例:
在DOS命令行中輸入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夾,此文件夾中的xml文件就是編譯好的可以正常查看的文件。
這樣就得到了可以得到編譯的源碼和XML資源。
注意:文件的路徑中最好不要出現中文!
http://jingyan..com/article/dca1fa6fbe140ef1a4405212.html
2. android項目反編譯後找不到R.class
反編譯後肯定找不到。
解釋:反編譯後,class文件已經變為java文件了,所以肯定是沒辦法找到的。
備註:反編譯工具都是針對的已經編譯好的class文件,備注等內容是沒辦法被還原的,再就是反編譯結果並不一定是源碼的頁面展示樣式,代碼順序可能有變動。
3. 反編譯apk文件,得到其源代碼的方法…………急急
win+r鍵,輸入cmd回車(如果是win7,開始-輸入cmd搜索,出現cmd.exe右鍵以管理員運行)彈出的命令框輸入dex2jar.bat所在的盤的盤符+冒號如(f:)括弧內為輸入內容回車,接著輸入cd+dex2jar.bat所在的文件夾名(看你的圖片文件夾名為d)cd d回車,接著可以使用dex2jar.bat命令了(輸入dex2jar.bat classes.dex 回車就得到您最後說的「
運行 dex2jar.bat classes.dex
,生成classes.dex.dex2jar.jar」
」了
4. 反編譯後回編找不到生成的apk文件
你用什麼進行的反編譯呢?如果是apktool的話,你檢查一下回編譯的命令。
如果是是其他軟體,例如 apktool-gui的話,你可以直接到目錄下進行查找。
同時,如果提示你回編譯成功,你搜索一下apk文件,看是否能找到。
請採納,謝謝~~有問題繼續溝通~~
5. 經過360加固的安卓程序該如何破解反編譯後什麼代碼都找不到
1)APKtool 2)dex2jar 3)jd-gui 4)簽名工具 相關技術的基本要求 1)具有一定的閱讀JAVA代碼的能力 2)稍微有點Android基礎,越多越好 3)會用eclipse的一些Android調試的相關工具 4)了解一下smali的語法規范和欄位的自定范圍 5)有點應變能力思想轉換能力、 6)雖然代碼的修改是修改其smali文件(用到smali語法),雖然其語言是非常復雜的,但是我們能夠變通就行了,但是要求了解一下smali的語法規范和欄位的自定范圍。 了解以上方法可以非常簡單破解Android APK,破解後,應用里的頁面布局、代碼邏輯、結構演算法等都能一目瞭然。所以為了避免被他人,尤其是競爭對手了解到這些,防破解和反編譯尤為重要。我試過代碼混淆,但是代碼混淆只是對類名進行了變換,增加了破解者的閱讀難度,並不能真正阻止反編譯工程。下面是進行過代碼混淆的APK代碼結構,能看到只是對類名做了變換,變成a、b、c等這樣的名稱。但是仍然可以進行反編譯。 後來又嘗試使用360加固保對APK進行加固保護,發現原有的代碼程序被隱藏起來了,沒法再進行反編譯工作。 所以作為移動應用開發者,適當了解一些破解和反編譯工作有利於保護自己的應用安全。如果不防患於未然,一旦出現盜版情況,那麼你的APP很可能從此被市場所拋棄。