API Hook总结之三
来源:互联网 发布:seo关键词优化工具 编辑:程序博客网 时间:2024/05/20 05:59
6.6 MountService Hook
结构图如下,
Hook 类
IMountServiceBinderHook
Hook 代理类
IMountServiceHookHandle
Hook 方法实现类
mkdirs
IMountServiceHookHandle的内部类mkdirs的beforeInvoke方法部分代码如下,
if (path != null) { final boolean isAndroiDataHostPath = path.indexOf(ANDROID_DATA) < 0; final boolean isAndroiObbHostPath = path.indexOf(ANDROID_OBB) < 0; if (isAndroiDataHostPath && !isAndroiObbHostPath) { path = path.replaceFirst(ANDROID_DATA, ANDROID_DATA + mHostContext.getPackageName() + "/Plugin/"); args[index1] = path; } else if (!isAndroiDataHostPath && isAndroiObbHostPath) { path = path.replaceFirst(ANDROID_OBB, ANDROID_OBB + mHostContext.getPackageName() + "/Plugin/"); args[index1] = path; }}
6.7 SearchManager Hook
结构图如下,
Hook 类
ISearchManagerBinderHook
Hook 代理类
ISearchManagerHookHandle
Hook 方法实现类
getSearchableInfo
getSearchableInfo的beforeInvoke方法如下,
protected boolean beforeInvoke(Object receiver, Method method, Object[] args) throws Throwable { if (args != null && args.length > 0 && args[args.length - 1] instanceof ComponentName) { ComponentName cpn = (ComponentName) args[args.length - 1]; ActivityInfo info = PluginManager.getInstance().getActivityInfo(cpn, 0); if (info != null) { ActivityInfo proxyInfo = PluginManager.getInstance().selectStubActivityInfo(info); if (proxyInfo != null) { args[args.length - 1] = new ComponentName(proxyInfo.packageName, proxyInfo.name); } } } return super.beforeInvoke(receiver, method, args);}
6.8 ISessionManagerBinderHook Hook
结构图如下,
Hook 类
ISessionManagerBinderHook
Hook 代理类
ISessionManagerHookHandle
Hook 方法实现类
createSession
createSession的beforeInvoke方法如下,
protected boolean beforeInvoke(Object receiver, Method method, Object[] args) throws Throwable { int index = 0; if (args != null && args.length > index && args[index] instanceof String) { String pkg = (String) args[index]; if (!TextUtils.equals(pkg, mHostContext.getPackageName())) { args[index] = mHostContext.getPackageName(); } } return super.beforeInvoke(receiver, method, args); }
阅读全文
0 0
- API Hook总结之三
- API Hook总结之二
- API Hook总结之四
- API Hook总结之五
- HOOK API入门之Hook
- API Hook总结之一
- Hook Win32 API 的应用研究之三:变速控制
- Hook Win32 API 的应用研究之三:变速控制
- Hook技术之API拦截(API Hook)
- Windows内核API HOOK 之 Inline Hook
- Windows内核API HOOK 之 Inline Hook
- Windows 内核API HOOK 之 Inline Hook
- Windows内核API HOOK 之 Inline Hook
- rootkit hook之[三] inline hook
- rootkit hook之[三] inline hook
- rootkit hook之[三] inline hook
- 【原创】rootkit hook之[三] inline hook
- rootkit hook之[三] inline hook
- hpuoj 【1006】机房的位置(二)【思维】
- Python 里的lambda表达式的作用
- ZOJ 3699 Dakar Rally
- POJ-2060-Taxi Cab Scheme 二分图匈牙利算法 裸题
- Spring思维导图
- API Hook总结之三
- 跳台阶 java实现
- SnailApp项目---路由框架搭建
- 51nod 1109 01组成的N的倍数
- 误删linux下passwd目录导致进不去系统
- 选择排序
- HDU
- DBA必备脚本--检查失败的作业
- CloudStack相关技术-Zone