API Hook总结之一
来源:互联网 发布:淘宝店充值话费充错了 编辑:程序博客网 时间:2024/06/05 00:59
6,API Hook总结
实际上, droidplugin框架一共Hook了十多个服务对应的API接口, ServiceManager和LocationManager API的Hook
在前面已经详细论述了。
这些Hook一般都是在HookFactory的installHook方法中构造和安装的。
其实主要就是三要素,Hook类, Hook 代理类以及Hook 方法实现类。
6.1, AudioManager分析
结构图如下,
Hook 类
IAudioServiceBinderHook
Hook 代理类
IAudioServiceHookHandle
Hook 方法实现类
adjustVolume
adjustLocalOrRemoteStreamVolume
adjustSuggestedStreamVolume
adjustStreamVolume
adjustMasterVolume
setStreamVolume
setMasterVolume
requestAudioFocus
registerRemoteControlClient
IAudioServiceHookHandle的内部类MyBaseHandler的beforeInvoke方法如下,
protected boolean beforeInvoke(Object receiver, Method method, Object[] args) throws Throwable { if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) { if (args != null && args.length > 0) { for (int index = 0; index < args.length; index++) { if (args[index] instanceof String) { String callingPkg = (String) args[index]; if (!TextUtils.equals(callingPkg, mHostContext.getPackageName()) && PluginManager.getInstance().isPluginPackage(callingPkg)) { args[index] = mHostContext.getPackageName(); } } } } } return super.beforeInvoke(receiver, method, args); }
也是修改PackageName参数。
6.2, Clipboard Hook
结构图如下,
Hook 类
IClipboardBinderHook
Hook 代理类
IClipboardHookHandle
Hook 方法实现类
setPrimaryClip
getPrimaryClip
getPrimaryClipDescription
hasPrimaryClip
addPrimaryClipChangedListener
removePrimaryClipChangedListener
hasClipboardText
IClipboardHookHandle的内部类MyBaseHookedMethodHandler的beforeInvoke方法如下,
protected boolean beforeInvoke(Object receiver, Method method, Object[] args) throws Throwable { if (args != null && args.length > 0 && args[args.length - 1] instanceof String) { String pkg = (String) args[args.length - 1]; if (!TextUtils.equals(pkg, mHostContext.getPackageName())) { args[args.length - 1] = mHostContext.getPackageName(); } } return super.beforeInvoke(receiver, method, args); }
- API Hook总结之一
- API Hook总结之二
- API Hook总结之三
- API Hook总结之四
- API Hook总结之五
- Hook Win32 API 的应用研究之一:网络监控
- Hook Win32 API 的应用研究之一:网络监控
- API HOOK
- Hook API
- hook api
- hook api
- API HOOK
- Hook API
- API HOOK
- HOOK API
- API HOOK
- API Hook
- API Hook
- MYSQl 远程登录
- 面向对象三大特征
- 【怎样写代码】工厂三兄弟之抽象工厂模式(五):扩展案例I
- 文章标题
- NYOJ 1103 区域赛系列一多边形的划分
- API Hook总结之一
- Spring bean 如何实例化
- windows7+GT740M+cafe 深度学习框架搭建
- 线段树模板
- 关于PADS原理图的导入
- swift3.0字符串截取,字符串处理
- 【FFT】大数乘法 hdu1402
- AtCoder Regular Contest 079-D
- cacti监控