1. 程式人生 > >Android反編譯apk及常見問題

Android反編譯apk及常見問題

軟體下載地址

獲取原始碼

  1. 獲取dex
    將demo.apk修改後綴為demo.zip並解壓。得到以下檔案:
    解壓apk後得到的檔案
  2. 反編譯dex
    解壓dex2jar至指定目錄,開啟cmd至dex2jar目錄,執行命令 dex2jar.bat 目錄\classes.dex(有些版本中命令不是dex2jar.bat,而是d2j-dex2jar.bat),如圖:
    執行dex2jar命令

可以看到在dex2jar的目錄下生了一個檔案classes-dex2jar.jar
dex2jar生成的檔案

3.反編譯jar檔案,使用JD-GUI檢視原始碼:
解壓JD-GUI檔案,開啟JD-GUI.exe,將上一步生成的classes-dex2jar.jar檔案拖動至JD-GUI視窗,可以看到如下圖,程式碼已經可以檢視
使用JD-GUI檢視原始碼

反編譯xml資原始檔

4.使用apkTool反編譯apk檔案獲取xml
原始碼可以查看了,但是xml檔案開啟還是亂碼,使用另外兩個工具可以反編譯xml檔案。
將工具中的apktool-install-windows解壓,與apktool.jar存放至同一目錄,如圖:
apktool工具資料夾

apktool目錄下執行命令:apktool d [-s] -f <apk路徑> -o <檔案輸出目錄>,如下:

執行apktool命令

demo2資料夾中生成的檔案如下:

apktool命令生成的檔案目錄

打來AndroidManifest.xml或者res中的xml檔案,就不會亂碼啦。

注意事項:

  • 路徑中最好不要有中文、空格和特殊的符號。
  • 工具的版本不用可能會有微小的差異,需要自已辨別。
  • 有些apk使用了proguard,畢竟大家都不想自己的東西隨便被人拿走,這種apk並不能完全被反編譯,反編譯出來後的程式碼如圖:
    混淆過得apk原始碼
    可以看到程式碼中的包名、類名、方法名都變成了a、b、c等,比較影響閱讀。

常見問題:

  • apkTool報錯 : Error: Unable to access jarfile \xx\apktool.jar
    1. 確保命令中的路徑正確,最好無中文和空格
    2. 確保檔案中夾中包含apktool.jar (即使是apktool2.0.jar也要改成apktool.jar)
  • Input file was not found or was not readable.
    通常是apktool版本問題,如果你使用的命令是apktool d <apk路徑> <輸出目錄>,
    請試一下apktool d [-s] -f <apk路徑> -o <輸出目錄>。
  • Destination directory (C:\Users\user\a) already exists. Use -f switch if you want to overwrite it.
    根據提示可以知道使用 -f 覆蓋已存在的目錄就可以了。當然也可以指定其他目錄。
  • Exception in thread “main” brut.androlib.AndrolibException: Could not decode ars c fil……….
    apktool版本過低,升級即可。

相關推薦

Android編譯apk常見問題

軟體下載地址 獲取原始碼 獲取dex 將demo.apk修改後綴為demo.zip並解壓。得到以下檔案: 反編譯dex 解壓dex2jar至指定目錄,開啟cmd至dex2jar目錄,執行命令 dex2jar.bat 目錄\classe

【轉】Android編譯apk修改版本號重簽名流程

最近突然有個需求,將很久前的某個版本重新發布到線上,經過長時間的迭代,gradle plugin的變遷以及外掛化和模組遠端依賴導致專案結構發生了巨大的變化,想要直接找回某個版本的程式碼成功的執行起來比較困難,不過還好只是修改版本號以及渠道,所以想到了直接使用反編譯改完之後再回編的方式。這篇文章主要是記錄一下整

Android編譯apk逆向分析

Android反編譯apk 反編譯、逆向 軟體下載地址 反編譯、逆向 反編譯 高階語言源程式經過 編譯 變成可執行檔案,反編譯就是逆過程。   但是通常不能把可執行檔案變成高階語言原始碼,只能轉換成彙編程式。   計算機

Mac 上 android 編譯apk完整流程

總結的反編譯流程,檢視如下流程: 工具介紹來看看唄(3個) apktool 將apk安裝包解析成能看懂的資原始檔dex2jar 將classes.dex打成jar包jd-gui 檢視原始碼 步驟:(其實windows下差不多) 1. 開啟你的終端(cmd),輸入c

Android 編譯APK

一、反編譯工具:     apktool (反編譯資原始檔)、dex2jar(反編譯classex.dex生成jar檔案)、jd-gui(檢視原始碼) 二、反編譯操作:     1.反編譯資原始檔cmd指令:java -jar apktool_2.3.4.j

Android 編譯APK,破解APK

學習和開發Android應用有一段時間了,今天寫一篇部落格總結一下Android的apk檔案反編譯。我們知道,Android應用開發完成之後,我們最終都會將應用打包成一個apk檔案,然後讓使用者通過手機或者平板電腦下載下來進行安裝。正常情況下,Android應用打包成apk

android編譯apk後,java檔案中出現的一些類似亂碼的問題

概述 java class  反編譯之後,偶爾回碰到一些不正常的程式碼 例如: label0 :_L1 MISSING_BLOCK_LABEL_30 JVM INSTR ret 7 JVM INSTR tableswitch 1 3: default 269、 JVM I

android編譯APK後,是smali檔案,能編譯成dex檔案

我也面臨相同的問題,但目前還沒找到類似反編譯smali檔案的方法,一般得到dex檔案只需要用WinRAR或其他壓縮軟體開啟apk檔案就能得到。但也有例外好像,技術先進了,今天遇到個apk用WinRAR開啟異常,沒有dex檔案,所以得到原始碼的計劃就泡影了,至少用目前常規的方

Android 編譯APK詳解

1.反編譯工具:下載 1.1 apktool:反編譯資原始檔 1.2   dex2jar-2.0:反編譯java程式碼 1.3   apk檔案:待反編譯的檔案 2.反編譯流程: 2.1 反編譯資原

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

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

Android Cocos2dx引擎 prv.ccz/plist/so等優化緩存文件,手把手ida教你逆向project編譯apk庫等文件

反編譯 packer ng- ace yaffs2 ces spa 即將 放棄 前段時間在 Android play 上看到一個非常牛逼的 3D 動態天氣預報,效果真的非常炫。二話不說動手 dex2jar.bat/apktool 發現這並沒 有什麽卵用,在核心的地方看見

Android 如何編譯APK獲取原始碼

前言:  這段時間,對Apk 進行了混淆處理。又想起之前學的一點皮毛(反編譯apk)。 一.想回顧一下反編譯是怎麼進行反編譯的。自己總結的。總比看別人的要更讓自己容易理解。 二.想看看自己的混淆啟

Android簡單的編譯Apk並重新打包,簽名釋出

本文簡單介紹apk是如何修改logo(ic_launcher),類似的資原始檔修改也可以通過此方式。不過要修改class的話就要涉及到smali的學習了,這裡就暫且不談,後續有需要再做更新。 一、工具介紹: apktool:用來反編譯apk,apk重新打包

android 如何編譯apk檔案

我們都知道將apk解壓後我們能用的資源只有圖片了,或者是raw資料夾下的資源。 如何我們想要看看xml,看java原始碼,是看不了的,都是二進位制檔案。 好了,現在我們明確了我們的目標,有兩個,第一是看xml檔案,第二是java原始碼。 因此反編譯apk檔案也是分這兩個階段

Android Cocos2dx引擎 prv.ccz/plist/so等優化快取檔案,手把手ida教你逆向工程編譯apk庫等檔案

前段時間在 Android play 上看到一個很牛逼的 3D 動態天氣預報,效果真的很炫,二話不說動手 dex2jar.bat/apktool 發現這並沒 有什麼卵用,在核心的地方看見 native

android編譯odex文件

lis 目錄 trac 依賴 andro xheditor span sys 放置 關於android的反編譯工具,相信大家並不陌生 如APK-TOOL,dex2jar APK-TOOL 用於反編譯出布局文件 下載地址http://code.google.co

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

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

編譯APK得到布局文件

bsp .net itl 得到 布局 文件 net androi detail  下載反編譯工具:     apktool:http://ibotpeaches.github.io/Apktool/   命令:java -jar apktool.jar d yourApkF

編譯apk 修改 合成

bsp ani 一份 打開 nco 目錄 後綴 clas XML 韓夢飛沙 韓亞飛 [email protected]/* */ yue31313 han_meng_fei_sha 反編譯apk幫助文檔 準備工具 dex2jar(dex轉換jar工具)

android編譯

adbc nsh cef vfs weixin 反編譯 target get blank 轉自這位老鐵:https://www.jianshu.com/p/f5fadbc7d2f8 https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2M