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