當前位置:首頁 » 編程軟體 » 手機反編譯dex

手機反編譯dex

發布時間: 2024-04-20 17:01:01

① 安卓app360加固怎麼反編譯

1 對比

上傳demo進行加固,解包後對比下原包和加固包,發現加固包在assets文件夾下多了libjiagu.so,libjiagu_x86,lib文件夾下多了libjiagu_art.so,同時修改了dex文件和AndroidManifest文件

打開manifest文件,看到xxx加固對Application標簽做了修改,添加了殼入口,也就是我們反編譯後看到的StubApplication.smali這個文件。

相比於之前版本的加固,自從1.x.x.x加固版本之後,多了幾次反調試,使得動態難度稍微增大了一些,不過針對脫殼機脫殼,再多了反調試也是無用。或者通過修改系統源碼,也能達到消除反調試的作用。


2 動態調試

(1)把app安裝到手機,以調試模式打開app

(2)以shell模式root許可權打開IDA的android_server監聽

(3)tcp轉發

(4)打開IDA,修改配置為在進程開始時下斷

(5)搜索到進程後jdwp轉發,pid值即為我們進程號,並在命令行下附加。

成功附加後,可以下段了,打開Debugger Option

我們選擇在線程開始和庫載入時下斷,修改成功後,jdb附加,點擊運行

程序會斷在elf頭處,按下G鍵,搜索mmap,在mmap函數的段首和斷尾下段

F9運行,來到斷尾時F8單步,

來到此處時,在 BLunk_5C999C2C下斷,F9一下,F7跟進去

跟進去今後在BLX LR處進行下斷,此處就是進行反調試的地方,原理依然是獲取TracePid的值判斷當前是不是處於調試狀態,建議第一次調試的人在fgets和fopen處下斷,再f7跟進此調用就可以看到TracePid的值了。

跟進去之後,我們直接把方法移到最下方,就可以看到kill符號了,這就是殺進程的地方,如果當前處於調試狀態,則直接結束進程。

我們在此函數的所有cmpR0,#0處下斷,F9一下後即斷在斷點處,觀察寄存器窗口的R0值,實質就是當前的TracePid的16進制的值

不確定的可以使用cat /proc/pid/status進行對比一下,我們直接把R0置0,右鍵選擇Zero Value即可清0,繼續F9

我們看到程序又來到了mmap處,繼續f9

當繼續斷在調用反調試功能的方法時,繼續F7跟進,依然在所有的cmp R0,#0處下斷,斷下後把R0清0後繼續F9運行

目前的規律是,調用BLXLR的第一次,第二次和第四次是進行反調試判斷的,第三次並不影響,可以直接f9跳過去,三次反調試搞定後,就可以愉快的F9運行並觀察堆棧窗口了

當看到出現如下所示時:

說明殼已經開始解密並釋放dex文件了,我們直接F8單步十幾步,最後F9一下就可以看到我們需要的dex頭了

直接腳本mp出來即可,最後把libjiagu的所有文件刪除,並修復下Application標,如果存在則修復,不存在刪除即可

② dex文件被破壞,如何反編譯apk或者此dex呢

可以使用 apktool工具反編譯 apk ,會把dex文件反編譯為samli源碼。

也可直接把dex文件從apk文件解壓出來,用dex2jar工具把它轉換成jar文件,這樣就可以用jd-gui工具看到java源碼了。

③ android反編譯APK後,是smali文件,能反編譯成dex文件嗎

dex文件不需要反編譯的,apk就是個壓縮文件,dex可以通過解壓直接得到

④ 求解,用android模擬器中提供的工具反編譯class.dex文件反編譯後的文件找不到了

反編譯dex為jar?
有個批處理文件dex2jar.bat,可以直接通過命令行來達到這個效果。

⑤ 如何反編譯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代碼。

⑥ Android APK+Dex文件反編譯及回編譯工具的工具說明

1. APK文件反編譯工具 ApkTool v2.0.0用於直接反編譯APK文件,同時也會反編譯dex文件。
2. DEX文件反編譯工具 Baksmali/Smali v2.0.2專門用來反編譯Dex文件,可以跟ApkTool兼容使用。
3. DEX文件反編譯資源查看工具Dex2jar v0.0.9.15和JD-GUI v0.3.5用來查看反編譯Dex後源碼的工具,據說能完整的反編譯出Dex文件源碼。
4. APK文件簽名工具 SignApk為APK文件執行簽名,專門提供給廣大漢化工作者們。
5. APK安裝器 PC版 QQApktool為用戶提供可以預先查看軟體的所有信息包括許可權的APK安裝器。
6. 顯示APK自身圖標 Apkshellext v2.3該程序非常不錯,可惜佔用緩存和讀取速度較慢,容易出現讀取滯留狀態,從而導致APK文件無法刪除,建議配置低的電腦慎用。

⑦ Android APK+Dex文件反編譯及回編譯工具的使用說明


本工具執行安裝後,直接在【滑鼠右鍵】生成快捷鍵,自動關聯APK、DEX、Odex、Zip等文件。只要在電腦任意「非分區根目錄」,【滑鼠右鍵】點擊相關文件,即可編譯操作。如,反編譯APK及DEX文件,反編譯後生成可編譯的同名文件夾,漢化修改完成後,對文件夾點擊【滑鼠右鍵】根據文件夾反編譯前的文件類型,現在【使用 APKDB編譯】即可!
同時,針對apk和zip文件增加簽名操作,只要【滑鼠右鍵】點擊,選擇【使用 APKDB編譯】選擇【[S]簽名APK文件】即可!簽名前無需刪除原來的【META-INF】簽名數據。本工具會判別apk還是zip並自動刪除簽名數據。

熱點內容
二級程序編譯答案 發布:2024-05-03 18:41:35 瀏覽:653
領動自動精英版是哪個配置 發布:2024-05-03 18:37:30 瀏覽:150
java編譯器中cd什麼意思 發布:2024-05-03 18:36:00 瀏覽:389
傳奇伺服器如何刷錢 發布:2024-05-03 18:36:00 瀏覽:977
安卓版twitter怎麼注冊 發布:2024-05-03 18:28:05 瀏覽:893
Python邏輯優先順序 發布:2024-05-03 18:26:14 瀏覽:267
linux查看svn密碼 發布:2024-05-03 18:12:47 瀏覽:804
地鐵逃生怎麼進入游戲安卓 發布:2024-05-03 17:49:35 瀏覽:992
aws雲存儲 發布:2024-05-03 17:48:50 瀏覽:955
安卓微信王者號怎麼轉成蘋果 發布:2024-05-03 17:44:38 瀏覽:745