Hook.jpg
前几天受高人指点意外发现了开启Android世界的新大陆,就是这个叫Hook(''钩子'')的东西。听起来很神奇,周末抽时间研究了一番,发现确实是一个值得去研究的技术。
什么是 Hook?
江湖上称它为“钩子”,它能够在事件传送到终点前截获并监控事件的传输。它能够将自己的代码“融入”被钩住的进程中,成为目标进程的一部分。这么说来,它可以Hook住系统的API,然后通过注入自己代码的方式去改变系统方法的行为、以及对系统方法的监听;除此以外,它还能通过实现一个程序,去篡改其他应用程序的行为。
原理:Hook技术本质是函数调用,由于处于Linux用户状态,每个进程有自己独立的进程控件,所以必须先注入所要Hook的进程空间,修改其内存中进程代码,替换过程表的符号地址,通过ptrace函数附加进程,向远程进程注入so库,从而达到监控以及远程进程关键函数挂钩
Xposed框架
要是说起这个框架,那可就真的牛逼了。什么微信自动抢红包、微信步数作弊......这些骚操作都是这个框架干出来的。
在Android系统中,应用程序进程以及系统服务进程都是由Zygote 进程 fork 出来的。Xposed框架深入到Android核心机制中,正式通过改造Zygote 进程来实现一系列的操作。
其使用方法我这里不做过多的说明,百度就能有一大堆的使用教程。
关于Xposed框架的具体实现原理