这里是SimpleHook的hook部分代码

simpleHook使用说明

中文文档|English

simpleHook.apk(密码:simple)

TG交流群: @simpleHook

本软件主打简单,如名字一样,如果你追求更复杂的hook操作,推荐使用 jsHook(你可以实现更复杂的功能)曲境(电脑端浏览器操作);如果你追求更多的扩展功能,推荐使用算法助手等等类似应用

功能概述:自定义返回值、参数值等,记录常见各种加密算法、toast、dialog、popupwindow、JSONObject创建增加等

1. 功能说明

页面介绍

首页

点击加号,可添加配置,点击添加配置进入下面页面

配置页面

点击‘搜索样式’图标,可进入AppList页面,进行选择应用

点击‘下载样式’图标,可保存配置

点击右下角加号,可在弹出窗口填写配置

有多种模式可以选择,输入类名前建议了解设置页面(smali to config),它可以简化填写

扩展页面

具体功能

点击“播放样式”按钮,可打开悬浮窗(需要授予悬浮窗权限),然后打开目标应用,可以显示一些信息(开启了打印参数值、返回值、扩展页面大部分功能)

悬浮窗

2.自定义Hook编写规则

下面是编写规则:(你可以下载*HookTest.apk*,此App应用了所有情况,并内附有配置)

使用前请先了解设置页【smali转配置】,它可以简化你的操作(配合MT管理器等逆向分析软件)

简要的基本介绍

  • 支持Java语法和Smali语法填写配置信息

    // java
    me.simplehook.MainActivty
    // smali
    Lme/simplehook/MainActivity; //一定要有 --> ; <--
    
  • 支持基本类型和其它类型参数

    // 类型 主要用于填写参数类型和变量类型
    // 基本类型你可以使用java语法这样填
    boolean int long short char byte float double
    // 基本类型你也可以使用smali语法这样填
    Z I J S C B F D
    // 其他类型你可以使用java语法这样填
    java.lang.String android.content.Context 
    // 其他类型你也可以使用smali语法这样填
    Ljava/lang/String; Landroid/content/Context; //一定要有 --> ; <--
    

结果值的填写规则

此处应注意,本软件不像其他软件一样需要填写返回值、参数值类型,本软件并不需要,你只需要按照规则填写,自动判断

2.1. 基本类型

类型(java、smali) 值的例子 注意事项
布尔值(boolean、Z) true、false
整数(int、I) 1、2、3
长整型(long、J) 1l、120000L、123456l 要注意:数字 + L
短整型(short、S) 1short、2short 要注意:数字 + short
字符(char、C) 195c 要注意:符合char类型的字符 + c
字节(byte、B) 2b、3b 要注意:符合byte类型的字符 + b
单浮点(float、F) 2f、3f、3.0f 要注意:数字 + f
双浮点(double、D) 2d、3d、3.0d 要注意:数字 + d

2.2. null

其他类型只能返回null(字符串除外),null

2.3. 字符串

2.3.1 一般情况

不符合基本类型和null的全部转化为字符串类型

2.3.2 特殊情况
特殊的字符串 值的例子 注意事项
数字 111s, 2002s 常见于 "111111" 这种,但是本软件你需要在数字后面加入s,如果你不加s,会被转成数字,可能导致目标应用崩溃
布尔 trues、falses 常见于 "true" 、"false" 这种,但是本软件你需要在布尔值后面加入s,如果你不加s,会被转成布尔值,可能导致目标应用崩溃
null nulls 常见于 "null"这种,但是本软件你需要在null后面加入s,如果你不加s,会被转成null,可能导致目标应用空指针
空字符串 英文单词'empty' 或者中文汉字'空' 如果你直接填空,将无法保存配置,这样做是为了预防你在使用时不填修改值导致无法正常Hook
2.3.3 随机文本返回值

仅用于返回值,返回值填写下面json代码

   {
	    "random": "abcdefgh123456789",
	    "length": 9,
	    "key": "key",
	    "updateTime": 100,
	    "defaultValue": ""
    }

上述json格式代码介绍: random:字符串,填写随机文本由哪些字符组成

​ length:整数,代表需要生成多长的随机文本

​ key:字符串,唯一识别码,可以随便填写,但是一个软件中用到多个随机返回值时需要填不一样的

​ updateTime:整数,代表着间隔多长时间更新一下随机文本,单位秒, -1代表每次都更新

​ defaultValue:非必填项

3.具体的hook模式

hook返回值

//  例如1
  import simple.example;
  Class Example{
    public static boolean isFun() {
      boolean result = true;
      ...
       ...
      return result
    }
  }
  /*
  模式选择 Hook返回值
  类名应填:simple.example.Example
  方法名应填:isFun
  参数类型应填:(此处留空,因为没有参数)
  修改值应填:true 或者 false
  */

/*
多个参数参数类型的填法(用英语逗号分开,参数类型支持数组):
boolean,int,android.content.Context
*/
// 例如2
  import simple.example;
  class Example{
    public static String isFun(Sring str, Context context, boolean b) {
      String result = str;
      ...
       ...
      return result
    }
  }
/*
  模式选择 Hook返回值
  类名应填:simple.example.Example
  方法名应填:isFun
  参数类型应填:
    java语法: java.lang.String,android.content.Context,boolean   (使用参数间使用英文逗号分开,仅一个参数不需要加逗号)
    smali语法:Ljava/lang/String;,Landroid/content/Context;,Z
  修改值应填:是个字符串 (应符合结果值的填写规则,不需要加引号)
*/

hook返回值+

此功能可以将json转为对象(使用Gson),你如果不知道这个对象的Json格式是什么样子的,可以使用【记录返回值】功能,复制返回值即可。这个功能并不是万能的,不适用所有情况,简单的数据类应该是没有问题的,暂不支持数组。

模式:hook返回值+

返回值的类名:填返回值的类名

修改值:填json代码,如

{"isHook":false,"level":10000}

举个例子:

import simple.example;

// 数据类
public class UserBean {
   private boolean isHook;
   private int level;

   public UserBean(boolean isHook, int level) {
       this.isHook = isHook;
       this.level = level;
   }
}

public class Example{
   public static UserBean isFun() {
     UserBean userBean = new UserBean(true, 10);
     ...
      ...
     return userBean
   }
 }
/*
假如hook isFun的返回值
模式:hook返回值+
类名:simple.example.Example
方法名:isFun
参数类型:
返回值的类名:simple.example.UserBean
结果值:{"isHook":false,"level":10000}
*/

hook参数值

// 类型值同 hook返回值类型
//特殊用法,如下面一段代码
public boolean isModuleLive(Context context, String str, int level){
  
    retrun true
}
//如果你只想要hook level的值,你可以在修改值那一栏向下面这样填
,,99
//如果你只想要hook str的值,你可以在修改值那一栏向下面这样填
,啦啦啦,
//如果你只想要hook str、level的值,你可以在修改值那一栏向下面这样填
,啦啦啦,99
//如果你想要全部hook,你可以在修改值那一栏向下面这样填
null,啦啦啦,99 // context为null也许导致闪退
/*
多个参数参数类型的填法(用英语逗号分开):
android.content.Context,jave.lang.String,int
或者如下填写
Landroid/content/Context;,Ljave/lang/String;int
*/

中断执行

// 此模式会拦截方法执行
// 如hook返回值或者hook参数值一样填,不需要填写返回值、参数值
public void printString() {
    System.out.println("start");
    testBreakMethod();
    System.out.println("end");

    /*
      输出结果为
      start
      end

      test Break Mode 没有被输出
    */
}

// 假如:此方法被中断
public void testBreakMethod() {
    System.out.println("test Break Mode")
}

Hook所有同名方法

/*
  Hook一个类所有同名方法,参数类型填写 * 即可
*/

Hook一个类中所有方法

/*
  Hook一个类所有方法,方法名填写 * 即可;参数类型可随意填写,有些h不可为空
*/

构造方法

// 方法名填写:<init>
import simple.example;
public class Example{
  int a;
  int b;
  public Example(int a, boolean b) {
    this.a = a;
    this.b = b
  }
}
// Hook模式,根据自己的需求选择,一般为hook参数值/记录参数值,其他模式可能造成软件闪退
/*
  方法名填写:<init>
  例如修改两个参数值
    类名填写:simple.example.Example
    方法名填写: <init> 
    参数类型填写:int,int
    结果值填写:88,99
 */

HOOK静态变量

import simple.example;
public class Example{
  public static boolean isTest = false;
}

import simple.example;
public class MainActivity extends Acitvity {
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();
    }

    private void initData(){
      Example.isTest = false;
    }

    private void initView() {
      //你想要修改 isTest为true,所以你应当再这个变量被赋值后再去hook
      System.out.println(Example.isTest); 
    }
}
// 具体的值只支持基本类型,和字符串
// 无需填写变量类型;要符合[结果值]填写规则
/*
  模式选择 Hook静态变量
  hook点:after/before  根据需要填写,默认after
  类名应填:simple.example.MainActivity;
  方法名应填: initData
  参数类型应填:(什么都是不填,因为这个方法没有参数)
  变量所在类名:simple.example.Example
  变量名应填:isTest
  修改值应填:true/false
*/

HOOK实例变量

import simple.example;
public class UseBean {
    private boolean isHook;
    private int level;

    public UseBean(boolean isHook, int level) {
        this.isHook = isHook;
        this.level = level;
    }

    public boolean isHook() {
        return isHook;
    }

    public void setHook(boolean hook) {
        isHook = hook;
    }

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }
}

import simple.example;
public class MainActivity extends Acitvity {
  private User user;
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();
    }

    private void initData(){
      user = new User(true, 100);
    }

    private void initView() {
      //你想要修改isHook、level,所以你应当再这个变量被赋值后再去hook
      System.out.println(user.isHook()); 
      System.out.println(user.getLevel()); 
    }
}
// 具体的值只支持基本类型,和字符串
// 无需填写变量类型;要符合[结果值]填写规则
/*
  模式选择 Hook变量
  hook点:after/before  根据需要填写,默认是after
  类名应填:simple.example.UseBean;
  方法名应填: <init>   // <init>  表示构造方法
  参数类型应填:boolean,int
  变量名应填:isHook
  修改值应填:true/false

  实例变量/成员变量:不支持像静态变量一样跨类hook,只能在本类的某个方法执行后,再去hook变量值
*/

记录参数值

方法的参数值会被记录,前往记录页面可以查看、 若参数是数组或者list会被转成json格式

记录返回值

方法的返回值会被记录,前往记录页面可以查看 若结果是数组或者list会被转成json格式

记录参返

方法的参数值、返回值会被一同记录,前往记录页面可以查看 若结果是数组或者list会被转成json格式 若参数是数组或者list会被转成json格式

扩展Hook

切记打开总开关 功能请前往app查看

4.常见问题(FAQ)

1.hook没有效果

  • 可看框架日志,是否有报错等
  • 储存文件更新配置某些情况下需要手动刷新,开启、关闭、编辑保存即可刷新
  • 请授予所需权限(android11以下:储存权限,android11及以上:ROOT权限)

2.什么是smali转配置

开启此实验功能后,配置页面顶部会增加‘粘贴板’图标,点击可将应用调用代码或签名,转化为配置(防止手动输入错误),增加配置后你需要手动选择合适的模式以及结果值 调用代码例子:

 iget v0, p0, Lme/duck/hooktest/bean/UseBean;->level:I
 invoke-virtual {v0}, Lme/duck/hooktest/bean/UseBean;->isHook()Z

方法签名、字段签名例子:

Lme/duck/hooktest/bean/UseBean;->level:I
Lme/duck/hooktest/bean/UseBean;->isHook()Z

上述可在MT管理器导航中长按字段或方法选择复制签名或者查找调用

3.为什么目标应用运行很慢

请关闭不必要的扩展HOOK和记录参数、返回值功能, 例如:md5、base64等,这些功能会产生大量的Log

4.

5.

6.什么是hook点

hook静态变量、实例变量支持手动填写hook点,hook点就是在方法执行前hook还是在方法执行后hook

before:方法执行前hook; after:方法执行后hook

7.什么是删除遗留配置

当你卸载本应用或者清除数据时,目标应用配置文件仍然可能保存在储存文件中

  1. /data/local/tmp/simpleHook/目标应用包名/config/
  2. /storage/emluated/0/Android/data/目标应用包名/simpleHook/config/

这个功能就是遍历所有的应用目录并删除无用的配置(本应用内未显示其配置)

因为需要遍历所有应用会比较慢

Package

me.simplehook

Releases

1.3.4

Release type: Stable

3/2/2024, 3:02:30 PM

蓝奏云下载 密码: simple
Update/更新记录

  • 优化: 收藏配置功能

  • 优化: 应用列表页加载速度

  • 增加: 支持新版JsHook配置导出

  • 增加: 可以单独为每个配置 增加描述(需要在设置页面开启「配置弹窗在底部」功能)

  • 修复: 「记录」搜索问题

  • 修复: 应用版本名为空时的错误

  • 优化: UI, 支持跟随系统主题色

  • Optimize: favorite config

  • Optimize: the loading speed of app list

  • Add: support export config for new JsHook

  • Add: can add a note for each config ( need to enable the 「Config dialog at the bottom」 on the settings page)

  • Fix: 「Record」 search

  • Fix: crash with app version-name is null

  • Optimize: UI, support follow system theme color

ROOT[Recommend]: Root permission is required to write configuration and read records (Log)
Normal: Storage permissions are required to write configurations and read records (Log). Android 13 requires each app to grant permissions individually
Lite: No permission required, only for LSPosed, no extensions, no recording, Android version >8

ROOT【推荐】: 需要root权限进行写入配置,以及读取记录(Log)
Normal: 需要存储权限进行写入配置,以及读取记录(Log),同样适用于LSPatch,安卓13需要每个应用单独授予权限
Lite: 无需任何权限,仅用于LSPosed,无扩展功能,无记录功能,安卓版本 >8

1.3.3

Release type: Stable

3/4/2023, 7:47:35 AM

蓝奏云下载 密码: simple
Update/更新记录

  • 修复: 无法删除配置问题(root 版)

  • 增加: 禁用 USB调式检测

  • 增加: 伪装签名 (系统API)

  • 增加: 阻止读取剪贴板、过滤写入剪贴板,支持记录读写剪贴板

  • 增加: 监听文件操作

  • 增加: 增加配置后(root版),在LSPosed管理器中也会启用目标应用,你需要手动禁用再启用本模块方能生效。参考:Guise(作者 Houvven)、LSPosed

  • 优化: UI

  • 优化: 弹窗拦截

  • 增加: 自动备份,本地备份,云备份(webdav)

  • Fix: Unable to delete config (root version)

  • Add: Disable USB debugging detection

  • Add: Masquerading Signature (System API)

  • Add: Prevent reading the clipboard, filter write to the clipboard, support record read and write clipboard。

  • Add: Monitor file operations

  • Add: After adding the config (root version), the target app will also be enabled in the LSPosed manager, you need to manually disable and enable SimpleHook to take effect. Ref: Guise(by Houvven)、LSPosed

  • Optimize: UI

  • Optimize: Disable show dialog

  • Add: AutoBackup, local backup, cloud backup(webdav)

ROOT: Root permission is required to write configuration and read records (Log)
Normal: Storage permissions are required to write configurations and read records (Log). Android 13 requires each app to grant permissions individually
Lite: No permission required, only for LSPosed, no extensions, no recording, Android version >8

ROOT: 需要root权限进行写入配置,以及读取记录(Log)
Normal: 需要存储权限进行写入配置,以及读取记录(Log),同样适用于LSPatch。安卓13需要每个应用单独授予权限
Lite: 无需任何权限,仅用于LSPosed,无扩展功能,无记录功能,安卓版本 >8

1.3.1

Release type: Stable

2/11/2023, 2:14:41 PM

蓝奏云下载 密码: simple
Update/更新记录

  • 修复: 若干bug,提高稳定性

  • 增加: 禁用加速度传感器、陀螺仪传感器,如X信会提示传感器不可用

  • 增加: 禁用运动传感器,包括:加速度传感器、陀螺仪传感器等

  • 优化: 网络导入配置逻辑

  • 适配: 安卓13(normal 版)

  • 增加: 长按首页配置item,可选择手动排序

  • Fix: bugs

  • Add: Disable acceleration sensor, gyroscope sensor

  • Add: Disable motion sensors, including: acceleration sensor, gyroscope sensor, etc.

  • Optimize: Network import configuration logic

  • Adapt: Android 13 (normal version)

  • Add: Long press the homepage config item, you can choose to sort manually

ROOT: Root permission is required to write configuration and read records (Log)
Normal: Storage permissions are required to write configurations and read records (Log). Android 13 requires each app to grant permissions individually
Lite: No permission required, only for LSPosed, no extensions, no recording, Android version >8

ROOT: 需要root权限进行写入配置,以及读取记录(Log)
Normal: 需要存储权限进行写入配置,以及读取记录(Log),同样适用于LSPatch。安卓13需要每个应用单独授予权限
Lite: 无需任何权限,仅用于LSPosed,无扩展功能,无记录功能,安卓版本 >8

1.3.0

Release type: Stable

1/29/2023, 7:37:30 AM

蓝奏云下载 密码: simple
Update/更新记录

Note: This version has updated the signature, please backup the configuration. LSPosed Manger: Backup module list and scope lists.
注意:这个版本更新了签名,请备份配置。如使用LSPosed可以备份作用域。

  • 修复: hook实例变量

  • 增加: 长按首页配置item:【启动】、【强行停止】、【重新启动】、【应用信息】

  • 增强: 弹窗拦截

  • 增加: 记录应用读取签名时的调用堆栈(通过API)

  • 增加: 阻止应用获取联系人,返回NULL

  • Fix: hook instance field

  • Add: long click the homepage config item:[Launch it(app)]、[Force stop]、[Restart launch]、[App info]

  • Improve: intercept dialog

  • Add: record the call stack when the app reads the signature (by API)

  • Add: prevent app from obtaining contacts, return NULL

lite版:为精简版,仅有自定义hook功能。需要安卓版本>=8.1,有New XSharedPreferences支持,如LSPosed、EdXposed等
lite version: with only custom hooks. Require: Android version >= 8.1 and New XSharedPreferences support, such as LSPosed, EdXposed, etc.

md5(sign): 987CB9B2F5F78D726C7B5D490777CAF6
md5(SimpleHook): 8C1C356EE573699B1AABCEC50C1F5085
md5(SimpleHookLite): 0DAC68F9103EB5D79F8F911C1DADFFAA

1.2.9

Release type: Stable

1/24/2023, 12:00:09 PM

蓝奏云下载 密码: simple
Update/更新记录

  1. 修复若干问题,提高稳定性

  2. Fix: bugs

lite版:为精简版,仅有自定义hook功能。需要安卓版本>=8.1,有New XSharedPreferences支持,如LSPosed、EdXposed。
lite version: with only custom hooks. Require: Android version >= 8.1 and New XSharedPreferences support, such as LSPosed, EdXposed, etc.

md5(sign): 8e51f56a19cd521d4e0e7868dc72f589
md5(SimpleHook): 34e7ef475bd40a1d0112fc37fba6c4bc
md5(SimpleHookLite): fc35dc38b8a3f8e2c4833eeb55da34cd

1.2.8

Release type: Stable

1/21/2023, 1:44:10 PM

蓝奏云下载 密码: simple
Update/更新记录

  1. 引入EzXHelper库

  2. 去除从数据库读取配置方式

  3. 支持hook一个类的所有方法,方法名填 *

  4. 修复smali转"配置"的一个问题

  5. android 10以上使用ROOT权限

  6. Using EzXHelper library for hook

  7. Delete: read config from db

  8. In a class, you can hook all methods by fill * in the method name

  9. Fix a bug: smali to config

  10. Above android 10 use ROOT permission

此版本如不生效:先备份配置,然后删除所有配置/清理软件数据,再恢复配置即可;也可以一个一个手动开关配置,使配置刷新。(应该是a11和a12会有问题)

If this version take no effect: first backup the config, then delete all config/clear simplehook data, and then restore the config; you can also refresh the configs by open and close swtich one by one. android 11 and android 12 may be have this problem.

md5(apk): fcbc2d5b699525ee2f5f05dd5794cf0a
md5(sign): 8e51f56a19cd521d4e0e7868dc72f589

1.2.7

Release type: Stable

1/15/2023, 2:35:27 PM

蓝奏云下载 密码: simple
Update/更新记录

  • 修复读写记录

  • 修复recycler view 嵌套 check box导致的数据错乱问题

  • fix: [record] bug

  • fix: a bug caused by recycler view nested check box

md5(app): e01e54ac29fa319a9f3007553e6a5e04
md5(sign): 8e51f56a19cd521d4e0e7868dc72f589

1.2.6

Release type: Stable

1/8/2023, 2:10:26 PM

蓝奏云下载 密码: simple
Update/更新记录

  1. 安卓13及以上使用root权限写入配置

  2. 记录信息(扩展功能:加密算法、弹窗信息等)须保持本应用在后台运行

  3. fix: bugs

  4. 支持文本文件外部打开simplehook导入配置

  5. Android 13 and above write config by using root

  6. Record(extension functions: encryption algorithm, dialog information, etc.) must keep the app running in the background

  7. fix: bugs

  8. Support import config from external text file

md5(app):db836d8e20a3728ed435148763a351f0
md5(sign):8e51f56a19cd521d4e0e7868dc72f589

v1.2.5

Release type: Stable

6/5/2022, 8:02:29 AM

蓝奏云下载 密码: simple

更新记录/Update

  1. 增加扩展Hook:记录应用入口名

  2. 修复删除配置界面卡顿的情况

  3. Add extension: record application name

  4. Fix: Deleting the config causes the UI to lag

app md5(normal): 7f7c0dffd4bd87e91d763365ef80f7c6
app md5(root): 50ae6324623cd10d29022586f747c1e1
app sign md5: 8e51f56a19cd521d4e0e7868dc72f589

请优先使用普通版/Please use the normal version first

1.2.4

Release type: Stable

5/22/2022, 1:41:43 PM

蓝奏云下载 密码: simple

更新记录

1.支持记录变量值
2.加入【hook返回值+】,它可以返回一个对象通过json代码,详细说明见Github
3.hook变量增加【Hook点】,after/before表示在方法执行后/前hook变量,默认after
4.多个问题修复

1.Support record field value
2.Add [hook return value+], it can return an object through json code, see Github for details
3.The hook field increases [Hook point], after/before means the Hook field after the method is executed or before the method is executed, the default 'after'
4.Multiple bug fixes

app md5(normal): de9db046bc3144946657940b30c04d4f
app md5(root): 27cdf55ad86b71711679cee04bee66df
app sign md5: 8e51f56a19cd521d4e0e7868dc72f589

请优先使用普通版/Please use the normal version first

1.2.3

Release type: Stable

5/7/2022, 5:19:15 AM

蓝奏云下载 密码: simple

更新记录

1.hook返回值可以返回随机文本(请参考Github修改值中string部分)
2.可以阻止带有关键词的文本写入剪贴板(可以使用正则表达式,多个关键词需要换行输入)
3.【拦截关键词弹窗】多个关键词需要换行输入(已用逗号的需自行更改)

  1. The return value of hook can return random text (please refer to the string section in the Github result value filling rule)
  2. Can prevent text with keywords from being written to the clipboard (regular expressions can be used, multiple keywords need to be entered in newlines)
  3. [Block keyword pop-up window] Multiple keywords need to be entered in a new line (the ones that have used commas need to be changed by yourself)

app md5(normal): a5a3c0225402fde07326aca52735be13
app md5(root): aabc01c82f0f7f070c323416ba0c03f5
app sign md5: 8e51f56a19cd521d4e0e7868dc72f589

请优先使用普通版/Please use the normal version first

1.2.2

Release type: Stable

4/30/2022, 2:28:37 PM

蓝奏云下载 密码: simple

更新记录

签名变更,请备份好数据,卸载重装
1.多个问题修复、多处细节调整
2.扩展hook支持拦截关键词弹窗,多个关键词使用‘,’分隔开
3.支持标记记录(记录页面向左滑动),并可导出标记的记录
4.部分页面的item添加滑动菜单,向左滑动item即可
5.对导出的JsHook配置进行调整
6.悬浮窗UI更改(参考JsHook)
7.hook变量调整(不兼容旧版),具体填写请看使用说明(关于页面 -> 帮助)
8.支持在原始数据、加密结果、解密结果中搜索记录(记录页面 -> 右上角)

Signature change, please back up your data, uninstall and reinstal

  1. Multiple bug fixes, multiple detail adjustments
  2. The extension hook supports intercepting keyword pop-ups, and multiple keywords are separated by ','
  3. Support marked records (swipe left on the record page), and can export marked records
  4. Add a swipe menu to the items on some pages, just slide the item to the left
  5. Adjust the exported JsHook configuration
  6. Floating window UI changes (refer to JsHook)
  7. Hook field adjustment (incompatible with the old version), please refer to the instruction manual for details (About page -> Help)
  8. Support searching records in raw data, encrypted results, decrypted results (record page -> upper right corner)

app md5(normal): 2d26f891c501df502373a0baa908780a
app md5(root): 649896e8b4929034c563cf1b96bf23de
app sign md5: 8e51f56a19cd521d4e0e7868dc72f589
请优先使用普通版/Please use the normal version first

v1.1.8

Release type: Stable

4/2/2022, 4:58:05 AM

蓝奏云下载 密码: simple

更新记录

1.修复多个问题
2.更多的英文支持
3.支持hook构造方法:方法名填写类名简称或者<init>

1.Fix multiple issues
2.More English support
3.Support hook construction method: The method name fills in the simple name of the class or <init>

1.1.7

Release type: Stable

3/30/2022, 8:35:55 AM

蓝奏云下载 密码: simple

更新记录

1.增加:单个配置的开关
2.增加实验功能:导出配置为JSHook-Rhino,仍然存在一些问题待解决
3.修复部分机型无法记录Toast的问题
4.加入更新检测(Github)
5.记录可滑动删除
6.修复:部分类型判断错误
7.配置页面显示细节调整
8.增加:参数类型填”*“,会Hook改方法所在类所有同名方法(框架不会捕捉异常,如果不生效,需要自行排查问题)
9.Hook过程中部分错误会被记录,记录页面查看【Hook Error】

1.Add: switch for single configuration
2.Add experimental function: export configuration as JSHook-Rhino, there are still some problems to be solved
3.Fix: the problem that some models could not record Toast
4.Add: update check (Github)
5.Records can be swiped to delete
6.fix: some type judgment errors
7.Configuration page display details adjustment
8.Add: Enter in "*" for the parameter type, it will hook all methods with the same name in the class where the method is located (the xposed framework will not catch exceptions, if it does not take effect, you need to troubleshoot the problem yourself)
9.Some errors during the hooking process will be recorded, check the record page [Hook Error]

Release type: Stable

3/27/2022, 12:35:51 PM

1.修复一些bug
2.部分配置错误不再影响其他配置正常HOOK(ClassNotFoundError、NoSuchMethodError)
3.支持设置中文(繁体)、English
4.优化分类记录加载速度,修复数据相对过多导致内存溢出的问题
5.使用paging3加载【记录】
[蓝奏云](https://wwp.lanzoub.com/b0177tlri) 密码:simple

1.Fix some issues
2.Some configuration errors no longer affect other configuration hooks(ClassNotFoundError、NoSuchMethodError)
3.Support setting 中文(繁体)、English
4.Improve the loading speed of classified records, and fix the problem of memory overflow
5.Load [record] by paging3

v1.1.5

Release type: Stable

3/25/2022, 11:49:55 AM

v1.1.5
1.增加:英语语言显示
2.增加:记录JSON操作
3.修复:配置删除后储存目录仍有配置的问题
4.移除:更新检测
1.Add: Support English
2.Add: Log JSON operations
3.Fix: a bug by delete config
4.remove: check new version

蓝奏云 密码:simple

v1.1.3

Release type: Stable

3/22/2022, 12:51:18 PM

1.Hook部分代码已放到github
2.修复部分情况下造成的闪退
3.半修复appList页面卡顿
4.其他bug修复

蓝奏云, 密码:simpleHook