首页
社区
课程
招聘
[原创]360脱壳分析1-内存dump的时机选择
2015-3-18 22:27 11709

[原创]360脱壳分析1-内存dump的时机选择

2015-3-18 22:27
11709
我的博客:http://blog.csdn.net/eewolf

eewolf原创,转载请注明
360对dex的保护是比较好的,直接去dump内存会发现activity类都是有问题的,从dex格式而言,其DexClassDef结构体是有问题的,除了ClassId的所有成员均为0。
那应该怎么脱呢,当然360对so有加壳,我们可以对其进行脱壳后进行分析;另外,当然也可以修改libdvm来进行脱壳。
但对于一名coder而言,能否从实现角度出发的呢?如果我们来实现这个功能,要如何实现。
我们知道,通常加壳方案中,需要替换classloader来加载系统组件类(或者直接替换mCookie),activity当然也是一种系统组件。那么,可以大胆猜测,360的加壳方案中,在ClassLoader的loadClass函数上是动了手脚的,来达到先修正activity类,再修错的目的。
有了这个猜测后,实现就很简单了,可以hook loadClass,在这个时机点,去dump内存,就可以得到正确的dex。
当然,如果在dvm中实现,应该可以在defineClass函数中进行实现。
eewolf原创,转载请注明

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

收藏
点赞1
打赏
分享
最新回复 (7)
雪    币: 4
活跃值: (726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
淡然出尘 2015-3-19 10:23
2
0
博客已收藏
期待多放出精品教程..
雪    币: 58
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
baochenfu 2015-3-19 13:23
3
0
楼主blog里对梆梆的分析有一个地方似乎不对,inotify是没办法monitor proc目录的,因为proc根本不是真正的文件系统
雪    币: 188
活跃值: (167)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
cacorothuo 2015-3-19 15:02
4
0
可以的。。。
雪    币: 58
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
baochenfu 2015-3-19 15:22
5
0
应该是只能监控到open和read,但是修改监控不到
雪    币: 244
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
eewolf 2015-3-19 15:57
6
0
可以的,只是event不全而已
雪    币: 58
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
baochenfu 2015-3-19 16:14
7
0
对于task的修改是监控不到的吧
雪    币: 244
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
eewolf 2015-3-19 16:55
8
0
task目录下,增加,减少fd文件也是可以的
游客
登录 | 注册 方可回帖
返回