360脱壳分析1-内存dump的时机选择

转:http://blog.csdn.net/eewolf/article/details/44425569

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原创,转载请注明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值