1. 程式人生 > >apk編譯/反編譯工具baksmali和smali用法及apktool+dex2jar+jd_gui的用法

apk編譯/反編譯工具baksmali和smali用法及apktool+dex2jar+jd_gui的用法

一、apk編譯/反編譯工具baksmali和smali用法

、https://smali.googlecode.com/files/baksmali-2.0.3.jar。利用迅雷新建下載連結可以將其下載下來)

用法如下:首先把baksmali-2.0.3.jarsmali-2.0.3.jar檔案放到android sdk安裝路徑下的tools裡面,把apk用WinRAR解壓並提取classes.dex檔案,也放入tools裡面,然後用命令列,cd tools目錄下,輸入java命令:
java -jarbaksmali-2.0.3.jar -o classout/ classes.dex 

前提是你的path路徑中有你的Java安裝目錄下的bin資料夾路徑,這樣才可以在任意路徑下使用java 命令,還有classout/後要加個空格。

  
執行成功後你會發現tools目錄下多了一個classout資料夾,裡面就是smali型別的檔案,裡面是反編譯出的程式碼,但是不是java程式碼,還是能看出變數和方法的。

我們可以用apktool+dex2jar+jd_gui反編譯apk檔案,來學習人家的架構及介面等。

apktool: 可以解析資原始檔,比如佈局檔案xml等,方便檢視。

dex2jar:可以將dex檔案轉換成jar檔案 用法: 1.將apk檔案字尾改成rar,然後解壓,取出其中的classes.dex,放到任意位置; 2.進入cmd,cd到dex2jar所在資料夾,輸入命令dex2jar.bat %classes.dex所在目錄%\class.dex 3. 命令完成後在%class.dex所在目錄%就會生成jar檔案 jd_gui:能夠將jar檔案反編譯成java程式碼 用法: 開啟jd_gui,然後將jar包拖放到主介面,就可以看到原始碼了。


用jd_gui來看反編譯出的Java程式碼,這樣便於尋找自己想要改的東西,找到後可以到baksmali classout下去修改相應的地方。然後是利用smali編譯回去:
命令如下:

java -jar smali-1.4.1.jar classout/ -o classes.dex
把classout下編譯成classes.dex然後把classes.dex放回apk下覆蓋原來的classes.dex檔案。

二、反編譯Apk得到Java原始碼
首先要下載兩個工具:dex2jar和JD-GUI

前者是將apk中的classes.dex轉化成Jar檔案,而JD-GUI是一個反編譯工具,可以直接檢視Jar包的原始碼。以下是下載地址:

http://jd.benow.ca/

具體步驟:

首先將apk檔案,將字尾改為zip,解壓,得到其中的classes.dex,它就是java檔案編譯再通過dx工具打包而成的;

解壓下載的dex2jar,將classes.dex複製到dex2jar.bat所在目錄。在命令列下定位到dex2jar.bat所在目錄

執行

dex2jar.bat    classes.dex

生成

classes.dex.dex2jar.jar

生成jar檔案的截圖如下:


執行JD-GUI(jd-gui.exe),開啟上面生成的jar包,即可看到原始碼了


三、反編譯apk生成程式的原始碼和圖片、XML配置、語言資源等檔案

如果是隻是漢化軟體,這將特別有用。

首先還是下載工具,這次用到的是apktool

下載地址:http://code.google.com/p/android-apktool/downloads/list(https://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2、https://android-apktool.googlecode.com/files/apktool-install-windows-r05-ibot.tar.bz2。利用迅雷可以快速下載)

具體步驟:

將下載的兩個包解壓到同一個資料夾下,應該會有三個檔案:aapt.exe,apktool.bat,apktool.jar

在命令列下定位到apktool.bat資料夾,輸入以下命令:apktool d C:\*.apk C:\*資料夾,如下圖:


命令列解釋:apktool   d   [apk檔案 ]   [輸出資料夾]

反編譯的檔案如下(AndroidManifest.xml為例):


特別注意:你要反編譯的檔案一定要放在C盤的根目錄裡

將反編譯完的檔案重新打包成apk,很簡單,輸入apktool b c:\***資料夾(你編譯出來資料夾)即可,命令如下:


打包apk後的檔案在目錄C:\HelloAndroid下,生成了兩個資料夾:

build

dist

其中,打包生成的HelloAndroid.apk,在上面的dist資料夾下,Ok


相關推薦

apk編譯/編譯工具baksmalismali用法apktool+dex2jar+jd_gui用法

一、apk編譯/反編譯工具baksmali和smali用法 、https://smali.googlecode.com/files/baksmali-2.0.3.jar。利用迅雷新建下載連結可以將其下載下來) 用法如下:首先把baksmali-2.0.3.jar和

Android Apk編譯加密

打不開 源文件 資源 left 結果 blog 9.png 規則 找到   這幾天在上海出差,忙裏偷閑學習了一下Apk的反編譯工具的基本使用。下面就簡單介紹一下如何將我們從網上下載的Apk文件進行反編譯得到我們想要獲得的資源文件和源碼。 一、Apk文件組成   Androi

使用 apktool 工具對 Android APK 進行編譯與回編譯

原文:https://testerhome.com/topics/12075?locale=zh-TW keytool -genkey -keystore ~/bm.keystore -alias bm -keyalg RSA -validity 10000 jarsigner -v

APK編譯技術

能夠 -a span ack -m tar data- 了解 net APK防反編譯技術 下載地址:地址 我們的APK實際上就是一個ZIP壓縮文件,裏面包括有一個classes.dex,我們編譯後生成的程序代碼就所有在那裏了,通過apktool等工具能夠輕

Android .apk 檔案編譯

要通過對 .apk 檔案進行反編譯得到 java 原始碼,需要如下兩個工具: dex2jar - https://sourceforge.net/projects/dex2jar/ Java Decompiler - http://jd.benow.ca/

使用ApkTool以及dex2jarapk進行編譯-更新異常以及解決方案

使用ApkTool以及dex2jar對apk進行反編譯 相關工具下載地址: 使用ApkTool對apk進行反編譯以及打包 1.下載並解壓ApkTool 在cmd命令列中進入ApkTool的資料夾(win7系統以上快捷鍵為

Android專案打包apkapk編譯,xml的編譯

一、專案打包的一般原理及其缺點 (1)開發一個簡單的專案,釋出的時候為一個APK檔案,如果我們不使用簽名的方式,直接在bin目錄下找到*.apk檔案,很方便,但是我們的使用者在使用的時候,有可能會被其他的程式覆蓋安裝;具體解釋如下: (2)我們新建一個專案Test目錄結構

android 手機 apk編譯

標 題: 【原創】安卓手機下xx.apk JAVA破解之旅作 者: zpsemo時 間: 2012-10-04,11:17:51鏈 接: http://bbs.pediy.com/showthread.php?t=156786 前言:這幾天手機上裝了個軟體,用了沒多久就收費

防止APK編譯

最近專案要打包,就想到了要防止被反編譯,網上呢,教程也有許多,但是我還是直接選擇了一個線上平臺來處理。我用的是騰訊雲的樂固加固,附上地址——http://console.qcloud.com/legu/myapplication/index也就不需要新增什麼keep了。點選上

apk檔案編譯d2j-dex2jar.bat/dex2jar.bat遇到的問題

使用apk反編譯軟體dex2jar與jdgui時,出現了以下兩種情況: I:\Android_decode\APK_decode\dex2jar>dex2jar.bat classes.dex version:0.0.7.8-SNAPSHOT 6 [main] I

修改apk必讀-編譯後的資料夾詳解

反編譯apk得到的幾個檔案和資料夾1。 assets 資料夾此資料夾可以存放資原始檔。至於是神馬資原始檔,怎麼讀取,這些我們就不用深究了,因為不常改。2。 res 資料夾主要用來存放資源。此資料夾下可以建立子檔案,常見的有:anim 動畫drawable 圖片color 顏

android apk 防止編譯技術-加殼技術

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:name="co

編譯+編譯+去掉jd-gui行號

編譯:必要時需要將專案編譯並打成jar包 在Eclipse中該專案上點選右鍵,選擇Export——JAVA——JAR file,一直到finish。 反編譯:使用jd-gui 直接將專案拖到jd-gui工作區間即可,需要修改jar包內容時可以在jd-gui中點選File

抓包工具FiddlerWireshark介紹對比

在測試中,經常需要驗證傳送的訊息是否正確,或者在出現問題的時候,檢視手機客戶端傳送給server端的包內容是否正確,就需要用到抓包工具,而且我們手機客戶端和server端通訊比較常用的是http方式,所以針對其通訊特點,常用的抓包工具有Fiddler、Wireshark這兩種

Apk編譯工具檢視layout java原始碼的工具

首先要準備反編譯三件套,這個在網上應該會有很多 一: 檢視layout        解壓得到apktol.jar 和 apktool.bat 同時把要反編譯的apk也一起存放在當前目錄下 然後開啟控制檯  cmd 定位到當前目錄下

Python-apk安全檢測--編譯資原始檔(Smali)-工具下載環境配置

         說到反編譯,其實也不是太熟(畢竟這個是些個逆向大神做的事情)。但是在測試環節種我們需要獲取到一些基本的反編譯檔案做一些驗證及測試的工作。為了能夠更好的完成工作就只能自己動手啦!          首先我需要確認一下我們需要得到的目標檔案:Smali(常規反

一步一步帶你編譯apk,並教你修改smali重新打包

一、工具介紹: 1.apktool:aapt.exe,apktool.bat,apktool.jar;三個在同一目錄結合使用,用來反編譯apk,apk重新打包; 2.dex2jar:該工具作用是將classes.dex檔案,反編譯出原始碼(如果apk未加固),反編譯出文件

APK編譯二次打包工具方法

文章前言: 對於反編譯如果沒有比較好的Android基礎同時也沒付諸實踐和學習的話,實質上也不能從反編譯的一堆程式碼檔案中,得到有價值的資訊。 例如程式碼都被Android打包成dex檔案,通過這個檔案復原出來問題不大,但大部分的情況是復原後的Java檔案,基本上不

編譯apk工具apk編譯工具Jadx的使用

lib abc 最新版 選擇 dex2jar apk反編譯 elf .apk nbsp Android初學者會使用其他人的apk,這樣能知道別人是如何編寫的,在知道別人是如何編寫的前提下需要一款能實現反編譯軟件,再把軟件反編譯出來查看其中的代碼。 如何使用反編譯apk工具?

APK編譯之二:工具介紹

www 權限 nap 一段時間 rmi 麻煩 -s HR 逆向 作者:lpohvbe | http://blog.csdn.net/lpohvbe/article/details/7983907 前面一節我們說過,修改APK最終是通過修改smali來實現的,所以我們接下來