关于ZjDroid的脱壳

前言:ZjDroid是基于Xposed Framewrok的动态逆向分析模块

这里有个APP简单加固的apk包,可以先试着看能否成功反编译

1、DDMS LOG过滤,查看pid,打开monitor的LogCat项,然后过滤如下内容

zjdroid-shell-APP的包名

接着打开APK,查看对应的APK的PID

2、查看APK当前加载的DEX文件的信息(坑点:必须得先进行adb的命令模式下才能执行),可以发现APK的路径

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

3、查看class信息(坑点:必须得先进行adb的命令模式下才能执行)

adb shell 
am broadcast -a com.zjdroid.invoke --ei target 4339 --es cmd '{"action":"dump_class","dexpath":"/data/app/com.example.helloworld-1.apk"}'

4、baksmali dump dex(坑点:必须得先进行adb的命令模式下才能执行)

adb shell 
am broadcast -a com.zjdroid.invoke --ei target 4339 --es cmd '{"action":"backsmali","dexpath":"/data/app/com.example.helloworld-1.apk"}'

路径如下,然后通过MT管理器进行拖动文件到外部存储中,然后在PC电脑中进行拉出,然后进行dex2jar

发现反编译之后,class文件还是看不了,那就是dump dex的时候这个文件不是核心文件,那么继续换另外一个

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

am broadcast -a com.zjdroid.invoke --ei target 4339 --es cmd '{"action":"dump_class","dexpath":"/data/data/com.example.helloworld/.cache/classes0.jar"}'

am broadcast -a com.zjdroid.invoke --ei target 4339 --es cmd '{"action":"backsmali","dexpath":"/data/data/com.example.helloworld/.cache/classes0.jar"}'

继续反编译查看,发现可以看到 那么就是脱壳成功了

正常加壳的反编译:

脱完壳之后的:

总结:可以发现脱壳之后,就有新的信息发现,并且可以进行相关apk的测试,所以个人理解脱壳就是一个信息搜集扩大化的手段!

posted @ 2020-09-19 03:57  zpchcbd  阅读(218)  评论(0编辑  收藏  举报