插件化
文章平均质量分 88
TurkeyCock
这个作者很懒,什么都没留下…
展开
-
DroidPlugin代码分析(一) 背景知识
前段时间360在github上公开了DroidPlugin的代码,工作中也正好要用到类似的技术,于是打算花点时间研究一下。在开始之前,首先需要了解一个概念:Java动态代理。这是实现hook的一个关键技术,在代码里被大量运用。那么什么是Java动态代理呢?下面以一个小例子进行说明。首先我们定义一个IFruit接口,里面只有一个方法,用来打印水果的名字:public interface原创 2016-03-23 00:15:19 · 4107 阅读 · 2 评论 -
DroidPlugin代码分析(二) Hook机制
接上篇,这篇来看一下Droid Plugin的hook机制。Droid Plugin的官方文档提到了下面三点:动态代理实现函数hookBinder代理绕过部分系统服务限制IO重定向我们一项一项地来看。一、动态代理实现函数hook这部分实现主要在hook/proxy/和hook/handle里。先上一张类图:首先定义了一个基类Hook,这是一个抽象类,外部原创 2016-03-23 00:30:16 · 4932 阅读 · 0 评论 -
DroidPlugin代码分析(三) 占坑、动态注册
接上篇,这一篇分析一下“占坑”部分。既然是占坑,先看一下DroidPlugin都占了哪些坑?扫一眼AndroidManifest.xml可以发现,除了主进程意外,还注册了”:PluginP01” ~ ”:Plugin08”这8个进程,所以一共9个进程。每个进程里注册了30个activity,1个service,和一个content provider:.stub.Acti原创 2016-04-14 15:46:20 · 6502 阅读 · 14 评论 -
DroidPlugin代码分析(四) 进程管理
之所以单列一篇写进程管理,是因为看到注释上写“这是一个复杂的进程管理程序”,但是仔细看了一下好像也没那么“复杂”...这一篇通过分析代码试图搞清楚以下3个问题:• 插件进程是如何被hook住的?• 插件进程die是如何被检测到的?• 插件进程是如何被管理的?一、插件进程是如何被hook住的?在写宿主程序的时候,我们知道需要在Application的onCreate()和at原创 2016-05-02 21:29:10 · 5224 阅读 · 2 评论