jadx反編譯源碼怎麼看
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 怎麼讀
Android上面的反編譯工具很多,我個人比較喜歡jadx,操作簡單,界面簡潔。
下載jadx並解壓,點擊「bin」目錄下面的「jadx-gui.bat」文件,出現下圖所示的界面
選中要反編譯的apk文件後,界面變成下圖所示
任意點開一個類,我們就可以看到該類的源代碼了
有的類的變數和方法名都變成了a,b,c,d。。。,如下圖所示
詳細解答