首页
社区
课程
招聘
[原创]安卓逆向之基于Xposed-ZjDroid脱壳
发表于: 2017-6-27 17:33 24135

[原创]安卓逆向之基于Xposed-ZjDroid脱壳

2017-6-27 17:33
24135

之前介绍了普通常见的反编译模式 但对于使用了 360加固 棒棒 爱加密 等等的加固应用就没办法了、

你会发现反编译出来的dex 只有几个类 逻辑都是调用so   

真正的dex会被加载到内存中隐藏起来 加固应用都是多dex这种形式

要想拿到他真正的dex 需要进行脱壳处理  基本原理都是从内存中dump 我一般会先用工具来尝试 不行的话就得上 IDA(反汇编神器)超级强的一个工

具 杀手级别 贯穿移动端 PC端的逆向 但使用IDA 进行静态分析 动态调试脱壳就变的很麻烦了 而且并不是一两天能学会的

以后会介绍使用 我们今天先用工具尝试简单的脱壳

 


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玩出花来

我下篇博客会介绍一个针对安卓端应用分析工具 很强大!


http://blog.csdn.net/qq_35834055/article/details/73693182


已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  按行输出

 


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
支持
分享
打赏 + 5.00雪花
打赏次数 1 雪花 + 5.00
 
赞赏  CCkicker   +5.00 2017/07/18
最新回复 (26)
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享。
2017-6-27 22:47
0
雪    币: 94
活跃值: (2397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
这是浪费记忆.......哈哈哈,哪家的翻译软件
2017-6-28 16:52
0
雪    币: 2081
活跃值: (2685)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
google翻译
2017-6-28 17:41
0
雪    币: 214
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享。是数字壳吧,ZjDroid好老了,直接dump的dex应该是抽代码的
2017-6-28 21:18
0
雪    币: 41
活跃值: (823)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
  感谢分享!!!
2017-6-29 08:45
0
雪    币: 1432
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7

谢谢分享
2017-6-29 09:37
0
雪    币: 2081
活跃值: (2685)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
是啊14年刚出的时候通杀  现在是有点老了  但还能用 
2017-6-29 09:40
0
雪    币: 232
活跃值: (1796)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
太老了
2017-6-29 10:57
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
出现start  disassemble  the  mCookie  -1这种情况怎么解决
2017-6-29 15:28
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
同求,卡在这里; 
2017-6-29 15:51
0
雪    币: 2081
活跃值: (2685)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
说真的  我也不知道...  没遇到过  工具不行就直接上IDA了
2017-6-29 19:07
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
oncreate啊
2017-7-2 13:04
0
雪    币: 1256
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
往事不用再提……
2017-7-2 15:59
0
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这个zjdroid的代码编译出来的模块启动的时候在xposed的日志中有报错啊
2017-7-12 20:37
0
雪    币: 2081
活跃值: (2685)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
16
vincent汪 这个zjdroid的代码编译出来的模块启动的时候在xposed的日志中有报错啊
github上的代码应该就是最新的了  作者好久不更新了  只能这样  而且你直接在github上下载APK呗    工具始终只是工具  不要太依赖  还是IDA大法好  手动脱累点  但花精力肯定能dump出来
2017-7-12 20:56
0
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
世界美景 github上的代码应该就是最新的了 作者好久不更新了 只能这样 而且你直接在github上下载APK呗 工具始终只是工具 不要太依赖 还是IDA大法好 手动脱累点 但花精力肯定能dump出来
我就是在github上下的代码编译的APK装的,脱完壳日志显示正常,但是没有主Activity,也只能上IDA手动脱壳了。。。。
2017-7-18 09:55
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
出现start    disassemble    the    mCookie    -1这种情况怎么解决
2017-7-18 21:16
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
我想问下  需要  这操作吗    (3)  修改/data/data/de.robv.android.xposed.installer/conf/modules.list  模块代码文件修改为"zjdroid.jar"  从启设备即可。
2017-7-20 19:04
0
雪    币: 2081
活跃值: (2685)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
20
wx_洋葱1号 我想问下 需要 这操作吗 (3) 修改/data/data/de.robv.android.xposed.installer/conf/modules.list 模块代码文件修改为"zjd ...
不知道  反正我是没这么干过
2017-7-21 10:30
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
E/AndroidRuntime(  3862):  FATAL  EXCEPTION:  Thread-175
E/AndroidRuntime(  3862):  java.lang.ExceptionInInitializerError
E/AndroidRuntime(  3862):                at  com.android.reverse.smali.MemoryBackSmali.disassembleDexFile(MemoryBackSmali.java:76)

E/AndroidRuntime(  3862):                at  com.android.reverse.collecter.DexFileInfoCollecter.backsmaliDexFile(DexFileInfoCollec
ter.java:141)
E/AndroidRuntime(  3862):                at  com.android.reverse.request.BackSmaliCommandHandler.doAction(BackSmaliCommandHandler.
java:19)
E/AndroidRuntime(  3862):                at  com.android.reverse.mod.CommandBroadcastReceiver$1.run(CommandBroadcastReceiver.java:
33)
E/AndroidRuntime(  3862):                at  java.lang.Thread.run(Thread.java:856)
E/AndroidRuntime(  3862):  Caused  by:  java.lang.UnsatisfiedLinkError:  Couldn't  load  dvmnative  from  loader  dalvik.system.Pa
thClassLoader[dexPath=/data/app/com.android.reverse-1.apk,libraryPath=null]:  findLibrary  returned  null
E/AndroidRuntime(  3862):                at  java.lang.Runtime.loadLibrary(Runtime.java:365)
E/AndroidRuntime(  3862):                at  java.lang.System.loadLibrary(System.java:535)
E/AndroidRuntime(  3862):                at  com.android.reverse.util.NativeFunction.<clinit>(NativeFunction.java:19)
E/AndroidRuntime(  3862):                ...  5  more
2017-7-30 14:21
0
雪    币: 0
活跃值: (398)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22

你好,我是gslab游戏安全实验室的,想问下可以将这篇文章转载到我们官网和公众号不,会标明作者与来源

2017-8-24 10:37
0
雪    币: 2081
活跃值: (2685)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
23
gslab实验室 你好,我是gslab游戏安全实验室的,想问下可以将这篇文章转载到我们官网和公众号不,会标明作者与来源
可以
2017-8-24 11:41
0
雪    币: 30
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
24
学习了
2017-8-24 17:34
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
同样出现start        disassemble        the        mCookie        -1这种情况怎么解决
2018-1-26 11:09
0
游客
登录 | 注册 方可回帖
返回
//