Frida系列--Stalker原理分析

本文介绍了Frida的Stalker引擎,一个用于代码跟踪的工具,支持AArch64和Intel架构。Stalker利用动态重编译技术,在指令执行前插入监控代码,解决x86指令变长、位置相关等问题。通过信任阈值优化性能,实现内联缓存。使用Stalker只需调用相应API,即可实现对目标线程的跟踪。
摘要由CSDN通过智能技术生成

简介

Stalker 是Frida的代码跟踪引擎。它允许跟踪线程,捕获每个函数、每个块,甚至是执行的每条指令。显然,Stalker底层实现在某种程度上是依赖于架构的,尽管它们之间有很多共同点。Stalker目前支持运行在常见的 AArch64 架构的Android 或iOS的手机和平板电脑上,以及常见的 Intel 64 和 IA-32 架构台式机和笔记本电脑上。对于ARM32位的支持相当有限,会出现一些BUG,建议使用ARM64位进行Trace

原理

核心原理

动态重编译(Dynamic Recompilation)

什么是动态重编译?简单来说,当一个线程即将执行其下一条指令时,通过复制所有指令,并且新增一些自定义指令到一块新的内存地址,然后执行新的内存指令副本。因此,原本的指令没有任何变化,反调试当然也不会起作用。举个例子,在每条指令之前新增一条Call指令,调用log_handler来记录一些即将执行的指令信息,包括寄存器等等(如下图)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值