日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ZjDroid工具介绍及脱壳详细示例

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZjDroid工具介绍及脱壳详细示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前提條件:

1、Root手機一部

2、需要通過Xposed installer(http://dl.xposed.info/latest.apk)安裝Xposed Framework;

一、ZjDroid工具介紹

ZjDroid是基于Xposed Framewrok的動態逆向分析模塊,逆向分析者可以通過ZjDroid完成以下工作:

  • DEX文件的內存dump
  • 基于Dalvik關鍵指針的內存BackSmali,有效破解加固應用
  • 敏感API的動態監控
  • 指定內存區域數據dump
  • 獲取應用加載DEX信息。
  • 獲取指定DEX文件加載類信息。
  • dump Dalvik java堆信息。
  • 在目標進程動態運行lua腳本。

二、ZjDroid相關命令

1、獲取APK當前加載DEX文件信息:

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_dexinfo"}'

2、獲取指定DEX文件包含可加載類名:

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_class","dexpath":"*****"}'

4、根據Dalvik相關內存指針動態反編譯指定DEX,并以文件形式保存。

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"backsmali","dexpath":"*****"}'

該方式可以脫殼目前大部分流行的加固防護。(由于手機性能問題,運行較忙)

例外情況:

由于ApkProtect特定防修改檢測,需要做如下修改即可解固該保護:

1)在設備上創建特定目錄(如/data/local)并 chmod 為777 (2)復制zjdroid.apk到該目錄,并修改文件名為zjdroid.jar (3)修改/data/data/de.robv.android.xposed.installer/conf/modules.list,模塊代碼文件修改為zjdroid.jar,然后重啟設備即可。

5、Dump指定DEX內存中的數據并保存到文件(數據為odex格式,可在pc上反編譯)。

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_dexfile","dexpath":"*****"}'

6、Dump指定內存空間區域數據到文件

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_mem","start":1234567,"length":123}'

7、Dump Dalvik堆棧信息到文件,文件可以通過java heap分析工具分析處理。

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_heap"}'

8、運行時動態調用Lua腳本

該功能可以通過Lua腳本動態調用java代碼。

使用場景:

a.可以動態調用解密函數,完成解密。

b.可以動態觸發特定邏輯。

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"invoke","filepath":"****"}'

luajava相關使用方法:http://www.keplerproject.org/luajava/?

9、敏感API調用監控

?

三、相關命令執行結果查看

1、命令執行結果:

adb shell logcat -s zjdroid-shell-{package name}

2、敏感API調用監控輸出結果:

adb shell logcat -s zjdroid-apimonitor-{package name}

四、ZjDroid的安裝

1.首先需要安裝xposed框架,運行后選擇“框架”==》“安裝/更新”操作。

?

2.安裝模板(ZjDroid.apk)

安裝ZjDroid.apk后,點擊xposed的模塊選項,勾上ZjDroid選項,然后重啟系統激活軟件。

?

五、脫殼案例演示

以“捕魚達人3(1.01版)”為例來演示ZjDroid的脫殼過程,“捕魚達人3”加的是“某加密”的殼,這個殼的關鍵詞是chaosvmp。在手機上安裝好程序并運行,然后依據以下步驟進行脫殼:
1、打開命令行輸入以下命令查看logcat:

adb logcat -s zjdroid-shell-org.cocos2d.fishingjoy3

如下圖所示:

?

記下hook的pid=14630
2、另外開啟一個命令窗口,通過adb shell向手機發送執行命令獲取APK當前加載的DEX文件的信息,命令如下:

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

?

這時候第一個打開的命令窗口就會出現以下信息:

?

?????? 從圖中可以看到3個filepath信息,到底應該dump哪個呢?我們一般首先選擇.apk后綴的,如果dump出現錯誤,可以再試試包含classes.jar的路徑(梆梆加固的要選擇classes.jar的路徑)。現在開始執行dump dex的命令:

am broadcast -a com.zjdroid.invoke --ei target 14630 --es cmd '{action:backsmali, "dexpath":"/data/app/org.cocos2d.fishingjoy3-1.apk"}'

?

正常情況下,如果dump完畢,則會提示“build the dexfile ok”,dump出來的dex文件保存在/data/data/應用包名/files目錄下,文件名為dexfile.dex。我們將該文件重命名為classes.dex替換掉原包中的同名文件,再重新簽名安裝運行就可以了。下圖所示為對陌陌5.0版本成功dump的結果。

?

但是在本例中,等待一段時間后,并沒有出現跟上面類似的提示,并且程序停止不再運行,如下圖所示。

?

查看/data/data/ org.cocos2d.fishingjoy3/files目錄下的dexfile.dex文件,內容為空,說明dump時建立dex文件不成功。不過不要緊,還有一個smali文件夾,里面包含了執行backsmali命令后得到的全部smali文件。?

注意:如果執行backsmali命令的時候提示“the cmd is invalid”,則可能是以下幾個原因:

(1)命令輸入不對。仔細檢查一下命令是否輸入正確,包括引號的輸入。

(2)沒有獲取root權限。已經root的手機su一下即可。

3、修復錯誤
?????? 用apktool把原apk反編譯,將smali文件夾里面的文件用dump出來的文件替換,然后重編譯,出現如下錯誤信息:

?

根據錯誤提示,找到對應文件的1767和3963行的代碼?

將這幾行代碼注釋掉,并以同樣方法處理掉接下來的錯誤,就可以順利進行重打包了。將重打包后的文件簽名并安裝運行,閃退。后來在AndroidManifest.xml文件中發現android:name沒有修改,于是把該屬性刪除,重打包安裝還是閃退,這到底是腫么了?

?

通過LogCat查看log信息,發現問題在這里:

用IDA打開各個so文件,按下shift+F12快捷鍵,搜索“fuck exit1!”,在libfishingjoy3.so中找到了該字符串,查看其調用情況,如圖所示:

?

?

?在002020B8處存在唯一調用:

?

用010Editor打開該so,CTRL+G跳轉到002020B8處,修改16進制數據為00?00?A0?E1(NOP指令),保存,簽名重新安裝,這下可以正常運行了。

?

原文地址: http://www.cnblogs.com/goodhacker/p/3961045.html

總結

以上是生活随笔為你收集整理的ZjDroid工具介绍及脱壳详细示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。