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

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

2015-3-18 22:27
12196

我的博客: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原创,转载请注明


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

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