|
查看: 53|回复: 52
|
[相关教程]
Frida hook Java层常用操作:六个实战模板
[复制链接]
|

UID2
贡献9 点
钻石7 个
C币993 个
|
Frida 是安卓逆向最常用的工具。这篇讲 Java 层 hook 的常用操作。
一、环境准备
- 手机装 frida-server,版本要跟 PC 端 frida-tools 一致
- PC 装 frida-tools:pip install frida-tools
- 确认连接:frida-ps -U 能列出手机进程
二、hook 普通方法- Java.perform(function() {
- var cls = Java.use("com.target.Util");
- cls.encrypt.implementation = function(input) {
- console.log("encrypt input: " + input);
- var ret = this.encrypt(input);
- console.log("encrypt output: " + ret);
- return ret;
- };
- });
复制代码
三、hook 重载方法
方法有多个重载时,要指定参数类型:- cls.login.overload('java.lang.String', 'java.lang.String').implementation = function(u, p) {
- console.log("login: " + u + ", " + p);
- return this.login(u, p);
- };
复制代码
四、hook 构造函数- cls.$init.overload('java.lang.String').implementation = function(arg) {
- console.log("构造函数参数: " + arg);
- this.$init(arg);
- };
复制代码
五、hook 动态加载的类
用 ClassLoader 等类加载后再 hook:- Java.enumerateClassLoaders({
- onMatch: function(loader) {
- try {
- var factory = Java.ClassFactory.get(loader);
- var cls = factory.use("com.target.Dynamic");
- cls.secret.implementation = function() {
- console.log("hooked dynamic class");
- return this.secret();
- };
- } catch(e) {}
- },
- onComplete: function() {}
- });
复制代码
六、主动调用方法
不 hook,直接调目标方法:- Java.perform(function() {
- var cls = Java.use("com.target.Util");
- var instance = cls.$new();
- var result = instance.encrypt("test");
- console.log("主动调用结果: " + result);
- });
复制代码
七、常见技巧
- frida-trace 自动追踪所有方法:frida-trace -U -f com.target.app -j '*'
- 用 spawn 模式启动 App:frida -U -f com.target.app --no-pause,能在 App 启动前就 hook
- hook native 层用 Interceptor.attach,跟 Java 层语法不同
 |
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-5 06:37:36
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-5 07:55:24
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-5 10:31:01
|
显示全部楼层
|
这个流程我在真机上验证过,确实可行,注意备份就行。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-5 14:24:27
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-5 19:35:42
|
显示全部楼层
|
这个方法我用过,确实可行,不过新一点的版本已经加了检测。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-6 02:04:46
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-6 09:51:39
|
显示全部楼层
|
同意楼主的判断,现在加固手段越来越多,纯手工成本太高了。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-6 18:56:20
|
显示全部楼层
|
照着试了一下,第一遍没成功,发现是权限问题,建议楼主补充个提示。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-7 05:18:50
|
显示全部楼层
|
想请教一下,你用的这个版本是哪个?我这边跑起来报错。 |
|
|
|
|
|
|
|
|
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!