• PLT hook 方案 PLT hook


    PLT hook 方案  PLT hook


    字节跳动开源 Android PLT hook 方案 bhook --- https://zhuanlan.zhihu.com/p/401547387

    inline hook 的功能无疑是最强大的 inline hook () ->.dyn.aps2


    .dyn.aps2


    LT hook 并不是修改磁盘上的 ELF 文件,而是在运行时修改内存中的数据,

    因此我们主要关心的是执行视图,即 ELF 被加载到内存后,ELF 中的数据是如何组织和存放的。

     size_t (*strlen_ptr)(const char *) = strlen
     
     strlen_ptr (char *)
     
     
     .dynamic 是专门为 linker 设计的,其中包含了 linker 解析和加载 ELF 时会用到的各项数据的索引。
     
     linker 在解析完 ELF 头和执行视图的内容后,就会开始解析 .dyna56mic。
     
     .dynamic
     
     .plt:对外部或内部的符号的调用跳板,.plt 会从 .got 或 .data 或 .data.rel.ro 中查询符号的绝对地址,然后执行跳转。
     
     .plt -> .got  .data.rel.ro 
     
     Android 从 7.0 开始不再允许 app 中 dlopen 系统库
     
     Android 7.0 app dlopen
     dlopen ( 45,dlClose)
     
     网关type = A088 协调器 type = A001   固件(app版本)10 , 硬件 10,
      
     hook技术->  固件版本 改成获取
     
     https://www.zhihu.com/people/bytedance-tech --- 字节技术君

     
     https://blog.csdn.net/muyang_1/article/details/123987088 --- 安卓studio打包提示建议升级到行业标准pkcs12
     
     
     https://www.csdn.net/tags/OtDaMg1sMDQ5MzMtYmxvZwO0O0OO0O0O.html ---  keytool不是内部或外部命令,也不是可运行的程序

     
     java.io.FileNotFoundException: https://massky-download.oss-cn-hangzhou.aliyuncs.com/androidgatewayV1.1.apk
     
     
     Lighter repairman:
    https://github.com/bytedance/bhook/blob/main/doc/overview.zh-CN.md

    Lighter repairman:
    https://www.csdn.net/tags/MtTaIgysMjk1NDA3LWJsb2cO0O0O.html

    Lighter repairman:
    java list统计_List分组统计方法的简单学习|List数据分类

    Lighter repairman:
    https://www.cnblogs.com/xianz666/p/13602953.html

    Lighter repairman:
    java中对list集合中的数据按照某一个属性进行分组

    Lighter repairman:
    https://blog.csdn.net/qq_43306866/article/details/122384856

    Lighter repairman:
    分割一个装有多组数据List集合,并将其每组数据分别存放至不同的List集合中

    Lighter repairman:
    第一步查询  sceneDevice表  根据groupby  panelid  oderby  panel_address

     Android插件化开发指南——Hook技术(一)【长文】  ----  https://blog.csdn.net/qq_26460841/article/details/121497914
     
     
     static public IActivityManager getDefault() {
        return gDefault.get();
    }

    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;
        }
        IActivityManager in =
                (IActivityManager)obj.queryLocalInterface(descriptor);
        if (in != null) {
            return in;
        }

        return new ActivityManagerProxy(obj);
    }

     Singleton IActivityManager
     
     也就是说这里可以Hook容纳AMS的单例得到得到AMS对象。
     
     Hook  AMS对象
     
      Class<?> aClass = Class.forName("android.app.ActivityManagerNative");
                Field getDefault = aClass.getDeclaredField("gDefault");
                getDefault.setAccessible(true);

                // 获取静态的gDefault对象
                Object getDefaultObj = getDefault.get(null);
                // 而实际上AMS在单例Singleton中
                Class<?> singletonClazz = Class.forName("android.util.Singleton");
                Field mInstance = singletonClazz.getDeclaredField("mInstance");
                mInstance.setAccessible(true);
                Object amsObj = mInstance.get(getDefaultObj); // AMS

                aClass.getDeclaredField
                getDefault.get       
                
            mInstance.setAccessible true
            
                2.1.3 对startActivity进行Hook
     
     
     Android常见设计模式——代理模式(Proxy Pattern) ---   https://blog.csdn.net/qq_26460841/article/details/121435532

  • 相关阅读:
    Xilinx 7系列 clock IP核的使用(二)
    mongodb删除集合属性、循环更新
    计算机毕设(附源码)JAVA-SSM基于协同过滤算法的甜品推荐系统
    微信小程序开发之投票管理及小程序UI的使用
    正则表达式的应用
    使用python生成文字图片,画圆圈 ,生成圆形图片
    cudnn-windows-x86_64-8.6.0.163_cuda11-archive 下载
    《机器学习》(周志华) 第6章 支持向量 学习心得 笔记
    ethtool netlink 框架原理浅析
    【VSCode + Anaconda】VSCode [WinError 126]找不到指定模块
  • 原文地址:https://blog.csdn.net/u014644594/article/details/125617713