安卓逆向之基於Xposed-ZjDroid脫殼

來源:互聯網
上載者:User

標籤:please   分享   很多   簡單的   src   location   cas   工具   androi   

http://bbs.pediy.com/thread-218798.htm

 

 

前言

之前介紹了普通常見的反編譯模式 但對於使用了 360加固 棒棒 愛加密 等等的加固應用就沒辦法了、

你會發現反編譯出來的dex 只有幾個類 邏輯都是調用so  

真正的dex會被載入到記憶體中隱藏起來 加固應用都是多dex這種形式

要想拿到他真正的dex 需要進行脫殼處理  基本原理都是從記憶體中dump 我一般會先用工具來嘗試 不行的話就得上 IDA(反組譯碼神器)超級強的一個工

具 殺手層級 貫穿移動端 PC端的逆向 但使用IDA 進行靜態分析 動態調試脫殼就變的很麻煩了 而且並不是一兩天能學會的

以後會介紹使用 我們今天先用工具嘗試簡單的脫殼

ZjDroid工具介紹

ZjDroid是基於Xposed Framewrok的動態逆向分析模組,逆向分析者可以通過ZjDroid完成以下工作: 1、DEX檔案的記憶體dump 2、基於Dalvik關鍵指標的記憶體BackSmali,有效破解主流加固方案 3、敏感API的動態監控 4、指定記憶體地區資料dump 5、擷取應用載入DEX資訊。 6、擷取指定DEX檔案載入類資訊。 7、dump Dalvik Java堆資訊。 8、在目標進程動態運行lua指令碼。

ZjDroid github開源的一個項目 主要功能就是脫殼 基於記憶體dump 其他功能一般  作者很NB 總有些人可以把Xposed玩出花來

我下篇部落格會介紹一個針對安卓端應用分析工具 很強大!

工具準備

已ROOT手機一台並裝好xpsoed架構在裝上ZjDroid模組 

JEB  apk專業逆向工具 但是和IDA一樣要花錢 吾愛論壇提供破解版本

這裡提一下jeb的優勢 可以直接開啟apk進行反編譯 而已還原效果好

jd-gui看反編譯出來的jar(源碼)有些代碼為注釋狀態 顯示不出來  但JEB 肯定可以全部還原

愛盤地址 ZjDroid地址

實戰案例

某個朋友托我逆向個應用 叫微丟丟 營銷的 去官網下載APK 拖到JEB裡簡單的看了下

只有幾個類 一看就是加固應用 並且使用的是360加固   這種結構的類 在有個Application 鐵定的加固應用

至於做了哪些操作 基本都是常見的套路 釋放so檔案 到應用沙箱目錄下

注意 JEB 反編譯出來的代碼 初始狀態都為smali  需要用快速鍵Q或者滑鼠右鍵Decompile下

簡單分析過後 下載apk到安裝好ZjDroid的手機中   開啟應用到主介面 

我們需要擷取這個應用的pid值 這就需要用到一個命令了 PC端 WIN+X+R CMD 進入CMD視窗輸入命令

命令: adb shell dumpsys activity top

擷取到當前程式的Activity資訊 這個命令很實用 最好記一下

如果顯示過多 可以寫成 adb shell dumpsys activity top |more  按行輸出

擷取這個應用的包名 com.haiqu.oem 還要牢記這個pid 8445之後的操作都會用到他

接著我們來使用pid查看這個應用在手機裡面 dex 所在的位置

查詢 dex 資訊 所在位置

am broadcast -a com.zjdroid.invoke --ei target 8445 --es cmd ‘{action:dump_dexinfo}‘

有些時候輸入這條命令會報一條警告:

WARNING: linker: app_process has text relocations. This is wasting memory and is a security risk. Please fix.
WARNING: linker: app_process has text relocations. This is wasting memory and is a security risk. Please fix.

警告:連結器:app_process有文本重定位。 這是浪費記憶,是一個安全隱患。 請修複 

無視就可以 警告而已

記住先adb shell 一下進到手機目錄 在輸入這條命令

輸入這條命令 我們發現並沒有什麼實際的變化 需要使用ZjDroid 特有的查看LOG命令

LOG 查詢  後戳為你要查詢應用的包名
adb logcat -s zjdroid-shell-com.haiqu.oem

記住在開個CMD視窗哦 

這就擷取到了 apk所在的位置 filepath: /data/app/com.haiqu.oem-1.apk   記下來  下一步我們會用到這個

這裡說明下 5792 是我重啟了次手機 pid變成了5792

開始脫殼  命令:

am broadcast -a com.zjdroid.invoke --ei target 5792 --es cmd ‘{action:backsmali, "dexpath":"/data/app/com.haiqu.oem-1.apk"}‘

輸入完命令 回到LOG cmd視窗進行查看

上面的/data/data/com.haiqu.oem/files/dexfile.dex  就是脫出來的dex 拿到了dex基本就是拿到了源碼

我們使用RE檔案管理工具 進到這個目前下 直接使用QQ發送電腦不行 該檔案不支援此操作

需要把他挪到根目錄下 在使用豌豆莢或者其他工具 直接發送到電腦上

在使用 安卓逆向助手把dex轉成jar 或者用dexjar 都行 就可以使用jd-gui直接查看代碼 工具很多 我之前有一篇部落格介紹了安卓逆向助手的使用 不懂的可以去看下  JEB也可以直接開啟dex格式檔案 直接進行查看

總結

到這裡這個工具最重要的功能介紹完畢 很簡單 但也能對付一些普通加殼應用

但勝在效率快 很方便  缺點不能重打包但如果單純的想看代碼 進行學習或者HOOK操作 也夠用了

安卓逆向之基於Xposed-ZjDroid脫殼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.