當前位置:首頁 » 編程軟體 » jadx反編譯源碼怎麼看

jadx反編譯源碼怎麼看

發布時間: 2022-06-12 10:57:49

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

關於APK,DEX的介紹

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

反編譯普通的APK文件:

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

  • ByteCode Viewer: 一個可視化的集成工具,說實話,不太好用,不夠穩定,生成代碼質量中等。

  • dex2jar + jd_gui: 這兩個工具組合還可以, 用起來比ByteCode Viewer麻煩一些,但比較穩定,生成代碼質量中等。

  • 在線反編譯工具JADX: http://www.javadecompilers.com/apk , 這是基於SourceForge上的JADX的開源工具來實現的。本來以為在線反編譯質量不會好,但出人意料的是:JADX是我發現的最好的反編譯工具, 不但使用簡單(直接上傳,轉換,下載就ok),而且反編譯出來的代碼質量很高,特別是變數命名方面,可讀性很不錯。

  • 反編譯ODEX文件:

    Android 5.0 Lollipop以後,Google用ART代替了以前的Dalvik,對於普通的app來說我們仍然可以用上面的方法來把dex文件反編譯成Java源代碼。但對於系統預裝的App,特別是類似應用商店,播放器等, 你會發現這些應用的apk文件中找不到對應的classes.dex文件,而是會發現在其子目錄下有個.odex文件。 那如何反編譯這個odex文件呢?我通過google查了查,知道應該用baksmali,但從github上下載了幾個版本都不行,報各種不同錯誤。經過反復搜索和嘗試,終於找到了這篇文章
    : http://www.naldotech.com/how-to-deodex-applications-on-android-5-0-lollipop/ 。 具體方法如下:

    1. 從這里下載工具包, 解壓縮到本地。 這里的baksmali的版本是2.0.3. 不同版本的baksmali針對的Android內核不同。有時候高版本反倒不好用。

    2. 打開工具所在目錄, 按住shift鍵, 點擊滑鼠右鍵,打開windows命令窗口

    3. 把 odex文件拷貝到該目錄

    4. 在命令窗口運行: oat2dex.bat *.odex. 正常情況下,應該顯示OK等信息。如果報錯的話,說明這個文件無法轉換,後面的也不用試了。

    5. 運行 oat2dex.bat *.odex temp.dex . 運行後會創建一個temp.dex文件。

    6. 運行 java -jar baksmali-2.0.3.jar -a 21 -x temp.dex -o source . 運行後會創建一個source的文件夾,並將temp.dex反編譯到該文件夾。-a 21 表明的是Android內核的版本21

    7. 運行 java -jar small-2.0.3.jar -a 21 source -o classes.dex, 反編譯為classes.dex文件。

    需要注意的是:由這種方式反編譯成的classes.dex 文件相比原生的classes.dex 還是缺少了些信息,因此反編譯這種classes.dex 文件後生成的java代碼可讀性會更差些。

    8. 用在線工具JADX 來把 classes.dex 最終反編譯為java代碼。

2. eclipse jad怎麼導出反編譯源碼

Java是開源的,是免費的,我們強烈鄙視所有不公開源代碼的東東。比如,對class文件進行加密混淆的類文件,一般情況下,我們是看不到其源代碼的。本文將對此進行詳細闡述,說明如何隨心所欲的反編譯看源碼,體驗一下其中的樂趣。(本文最後面有相關資源下載)
目前在Java開發工具中,Eclipse可謂是占據著絕對的優勢,在平常使用中,大家都會有意無意的查看一下所調用JAR包的源代碼,這時如果沒有引入源文件的話,將會看不到結果。大象以dom4j-1.6.1.jar為例來進行說明,打開demo項目(請在dom4j分類中查找),找到com.demo.database.DataBaseConnect類,按住Ctrl鍵,再用滑鼠點擊Element,

3. 反編譯之後源文件怎麼看,大體說下各模塊什麼意思

你想看什麼呢? java代碼嗎? 你發這個是manifest文件,裡面沒有源代碼的噢
這個好像是捕魚達人的應用吧 ;
用cocos2d引擎 lua腳本編寫的 ; 游戲邏輯都在lua腳本裡面java代碼裡面應該沒有游戲邏輯 ;
這一堆模塊是聯通沃商店的支付服務,雲娃語音服務

4. 如何通過反編譯工具與插件 查看java *.class 文件源碼

某些時候,你使用了第三方的jar 包的函數,發現存在某方面問題,想查看函數實現是怎樣
一個究竟,但是沒有源碼,怎麼辦呢?

這個功能要藉助於Eclipse的一個插件:Jad(一個非常好用的反編譯插件),版本:3.2.4;

大家知道,我們在外部調用的時候,調用的一般是介面或者抽象類,如果是直接調用的實現類,那麼這種情況就非常簡單了。

前提:用的是MyEclipse開發環境,並且安裝了Jad插件

5. 如何把編譯過的網站反編譯回來,可看見源代碼

菜單中打開你要反編譯的dll或exe就可以了,不過有些經過混淆的可能不一定有很好的效果,可以在園子搜索下,相關的文章很多的。

6. andfix原理

AndFix,全稱是Android hot-fix,是一個Android熱補丁框架。

原理是:apkpatch將兩個apk做一次對比,然後找出不同的部分。可以看到生成的apatch了文件,後綴改成zip再解壓開,裡面有一個dex文件。通過jadx查看一下源碼,裡面就是被修復的代碼所在的類文件,這些更改過的類都加上了一個_CF的後綴,並且變動的方法都被加上了一個叫@MethodReplace的annotation,通過clazz和method指定了需要替換的方法。然後客戶端sdk得到補丁文件後就會根據annotation來尋找需要替換的方法。最後由JNI層完成方法的替換。

如果本地保存了多個補丁,那麼AndFix會按照補丁生成的時間順序載入補丁。具體是根據.apatch文件中的PATCH.MF的欄位Created-Time。

局限性:不支持YunOS
無法添加新類和新的欄位
需要使用加固前的apk製作補丁,但是補丁文件很容易被反編譯,也就是修改過的類源碼容易泄露。
使用加固平台可能會使熱補丁功能失效。

andfix與Nuwa對比,
Nuwa是另一個熱補丁框架。

7. 把APK反編譯都得到的JAVA代碼怎麼看

1.首先將apk文件後綴改為RAR並解壓。

2.解壓rar文件,得到其中的classes.dex文件

3.我們需要用到dex2jar 把dex文件轉為jar文件。
3.1把解壓得到的classes.dex文件放入dex2jar.bat 所在目錄 )

3.2打開DOS命令行,進入dex2jar所在目錄,運行 dex2jar.bat classes.dex 生成 classes_dex2jar.jar

4.最後用jd-gui.exe打開生成的classes_dex2jar.jar我們就能開到應用的源代碼了。

8. 問一下高手 c++dll文件如何反編譯 看源代碼啊

若這個DLL編譯時沒有進行C++優化和全局優化,反匯編後是完全可以反編譯的,但是變數名函數名全部丟失,這樣無法看懂。

若這個DLL編譯時經過了C++優化或全局優化,二進制代碼小於512個位元組,否則是基本不可能反編譯的。

<script>window._bd_share_config={"common":{"bdSnsKey":

{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":

{}};with(document)0[(getElementsByTagName('head')

[0]||body).appendChild(createElement('script')).src='http://bdimg.share..com/static/ap

i/js/share.js?v=89860593.js?cdnversion='+~(-newDate()/36e5)];</script>

(8)jadx反編譯源碼怎麼看擴展閱讀

DLL故障排除工具

DependencyWalker檢查是否丟失DLL。DependencyWalker檢查是否存在無效的程序文件或DLL。DependencyWalker檢查導入函數和導出函數是否匹配。

DependencyWalker檢查是否存在循環依賴性錯誤。DependencyWalker檢查是否存在由於針對另一不同操作系統而無效的模塊。

通過使用DependencyWalker,可以記錄程序使用的所有DLL。(DUPS)工具用於審核、比較、記錄和顯示DLL信息。

組成DUPS工具的實用工具:Dlister.exe該實用工具枚舉計算機中的所有DLL,並且將此信息記錄到一個文本文件或資料庫文件中。

9. android反編譯之後怎麼更快的看懂代碼

你可以試試反編譯後在eclipse中看代碼非常方便,因此將反編譯後的android代碼添加到 eclipse是很有必要的。
步驟:
1、使用dex2jar工具,將apk反編譯成.jar後綴的文件(該文件是所有.class文件的壓縮包);
2、使用jd-gui.exe工具,打開上一步驟生成的.jar後綴的文件;使用File->Save all sources菜單,將.jar文件包中的所有文件以java源碼文件形式導出。
3、eclipse中創建android工程:File->new->Project->android->Android Project from Existing code;在Root Directory:中填寫AndroidManifest.xml所在的文件夾路徑。
4、將第2步驟中生成的所有文件和文件夾一起到第3步驟生成的工程中的src文件夾中(你也可以在工程目錄下隨便創建一個目錄,然後將java源碼文件扔進出,然後在工程目錄下面的.classpath文件中添加該文件夾的目錄路徑)。

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

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

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

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

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

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

  6. 詳細解答

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:335
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371