jshook使用

本文介绍了jshook在xposed框架下如何配合frida工作,讲解了frida inject、frida-gum和frida-gadget的区别,并详细阐述了jshook的配置过程,包括frida-server的安装和脚本注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

frida 持久化的新方式 jshook

jshook :一个xposed 框架 可以调起来frida


提示:以下是本篇文章正文内容,下面案例可供参考

一、frida inject,frida-gum,frida-gadget的区别

frida gum

下载压缩包以后 有三个文件
frida-gum.h
frida-gum-example.c
libfrida-gum.a
使用clang编译一下
变成一个so
frida-gum/ 提供 inline hook 、代码跟踪、内存监控、符号查找以及其他多个上层基础设施实现。

gum-js/ 为 frida-gum 提供 JavaScript 语言的接口

inject

把inject push到data/local/tmp
chmod 777
./frida-inject
也有-f -s
脱离pc 来应用

### JavaScript Hook 实现与用法 在 JavaScript 中,`Frida` 是一种强大的动态工具,可以用来 hook 和修改运行时的行为。以下是关于 `JavaScript` 中如何实现和使用 hook 的详细介绍。 #### 使用 Frida 进行 Hook 当需要 hook Java 方法时,可以通过 `Java.use()` 加载目标类并定义新的行为来覆盖原始方法的逻辑[^4]。例如: ```javascript var targetClass = Java.use("com.example.MyClass"); targetClass.myMethod.implementation = function(arg1, arg2) { console.log("[Hooked Method] Arguments:", arg1, arg2); var result = this.myMethod(arg1, arg2); // 调用原生方法 console.log("[Hooked Method] Result:", result); return result; }; ``` 上述代码展示了如何通过 `implementation` 属性替换原有方法的实现,并记录输入参数和返回值[^2]。 #### Hook 加密算法的具体应用 对于常见的加密算法(如 AES、RSA 或 DES),通常会涉及 key、iv、明文以及密文等内容。这些敏感数据可能存储于特定对象或变量中,在调用加解密函数前被初始化。因此,hook 对应的方法可以帮助捕获这些信息[^3]。下面是一个简单的例子展示如何 hook AES 加密过程: ```javascript // 假设存在一个名为 CryptoUtil 的类负责执行AES操作 var cryptoUtil = Java.use('com.security.CryptoUtil'); cryptoUtil.encrypt.overload('[B', '[B').implementation = function(plainTextBytes, keyBytes){ console.log("[Before Encryption] Plain Text Bytes:", plainTextBytes.toString()); console.log("[Before Encryption] Key Bytes:", keyBytes.toString()); let encryptedData = this.encrypt(plainTextBytes, keyBytes); console.log("[After Encryption] Encrypted Data:", encryptedData.toString()); return encryptedData; } ``` 此脚本拦截了指定类型的 encrypt 函数调用,打印出每次传入的数据及其产生的结果。 #### 日志输出示例 为了验证钩子是否生效,可以在适当位置加入日志语句以便观察程序内部状态变化情况。如下所示的日志消息会在触发某个条件时显示出来: ```javascript console.log("[javascript] isExcellent be called."); ``` 该命令简单地向控制台发送一条通知字符串表示当前挂钩点已被访问到[^1]。 --- ### 总结 以上介绍了基于 frida 工具链下的 javascript 编程环境下完成 hooks 功能的方式,包括基础概念介绍和技术细节分析两大部分内容。希望对你有所帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sugar椰子皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值