android frida 检测_android逆向__超级好用,使用frida追踪方法

本文介绍了如何利用frida工具追踪Android应用的方法调用。通过示例展示了如何创建测试项目,修改js脚本追踪特定方法,并在终端查看详细的调用信息,从而在逆向工程中获取关键数据。

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

前言

前提是你的电脑和手机都已经安装了frida并运行正常。

如果你还没安装frida,请参考文章 Android逆向_使用frida 安装frida环境。

这里使用国外大佬写的js脚本,来追踪app的方法调用,首先看一下效果:

*** entered com.test.flyer.MainActivity.test

arg[0]: Jack

*** entered com.test.flyer.MainActivity.gainAge

arg[0]: 16

retval: 26

*** exiting com.test.flyer.MainActivity.gainAge

retval: OK

*** exiting com.test.flyer.MainActivity.test

[LGE Nexus 5::com.example.king.testappsflyer]->

复制代码

可以看到test方法有一个参数"Jack",返回值是"OK",test内部调用了gainAge方法,gainAge方法有一个参数"16"并返回"26"。这些打印信息对于逆向app来说非常的重要。

创建android测试项目

我这里创建了一个简单的安卓测试项目,MainActivity.java中的主要代码如下:

public String test(String name) {

Log.d("test", "do--test");

int age = gainAge( 16 );

Toast toast=Toast.makeText(MainActivity.this, "do--test--success--"+name+"--age="+age, Toast.LENGTH_LONG);

//显示toast信息

toast.show();

return "OK";

}

private int gainAge(int age) {

Log.d("test", "do--gainAge--age= "+age);

return age+10;

}

复制代码

我们一会用frida追踪test和gainAge这两个方法的调用。

使用真机运行这个android项目,以便手机上安装这个app。

修改脚本

即将使用的js脚本是raptor_frida_android_trace.js如下,脚本内容较长,只展示需要我们手动修改的部分:

setTimeout(function() {

Java.perform(function() {

trace("com.test.flyer.MainActivity.test");

trace("com.test.flyer.MainActivity.gainAge");

});

}, 0);

复制代码

我们在js脚本的setTimeout处添加了两行代码:

trace("com.test.flyer.MainActivity.test");

trace("com.test.flyer.MainActivity.gainAge");

复制代码

表示追踪test和gainAge这两个方法。

追踪调试

打开终端,输入如下的命令启动app并加载这个我们修改后的js脚本:

frida -U -f com.example.king.testappsflyer --no-pause -l raptor_frida_android_trace.js

复制代码

"com.example.king.testappsflyer"是我们的app包名,"raptor_frida_android_trace.js"是脚本文件。

看到终端打印信息:

$ frida -U -f com.example.king.testappsflyer --no-pause -l raptor_frida_android_trace.js

____

/ _ | Frida 12.1.2 - A world-class dynamic instrumentation toolkit

| (_| |

> _ | Commands:

/_/ |_| help -> Displays the help system

. . . . object? -> Display information about 'object'

. . . . exit/quit -> Exit

. . . .

. . . . More info at http://www.frida.re/docs/home/

Spawned `com.example.king.testappsflyer`. Resuming main thread!

[LGE Nexus 5::com.example.king.testappsflyer]-> Tracing com.test.flyer.MainActivity.test [1 overload(s)]

Tracing com.test.flyer.MainActivity.gainAge [1 overload(s)]

复制代码

app的界面如下:

当点击"测试"按钮,执行test方法,终端打印如下:

能清晰地看到方法的参数和返回值以及方法之间的嵌套关系。

结束

国外大佬的github地址 frida-scripts。该项目中还有其他好用脚本,对用iOS和android的调试很有帮助。等待各位大佬一起探索。

如需获取本文涉及到的android工程和js文件,可关注公众号"逆向APP",回复"frida追踪方法01"获取下载地址。

关注公众号:逆向APP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值