close
2.反編譯:把APK反編譯得出java原始碼 3.反反編譯:顧名思義讓你的程式碼編譯後的APK讓人不好破解,就算反編譯出程式碼也不易看懂 ================================= 1.編譯(eclipse為例) 專案右鍵→AndroidTools→Export Signed/Unsigned Application Package 2.反編譯原始碼 a.首先要下載兩個工具:dex2jar和JD-GUI b.首先將要反編譯的apk檔副檔名改成壓縮檔(zip,rar)得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的 解壓縮剛剛下載的的dex2jar,將classes.dex複製到dex2jar.bat所在目錄 c.在cmd下定位到dex2jar.bat所在目錄(cd/d 資料夾路徑) 再打上 dex2jar.bat classes.dex 就會生出一個檔案 classes.dex.dex2jar.jar 也可以把c步驟包成bat檔 每次就不用再進入Dos下打了只要點兩下自製bat 就可以自己生成classes.dex.dex2jar.jar bat可照下面打(把註解去掉//) =============bat D: //dex2jar所在的磁碟 C曹就改C: CD DecompileTool\dex2jar-0.0.7-SNAPSHOT\dex2jar //CD dex2jar資料夾所在目錄 dex2jar.bat classes.dex //不變 =============== d.bc步驟圖解 ![]() e.剛剛下載的JD-GUI壓縮後打開裡頭的jd-gui.exe 再打開剛剛生成的classes.dex.dex2jar.jar 就能看到程式碼了 ![]() 3.反編譯xml等文件 apk中的xml文件被弄成二進制了,沒法瀏覽,利用AXMLPrinter.jar轉換後,可以查看正常的xml文件。 下載AXMLPrinter.jar a.一樣先把要反編譯的apk解壓縮把裡頭的xml檔拿出來 b.打開cmd一樣到AXMLPrinter.jar資料夾根目錄 打上 java -jar AXMLPrinter.jar main.xml > main.txt 即會把main.xml轉成main.txt檔 (不是都一樣打main.xml 要依照你要反編譯的xml檔名.xml ,main.txt是你要輸出的txt名稱叫main 可改 ) 4.反反編譯 Android應用開發者如果遇到自己辛辛苦苦開發的應用可以被別人很輕易的就反編譯出來 應該會超X的吧 Google似乎也發現了這個問題,從SDK2.3開始 只要在project.properties /default.properties 最後加上 一行 proguard.config=proguard.cfg 就OK了 ![]() 我們來看看同一個程式經過反反編譯前後的APK被反編譯之後的樣子 a.未經過反反編譯的APK被破解後 ![]() b.經過反反編譯的APK被破解後 ![]() |
文章標籤
全站熱搜