導航:首頁 > 程序命令 > jadx命令

jadx命令

發布時間:2022-05-05 20:27:09

編譯android源碼apk是不是生成odex方法

反編譯普通的APK文件: 對於普通的APK/DEX文件的反編譯,其實工具有很多, 包括: ByteCode Viewer: 一個可視化的集成工具,說實話,不太好用,不夠穩定,生成代碼質量中等。 dex2jar + jd_gui: 這兩個工具組合還可以, 用起來比ByteCode Viewer麻煩一些,但比較穩定,生成代碼質量中等。 反編譯ODEX文件: Android 5.0 Lollipop以後,Google用ART代替了以前的Dalvik,對於普通的app來說我們仍然可以用上面的方法來把dex文件反編譯成java源代碼。但對於系統預裝的App,特別是類似應用商店,播放器等, 你會發現這些應用的apk文件中找不到對應的classes.dex文件,而是會發現在其子目錄下有個.odex文件。 那如何反編譯這個odex文件呢?我通過google查了查,知道應該用baksmali,但從github上下載了幾個版本都不行,報各種不同錯誤。 具體方法如下: 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代碼。

② mt管理器永久vip破解版方法

在破解app的時候,我們現在幾乎都是在PC端進行操作,但是之前bin神的MT管理器,可以在手機端直接破解,不過也有很大的局限性,但是對於一些簡單的app破解沒問題的。這個工具其實原理也很簡單,就是解析apk中的dex,arsc等文件,然後支持修改其中的類方法信息和資源信息,然後在二次打包簽名即可。其實把這部分功能移到了移動端做了,不過值得佩服的是這個app從整體效果來說,非常的贊,非常佩服這個工具的作者。

二、逆向分析
但是今天我們的主題是破解這個工具內部的收費功能,而用這個工具進行破解教程後續再給出文章,今天我們就來爆破這個app的收費功能。不多說了,

我們在查看arsc文件的一部分功能的時候,就出現這個提示了,好的,直接用這個提示信息作為突破口,使用apktool工具反編譯apk,然後查看他的:

看到這里,就很懵逼了,而且你會發現apk內部的所有資源都是這種格式定義,到這里可以猜想apk做了資源混淆,我們用Jadx打開apk之後,全局搜索這個name值,是找不到的,會發現全是這樣的定義,所以這個作者是為了防護apk做的一種策略。不過不要緊更惡心的防護還在後面。看我分析再說。不過在怎麼資源混淆,最終在smali代碼中都必須用int值0x7FXXXX來進行操作,所以我們可以在smali代碼目錄下全局搜索包含0x7f08009e值的文件,這里需要藉助Window中的命令findstr了:

命令很簡單,在當前目錄下查找所有文件中包含指定字元串內容的:findstr /s /i 「需要查找的內容」

我們可以看到總共就這么幾個文件,這里我不會對每個文件進行查找,然後在確定是否是這個文件了,大家自己操作,可以依次順序進行查看定位即可。最終我定位到了這個文件。我們打開這個文件查看:

記住在代碼的157行調用這個字元串信息了,然後我們在Jadx中進行類查找即可

③ 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,而不再是你好。說明反編譯重新打包成功!

④ 有沒有這樣的軟體: 用jd-gui可以反編譯class文件,但是不能修改。有可以反編譯並直接修改的么

jd-gui可以將看到的反編譯結果保存到一個zip壓縮包裡面,操作方法如下:

1、首先創建一個class文件,打開記事本。

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

關於APK,DEX的介紹

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

反編譯普通的APK文件:

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

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

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

ByteCode Viewer: 一個可視化的集成工具,說實話,不太好用,不夠穩定,生成代碼質量中等。
dex2jar + jd_gui: 這兩個工具組合還可以, 用起來比ByteCode Viewer麻煩一些,但比較穩定,生成代碼質量中等。

反編譯ODEX文件:
Android 5.0 Lollipop以後,Google用ART代替了以前的Dalvik,對於普通的app來說我們仍然可以用上面的方法來把dex文件反編譯成Java源代碼。但對於系統預裝的App,特別是類似應用商店,播放器等, 你會發現這些應用的apk文件中找不到對應的classes.dex文件,而是會發現在其子目錄下有個.odex文件。 那如何反編譯這個odex文件呢?我通過google查了查,知道應該用baksmali,但從github上下載了幾個版本都不行,報各種不同錯誤。

具體方法如下:

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代碼。

閱讀全文

與jadx命令相關的資料

熱點內容
解壓頭戴式耳機推薦 瀏覽:344
紙條app上怎麼樣看對方主頁 瀏覽:883
編譯英語單詞怎麼寫 瀏覽:249
編譯原理和匯編原理的區別 瀏覽:864
如何給加密的pdf解密 瀏覽:770
華為盒子時間同步伺服器地址 瀏覽:95
python處理excel亂碼 瀏覽:391
mysql的命令行 瀏覽:822
jpeg採用什麼演算法 瀏覽:700
程序員紅軸薄膜 瀏覽:306
洗臉盆壓縮 瀏覽:780
dpd是什麼演算法 瀏覽:156
加密技術中的密鑰 瀏覽:962
qq企業郵箱本地客戶端伺服器地址 瀏覽:751
排序演算法框架 瀏覽:852
馬扎克qtn編程說明書下載 瀏覽:188
程序員在國外年齡 瀏覽:376
51單片機ad數碼管 瀏覽:738
安卓怎麼強制重新啟動 瀏覽:514
自製超級無敵解壓軟體 瀏覽:956