美文网首页
Binder Hook

Binder Hook

作者: Res2013 | 来源:发表于2018-05-12 01:40 被阅读4次

寻找Hook点

    // ActivityManagerNative.java
    private static final Singleton<IActivityManager> gDefault = new 
    Singleton<IActivityManager>() {
        protected IActivityManager create() {
            IBinder b = ServiceManager.getService("activity");
            if (false) {
                Log.v("ActivityManager", "default service binder = " + b);
            }
            IActivityManager am = asInterface(b);
            if (false) {
                Log.v("ActivityManager", "default service = " + am);
            }
            return am;
        }
    };

    static public IActivityManager asInterface(IBinder obj) {
        if (obj == null) {
            return null;
        }
        // 查找本地是否存在该IBinder对象
        IActivityManager in =
            (IActivityManager)obj.queryLocalInterface(descriptor);
        if (in != null) {
            return in;
        }

        return new ActivityManagerProxy(obj);
    }

...

    // ServiceManager.java
    public static IBinder getService(String name) {
        try {
            IBinder service = sCache.get(name);
            if (service != null) {
                return service;
            } else {
                return getIServiceManager().getService(name);
            }
        } catch (RemoteException e) {
            Log.e(TAG, "error in getService", e);
        }
        return null;
    }
  1. 伪造一个ActivityManagerNative系统服务对象,让asInterface()方法返回我们伪造的系统服务对象
  2. getService()方法返回我们伪造的另一对象,让该IBinder对象的queryLocalInterface()方法返回我们需要伪造的系统服务对象
  3. 2中伪造的IBinder对象放置到ServiceManager的缓存sCache中即可

相关文章

  • 插件开发之360 DroidPlugin源码分析(三)Binde

    Hook机制中Binder代理类关系图 Hook机制中Binder代理时序图 MyServiceManager S...

  • Binder Hook

    寻找Hook点 伪造一个ActivityManagerNative系统服务对象,让asInterface()方法返...

  • Android Binder Hook的实现

    1. 简述 Binder Hook可以Hook掉当前App用到的系统Service服务。以LocationMana...

  • Android Binder Hook的实现

    1. 简述 Binder Hook可以Hook掉当前App用到的系统Service服务。以LocationMana...

  • Android 插件化原理解析——Hook机制之AMS&

    在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过...

  • Android插件化

    为什么 Hook 永远是在 Binder Client端,也就是四大组件这边,而不是在 AMS侧进行 Hook。 ...

  • 计划

    签名打包/多平台发布/混淆 锁/并发 反射/hook 类加载机制 aidl/Binder Gradle编译 par...

  • DroidPlugin之Binder Hook机制

    hook的根基是反射,并且反射的根基是系统的方法或者属性是static的,这样才能拦截到系统的服务。之后才是基于动...

  • Binder驱动

    数据结构 binder_proc binder_thread binder_transaction binder_...

  • Android Binder

    Binder Binder是什么? Binder是一种进程间通信机制为什么是Binder? Binder架构 Bi...

网友评论

      本文标题:Binder Hook

      本文链接:https://www.haomeiwen.com/subject/otqcdftx.html