Android中接入hook框架:lancet-base

me.ele:lancet-base是"饿了么"开发的Android平台的开源hook框架,GitHub地址为:https://github.com/eleme/lancet。

此框架的优点如下:
1.编译速度快, 并且支持增量编译。
2.简洁的 API, 几行 Java 代码完成注入需求。
3.没有任何多余代码插入 apk。
4.支持用于 SDK, 可以在SDK编写注入代码来修改依赖SDK的App。

接入me.ele:lancet-base框架的步骤如下:

1.在项目根目录的build.gradle中添加:

dependencies {
    ...
    classpath 'com.bytedance.tools.lancet:lancet-plugin-asm6:1.0.2'
}

2.在主module的build.gradle中添加:

apply plugin: 'me.ele.lancet'

3.在module的build.gradle中添加:

dependencies {
    ...
    implementation "me.ele:lancet-base:1.0.6"
}

4.在module中添加hook代码:

import me.ele.lancet.base.Origin;
import me.ele.lancet.base.annotations.Proxy;
import me.ele.lancet.base.annotations.TargetClass;

@Proxy("i")
@TargetClass("android.util.Log")
public static int anyName(String tag, String msg) {
    msg = msg + "lancet";
    return (int) Origin.call();
}

说明:
1. @TargetClass:指定了将要被织入代码的目标类,此处为:android.util.Log。
2. @Proxy:指定了将要被织入代码的目标方法,此处为:i。
3. Origin.call():代表了 Log.i() 这个目标方法。
4. 所以这个示例Hook方法的作用就是:将代码里出现的所有 Log.i(tag,msg) 代码替换为Log.i(tag,msg + "lancet")。

相关推荐

  1. Android接入hook框架lancet-base

    2024-07-23 10:30:03       45 阅读
  2. Android开发常见的Hook技术有哪些?

    2024-07-23 10:30:03       61 阅读
  3. #android框架

    2024-07-23 10:30:03       44 阅读
  4. Android Native Hook 深入理解PLT hook

    2024-07-23 10:30:03       61 阅读
  5. AndroidBase64转图片

    2024-07-23 10:30:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 10:30:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 10:30:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 10:30:03       87 阅读
  4. Python语言-面向对象

    2024-07-23 10:30:03       97 阅读

热门阅读

  1. 如何平衡硬约束与软约束

    2024-07-23 10:30:03       42 阅读
  2. 医学深度学习与机器学习融合的随想

    2024-07-23 10:30:03       48 阅读
  3. 19、基于共享内存的内存池

    2024-07-23 10:30:03       40 阅读
  4. Hisilicon适配按键

    2024-07-23 10:30:03       42 阅读
  5. qml实现双指左右滑动,上下滑动

    2024-07-23 10:30:03       39 阅读
  6. LeetCode 算法:分割回文串 c++

    2024-07-23 10:30:03       40 阅读
  7. 【力扣每日一题】

    2024-07-23 10:30:03       39 阅读
  8. JVM类加载机制详解

    2024-07-23 10:30:03       37 阅读
  9. Python:字典(Dictionary)基础应用

    2024-07-23 10:30:03       29 阅读