前提是你的电脑和手机都已经安装了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来说非常的重要。

我这里创建了一个简单的安卓测试项目,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"获取下载地址。

android frida 检测_android逆向__超级好用的使用frida追踪方法相关推荐

  1. android frida 检测_Android 逆向 | Frida 是万能的吗? 检测 Frida 的几种办法

    Frida 在逆向工程狮中很受欢迎,你基本可以在运行时访问到你能想到的任何东西,内存地址.native 函数.Java 实例对象等. 在 OWASP 的移动测试指南里就提到了 Frida.但是啊,每出 ...

  2. android 人脸检测_Android人脸检测

    android 人脸检测 With the release of Google Play services 7.8, Google has brought in the Mobile Vision A ...

  3. android html 换行_Android中Strings资源加空格,换行符,@等方法示例

    Android中Strings资源添加空格,换行符,@等方法,或者替换符等,非常有用,如何在string资源文件里面加入空格,换行,tab等呢?请看如下: test                  ...

  4. 5、frida进阶-Android逆向之旅---Hook神器家族的Frida工具使用详解

    本文转载自:https://www.cnblogs.com/qwangxiao/p/9255328.html 一.前言 在逆向过程中有一个Hook神器是必不可少的工具,之前已经介绍了Xposed和Su ...

  5. 抖音android x86,抖音数据采集教程,详解Hook框架frida,让你在逆向工作中效率成倍提升!...

    免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负. 一.frida简介frida是一款基于python + java 的hook框架,可运行在androidioslinuxwinos ...

  6. 基于 frida 实现的逆向工具包 hooker

    hooker逆向工作台:https://github.com/CreditTone/hooker hooker 是一个基于 frida 实现的 逆向工具包.为逆向开发人员提供统一化的脚本包管理方式.通 ...

  7. 安卓逆向_24( 一 ) --- Hook 框架 frida( Hook Java层 和 so层) )

    From:Hook 神器家族的 Frida 工具使用详解:https://blog.csdn.net/FlyPigYe/article/details/90258758 详解 Hook 框架 frid ...

  8. [免费专栏] Android安全之静态逆向APK应用浅析「手动注入smali」+「IDA Pro静态分析so文件」+「IDA Pro基础使用讲解」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  9. Android下检测网络连接 3G WIFI

    Android下检测网络状态 3G WIFI 实现 代码如下 package Android.HelloAndroid; import android.app.Activity; import and ...

  10. android 内存检测框架,Android项目内存泄漏检测

    关于Android项目的内存泄漏是一个老生常谈的问题,之前一直是在写代码时各种注意,比如IO流要及时关闭,引用的curcor要及时关闭等,这样做确实能规避一部分的内存泄漏,不过还是会有漏网之鱼,因此除 ...

最新文章

  1. oracle utl_smtp 500 bad syntax,改进oracle utl_mail包的smtp_server设定和密码验证不足
  2. Buuctf(pwn)ciscn_2019_n_8
  3. Rightmost Digit
  4. python3 socketserver_《Python核心编程(第3版)》——2.5 *SocketServer模块
  5. 利用jqueryRotare实现抽奖转盘
  6. EVGA Precision—— 显卡超频神器 可用于调节风扇转速 降温
  7. 现有类 成 mfc类_女人不想成“黄脸婆”,4类食物是衰老“催化剂”,女人尽量远离_氧化...
  8. Linux之重置密码的两种方法
  9. ASP和IIS各一点
  10. powerquery加载pdf_老板让我汇总PDF文件,我不会,同事用Excel两分钟就搞定
  11. “云湖共生 • 数智未来”数据湖应用实践白皮书重磅发布
  12. vue Uint8Array转字符串中文乱码
  13. 创意无价,优化 百度、Bing、Duckduckgo 三大国际搜索引擎
  14. 【论文阅读笔记】基于分类器预测置信度的集成选择| Ensemble Selection based on Classifier Prediction Confidence
  15. 怎样通过任务管理器优化电脑速度
  16. Android 简易闹钟的实现
  17. 数学速算法_三年级数学时分秒换算口诀+精选思维奥数题整理汇总
  18. git命令之git clone用法
  19. 八图H5邀请函前置的邀请函加载logo怎么修改的
  20. 考驾照之考科目一二体验

热门文章

  1. java 中的todo_详解在TodoController中引用TodoRepository
  2. Linus 一生只为寻找欢笑(下)-转
  3. 个人作业4 结对开发地铁
  4. 普通大一学生的自我反思
  5. oracle开方怎么写,excel的开方/平方/次方及根号运算
  6. fcitx 添加输入法但并没有输入候选项
  7. 笔记本重置找不到恢复环境_Win10重置找不到恢复环境需要安装介质的修复图文教程...
  8. 云计算时代的软件行业变化
  9. 数码相机计算机应用属于,数码相机是什么
  10. 汇编语言学习篇2——MASM的环境搭建(win10与Ubuntu1604下的配置)【有问题,待更正】