關於Android APK反編譯
關於Android APK反編譯的探索
注意:本文所講反編譯僅限學習程式碼和研究,不得用來非法破解軟體侵權。特此宣告!
近幾年學Android應用開發的越來越多了,既然Android也是用Java開發的應該能反編譯從而得到原始碼。經過一番查詢加上測試真解決了這個問題。
首先將apk檔案,用winrar解壓縮軟體開啟,把其中的classes.dex取出來複製到軟體dex2jar解壓縮的目錄裡
一、反編譯Apk得到原始碼方法的步驟:
首先要下載兩個工具軟體:dex2jar和JD-GUI
前者是將apk中的classes.dex 轉化成Jar檔案,而JD-GUI是一個反編譯工具,可以直接檢視Jar包的原始碼。以下是下載地址:
dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
1.執行CMD,或者在DOS裡執行:
dex2jar.bat classes.dex
這樣就生成 classes.dex.dex2jar.jar
生成jar檔案的後目錄截圖如下:
2.這個檔案用JD-GUI軟體裡執行jd-gui.exe就可以開啟,看到原始碼了!
二、反編譯apk生成程式的原始碼和圖片、XML配置、語言資源等檔案
如果用來只是漢化軟體,這對您將特別有用。
首先還是下載工具,這次用到的是apktool
下載地址:http://code.google.com/p/android-apktool/downloads/list
下載:apktool1.4.3.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(兩個包都下載)
過程:
將下載的兩個包解壓到同一個資料夾下,應該有三個檔案:aapt.exe,apktool.bat,apktool.jar
在命令列轉到到apktool.bat所在資料夾,輸入以下命令:apktool d E:\xx.apk E:\xx資料夾,如下圖:
命令列解釋:apktool d [apk檔案 ] [輸出資料夾]
AndroidManifest.xml等等都在這個資料夾中,開啟看就可以了。
這個工具還可以打包。當您把檔案更改以後再組裝成APK時候用用到了。
命令列解釋:apktool b [apk檔案 ] [輸出資料夾]
輸出的資料夾一般為C盤裡能找到那個.APK檔案。
123
既然這些破解都這麼容易,那麼應用開發的程式設計師怎麼保護自己呢?Google似乎也發現了這個問題,從SDK2.3開始在android-sdk-windows/tools/下面多了一個proguard資料夾,proguard是一個java程式碼混淆的工具,通過proguard,反編譯經過程式碼混淆的apk得到的程式碼別人即使反編譯你的apk包,也只會看到一些讓人很難看懂的程式碼,從而達到保護的作用。
相關文章
- Android Apk反編譯系列教程(一)如何反編譯APKAndroidAPK編譯
- android 反編譯APK取原始碼。Android編譯APK原始碼
- Android Apk反編譯系列教程(二)APK重打包AndroidAPK編譯
- Android APK反編譯技巧全講解AndroidAPK編譯
- Gluon 編譯 JavaFx -> android apk編譯JavaAndroidAPK
- Android Apk反編譯系列教程(三)Android Studio除錯smali程式碼AndroidAPK編譯除錯
- 使用AndroidKiller進行APK反編譯AndroidAPK編譯
- android 反編譯Android編譯
- Android Apk 檔案反編譯和重新打包的過程分析AndroidAPK編譯
- android反編譯相關命令總結Android編譯
- Android 反編譯指南Android編譯
- Android開發:APK的反編譯(獲取程式碼和資原始檔)AndroidAPK編譯
- MacOS X APK 最新版本 反編譯MacAPK編譯
- 反編譯Android APK詳細操作指南[ApkTool,dex2jar,JD-GUI](Mac)編譯AndroidAPKJARGUIMac
- mac上Apk反編譯工具合集整理與資源MacAPK編譯
- 爬蟲app資訊抓取之apk反編譯抓取爬蟲APPAPK編譯
- apkTool---一個簡單好用的apk反編譯工具APK編譯
- Android反編譯工具Apktool淺析Android編譯APK
- Android的反編譯(佈局植入篇)Android編譯
- QT5.12.2部署Android環境和編譯apkQTAndroid編譯APK
- MAC使用APKTool反編譯apk修改版本號後重新打包MacAPK編譯
- Java編譯與反編譯Java編譯
- APK編譯及安全防護APK編譯
- Android反編譯和微信機器人初探Android編譯機器人
- Android去掉/混淆Log,反編譯都看不到Android編譯
- apk decompile 線上反編譯工具-toolfk程式設計師線上工具網APKCompile編譯程式設計師
- android dtbo.img和dtb.img dtc反編譯Android編譯
- Android反編譯 檔名或擴充名太長Android編譯
- Java 反彙編、反編譯、volitale解讀Java編譯
- java反編譯工具Java編譯
- Eclipse配置反編譯Eclipse編譯
- Android 反編譯初探 應用是如何被注入廣告的Android編譯
- libusb android ndk編譯--編譯mipsAndroid編譯
- c#程式反編譯C#編譯
- 反編譯系列教程(上)編譯
- 反編譯系列教程(中)編譯
- 小程式反編譯教程編譯
- android編譯方法Android編譯
- Assimp Android 編譯Android編譯