導航:首頁 > 源碼編譯 > 安卓版反編譯軟體Jadx

安卓版反編譯軟體Jadx

發布時間:2022-11-22 00:55:17

1. 安卓apk文件如何反編譯

安卓apk文件反編譯:
一、反編譯xml文件
1>
首先下載我給你們提供的文件夾apk_fanbianyi,把它放到某個盤的根目錄下(為了方便輸入dos命令),然後打開apktool文件夾,安裝win+r鍵,然後輸入cmd,進入dos命令行,大家別怕,不用暈,很簡單的。
2>
然後在dos命令中首先輸入文件夾所在盤符+「:」回車,接著再輸入cd+apktool所在目錄,切換dos工作空間到apktool文件夾下。
3>
接著輸入
apktool.bat
d
【需反編譯apk文件路徑】
{【反編譯文件反編譯後的路徑】},其中最後一部分可以省去,系統會默認把apk文件反編譯到apktool目錄下,例如輸入
apktool.bat
d
d:/apk_fanbianyi/ttkp.apk,在apktool文件夾下就會生成一個ttpk的文件夾,所有的xml文件全部反編譯成功。
二、反編譯java文件
1>
首先解壓需要反編譯的apk文件,拷貝出裡面的classes.dex文件到dex2jar文件夾(為了方便操作,省去dos命令輸入路徑的麻煩)
2>
把工作空間切換到dex2jar文件夾下,輸入命令cd
d:/apk_fanbianyi/dex2jar回車
3>
輸入命令dex2jar.bat
classes.dex回車,發現dex2jar文件夾下多了一個classes_dex2jar.jar文件,這是反編譯成功的java文件
三、xml文件的打開
1>
打開apktool文件夾下的ttkp文件夾,任意找到一個xml文件,選中單擊右鍵,選擇notepad++打開(需下載),如果沒有此軟體,可以選擇打開方式,選擇記事本打開
四、java文件的打開
1>
dex2jar文件夾下的classes_dex2jar.jar拷貝到apktool文件夾的ttkp文件夾中,不能用notepad++打開,不然會亂碼的
2>
啟動apk_fanbianyi文件夾下的jd-gui.exe,然後點左上角file,選擇open
file,找到classes_dex2jar.jar文件,可以發現有很多包,選擇包下的任意一個java文件,打開不亂碼了,是不是很神奇,哈哈,你學會了安卓apk文件反編譯

2. JAVA反編譯軟體

由於JAVA語言安全性高、代碼優化、跨平台等特性,從1995年5月由SUN公司發布後,迅速取代了很多傳統高級語言,占據了企業級網路應用開發等諸多領域的霸主地位。
不過,JAVA最突出的跨平台優勢使得它不能被編譯成本地代碼,而要以中間代碼的形式運行在虛擬機環境中,這使得JAVA的反編譯要比別的高級語言容易實現,並且反編譯的代碼經過優化後幾乎可以與源代碼相媲美。
為了更好地保護知識產權,避免本公司的智力成果輕易被人竊取,開發者有必要對反編譯工具深入了解,以便有針對性地採取保護措施。
目前,比較流行的JAVA反編譯工具有近30種,其中有三款堪稱精品:
一、 應用廣泛的JAD
在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI』s Java Class Viewer和國產的JAVA源代碼反編譯專家。
JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD在JAVA反編譯領域中的尊貴地位。
JAD是使用Microsoft Visual C++開發的,運行速度非常快,可以處理很復雜的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由於JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下(以JAD 1.5.8f版本為例):
-d
- 用於指定輸出文件的目錄
-s - 輸出文件擴展名(默認為: .jad),通常都會把輸出文件擴展名直接指定為.java,以方便修改的重新編譯。
-8 - 將Unicode字元轉換為ANSI字元串,如果輸出字元串是中文的話一定要加上這個參數才能正確顯示。
最常用的反編譯指令如下所示:
Jad –d c:\javasource –s .java -8 javatest.class
這條指令將當前目錄下的javatest.class反編譯為javatest.java並保存在c:\javasource目錄里,其中的提示輸出為中文,而不是Unicode代碼。

二、 源碼開放的JODE
JODE是全球最大的開源項目網站Sourceforge.net的成員,在所有的JAVA反編譯器中,JODE的反編譯效果是最好的,尤其是對付一些常見的加密手段,例如混淆技術等,更是出類拔粹。
JODE本身也是純JAVA開發的,最近越來越多的JAVA反編譯軟體也選擇JODE來做它們的核心引擎,例如JCavaj Java Decompiler、BTJ (Back To Java)、jEdit』s JavaInsight plugin等。
JODE是一個可運行的JAR文件,在windows環境下雙擊即可運行。
需要特別說明的是,JODE不是通過常規的Open->File的方式來載入JAVA編譯後的類文件(*.class)或是類包(*.jar)的, 而是通過在Options菜單中的Set Classpath來實現的,單獨的類文件可以將它的上一級目錄作為Classpath輸入,然後再選擇Reload Classpath即可。
新加入的類包或是類的名字會在左側窗口出現,雙擊類包名可以展開目錄樹結構,雙擊需要反編譯的類名則在右上角的窗口中直接顯示反編譯後的源代碼。

三、 獨樹一幟的DAVA
DAVA不是一個獨立的JAVA反編譯器,而是JAVA代碼優化工具Soot的一部分。Soot和JODE一樣是純JAVA開發的,也是一個獨立的JAR包,但卻不能通過雙擊直接運行,而是象JAD一樣在命令行狀態運行。
Soot對環境變數的配置要求非常嚴格,通常情況下要對CLASSPATH做如下設置:
Set CLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.;
其中的c:\sootdir\是下載的soot類包放置的路徑,CLASSPATH末尾的.;代表了當前目錄,如果不加上這個的話Soot經常會報一個找不到類的錯誤。
DAVA是作為Soot的一個參數使用的,通常的用法如下:
Java soot.Main –f dava –d c:\javasource javatest
注意最後的類名不用帶.class後綴,因為它默認是處理class文件,這個操作與前述的JAD的參數效果相同。
DAVA採取了流程優化的方式進行反編譯,與傳統反編譯思路不盡相同,但卻對改變流程類的加密方法有獨特的反編譯效果。
上述的三種工具各有千秋,但效果都非常不錯。經測試,它們基本上都可以把JDK自帶的一些常式完全反編譯,然後不加任何修改可再編譯成功,並能正常運行!

3. jadx反編譯後可以重新打包嗎

1、首先新建一個android項目,裡面只有一個MainActivity,而且主界面只會顯示一個字元串:你好。

2、接著,切換到這個項目生成的apk文件所在的目錄,可以看到有一個hellodemo.apk。

3、在命令行輸入:apktool d -r hellodemo.apk。可以看到在當前目錄下生成了一個hellodemo文件夾。

4、進入到hellodemo\smali\com\example\hello,打開MainActivity.smali。找到:
const-string v1, "\u4f60\u597d",
修改為:
const-string v1, "hello",

5、然後在命令行輸入:apktool b hellodemo hellodemo1.apk。這回重新打包成hellodemo1.apk。

6、然後給新生成的apk進行簽名。把這個apk拷貝到autosign的目錄下面,然後切換過去,在命令行輸入:java -jar signapk.jar testkey.x509.pem testkey.pk8 hellodemo1.apk hellodemo.apk。

7、把生成的hellodemo.apk安裝到手機,可以看到主界面上已經顯示的是hello,而不再是你好。說明反編譯重新打包成功!

4. android apk反編譯軟體哪個好用

Android反編譯的目的無非就是為了看到APK的xml、資源和代碼:

得到代碼的方式:直接解壓APK文件 --> 得到classes.dex文件 --> 使用 dex2jar
classes.dex classes.jar生成jar文件 --> [可選的解壓jar文件]
-->使用XJad或者JDCompiler查看源代碼

得到XML的方式:

方式1:直接解壓APK文件 --> 通過axmlprinter工具查看XML文件(這種方式查看的XML文件的id都是數字--即R文件中id對應的值)

方式2:使用APKTool工具解壓APK文件可以直接查看XML文件

Android反編譯常常使用如下的一些工具:

1、反編譯命令:

apktool d D:\\Developer\androidDecode\Test0201.apk D:\\Developer\androidDecode\test0201

D:\\Developer\androidDecode\Test0201.apk:要反編譯的APK文件

D:\\Developer\androidDecode\test0201:反編譯文件的保存目錄,必須為空目錄

2、從反編譯的文件編譯成APK apktool b D:\\Developer\androidDecode\test0201 D:\\Developer\androidDecode\test020101.apk

D:\\Developer\androidDecode\test0201:保存編譯後文件的目錄

D:\\Developer\androidDecode\test020101.apk:生成的新的APK文件的保存的絕對路徑

3、簽名APK文件:

singedAPK.bat文件

java -jar "%~dp0signapk.jar" "%~dp0testkey.x509.pem" "%~dp0testkey.pk8" %1 signed.apk

執行singedAPK.bat命令

singedAPK D:\\Developer\androidDecode\test020101.apk 生成一個singed.apk文件和test020101.apk在同一個目錄

4、使用baksmali.jar把一個dex文件轉換為一個smali文件

java -jar D:\\Developer\ApkTool\baksmali.jar -o
D:\\Developer\androidDecode\baksmaliout
D:\\Developer\androidDecode\Hello.dex

D:\\Developer\ApkTool\baksmali.jar:baksmali.jar文件所存在的全路徑

D:\\Developer\androidDecode\baksmaliout:生成的smali文件的保存目錄

D:\\Developer\androidDecode\Hello.dex:要轉成smali文件的路徑

5、使用ddx.jar把一個dex文件轉換為ddx文件

java -jar D:\\Developer\ApkTool\ddx.jar -d D:\\Developer\androidDecode\ddxout D:\\Developer\androidDecode\Hello.dex

D:\\Developer\ApkTool\ddx.jar:ddx.jar文件的絕對路徑

D:\\Developer\androidDecode\ddxout:要保存ddx文件的路徑

D:\\Developer\androidDecode\Hello.dex:要轉換的dex路徑

6、Android自帶dexmp工具:dex文件轉為smali文件 dexmp -d xxxx.dex > xxxx.smali

7、dex2jar.jar:dex2jar XXX.dex YYY.jar

5. 推薦幾款在手機使用的apk反編譯軟體

dede 反編譯delphi
depb,pbkill 反編譯pb
vb rezq 反編譯vb
Reflector 反編譯.net
foxtoolsd 反編譯 vf
等等

不要對反編譯期望太大,幾乎沒什麼用,Reflector反編譯不錯,因為是偽代碼,只要沒用混淆器混淆的,代碼幾乎能拿過來使用,
其它的效果不是很理想
在使用過程中,沒遇到什麼需要注意的問題,軟體使用很簡單,就是用了沒多大用,望採納!謝謝!

6. 如何反編譯Android 的apk/dex/odex,獲得源碼

關於APK,DEX的介紹

當我們編譯一個安卓項目的時候,整個項目會被打包成一個 .apk文件。這個文件其實是一個標準的zip文件,因此可以用解壓縮工具打開。這個apk文件一般都包含程序的代碼(在classes.dex文件中), 資源文件, 證書, manifest 文件等。 其中對我們最重要的是classes.dex文件,因為編譯後的位元組碼(bytecode)都是放在這個文件中。我們後面講的反編譯就是針對這個dex文件來的。

反編譯普通的APK文件:

對於普通的APK/DEX文件的反編譯,其實工具有很多, 包括:

7. Mac安裝Jadx反編譯工具

找到編譯好的jadx-gui可執行文件運行
我的Mac目錄:/Users/mac/jadx/build/jadx/bin/jadx-gui

結束~🍺🍺🍺~

8. 求安卓軟體反編譯修改教程

1、baksmali:classes.dex反編譯為smali格式

(smali:smali格式編譯打包為classes.dex,但由於smali格式類似匯編,比較難閱讀,所以用dex2jar進行輔助 )
2、dex2jar:classes.dex轉為jar包
3、jdgui:jar反編譯並閱讀

操作順序:

apk用zip解開,裡面的classes.dex分別用baksmali處理為smali,用dex2jar處理成jar,然後用jdgui看代碼,找好java文件中要改的位置後,在smali里找對應的位置修改,改完了用smali再編譯為classes.dex,覆蓋原來apk里的同名文件,最後重新簽名。注意安裝時要先刪除原來手機里的版本,因為簽名不同。

9. android反編譯工具 jadx 怎麼讀

  1. Android上面的反編譯工具很多,我個人比較喜歡jadx,操作簡單,界面簡潔。

  2. 下載jadx並解壓,點擊「bin」目錄下面的「jadx-gui.bat」文件,出現下圖所示的界面

  3. 選中要反編譯的apk文件後,界面變成下圖所示

  4. 任意點開一個類,我們就可以看到該類的源代碼了

  5. 有的類的變數和方法名都變成了a,b,c,d。。。,如下圖所示

  6. 詳細解答

10. App靜態逆向分析思路淺析(過檢測)

推薦閱讀

福利來啦-優惠券活動

App靜態逆向分析思路淺析(過檢測)

https://blog.csdn.net/u011426115/article/details/121346288

jadx+frida

查看apk是否加殼 (apk未加殼)

搜索root檢測特徵、邏輯,其中Hook ( 如:Xposed、Frida等 )檢測的字元串特徵類似,可以通過jadx、JEB3等反編譯工具快速搜索定位到檢測關鍵點

Hook下面的方法( 使用Xposed、Frida等進行Hook )

com.google.firebase.crashlytics.internal.common.CommonUtils.isRooted

com.google.firebase.crashlytics.internal.common.CommonUtils.isEmulator

com.google.firebase.crashlytics.internal.common.CommonUtils.isDebuggerAttached

com.google.firebase.crashlytics.internal.common.CommonUtils.isAppDebuggable

CommonUtils.isRooted.overload().implementation = function(){

}

在jadx的搜索文本中,輸入」 native+空格 」快速定位App中的native介面,分析是否存在Root、Hook、模擬器環境、雲手機環境、App風險環境等相關檢測

搜索" hook、xposed、frida、su、root、/system/ "等特徵字元串快速定位

分析apk是否可以反編譯、是否可以重打包、是否可以簽名,是否存在簽名校驗等檢測

推薦閱讀

Android安全基礎

Objection動態分析App

Frida Hook的使用方法

IDA靜態動態逆向分析基礎

Android逆向分析常用方法

IDA動態調試逆向分析Android so

C#開源項目-二進制文件的反編譯器

Radare2逆向分析dex/so/二進制等文件的使用方法

閱讀全文

與安卓版反編譯軟體Jadx相關的資料

熱點內容
什麼app可以調整手機幀率 瀏覽:313
說苑pdf 瀏覽:872
安裝包加密有什麼用 瀏覽:584
舍利子靈力演算法 瀏覽:501
javacalendar天數 瀏覽:567
anyview閱讀器java 瀏覽:361
怎麼降為安卓10 瀏覽:996
javaweb程序設計郭 瀏覽:249
gm聲望命令 瀏覽:486
pdf轉換器電腦版免費 瀏覽:43
解壓歌曲什麼歌最好 瀏覽:153
諾貝爾pdf 瀏覽:969
雲伺服器快速安裝系統原理 瀏覽:790
蘋果騰訊管家如何恢復加密相冊 瀏覽:117
手機軟體反編譯教程 瀏覽:860
sqlserver編程語言 瀏覽:650
gpa國際標准演算法 瀏覽:238
伺服器編程語言排行 瀏覽:947
怎麼下載快跑app 瀏覽:968
小紅書app如何保存視頻 瀏覽:172