zoukankan      html  css  js  c++  java
  • 关于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的测试,所以个人理解脱壳就是一个信息搜集扩大化的手段!

  • 相关阅读:
    SQL CHECKOUT
    Adobe CS4 " Licensing for this product has expired " FIX!!!
    sizeof()用法汇总
    Command
    EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE
    inet_addr函数处理IP地址需要注意的问题 (转)
    Oracle:外键关联导致数据无法删除
    三范式
    Wireshark界面上展开数据帧
    我的HTML学习记录(三)
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/13694275.html
Copyright © 2011-2022 走看看