关于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的测试,所以个人理解脱壳就是一个信息搜集扩大化的手段!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY