type
status
date
slug
summary
tags
category
icon
password
Frida Interceptor实现Hook总结为一张图就是下面这样的,当然是最主流的情况,一些其他情况并没有囊括,如有错误请指正。大概分为四级跳板,首先通过最简单InlineHook的一级跳板跳入on_enter_trampoline位置,此位置为二级跳板,在on_enter_trampoline 中通过BR x16进入第三级跳板enter_trunk,在其内部会对现场进行保存(完成后恢复),然后通过调用对应的invocation进入四级跳板,执行on_enter代码。在完成on_enter处注册的代码后根据函数是否被替换分为两种情况执行:
  • 如果函数没有被替换(no replace),将会走到on_invoke_trampoline,这里的代码将执行原本的函数代码(origin code)
  • 如果函数被替换,将会直接执行到replacement code,而不进入on_invoke_trampoline
在函数原本的代码或者被替换(replace)后的代码执行完成后,根据是否设置on_leave走不同的代码路径:
  • 如果设置了on_leave则跳回到二级跳板执行leave_chunk,和enter_trunk执行过程类似,在结束后返回
  • 如果没有设置on_leave则直接返回,没有后续的步骤
最终三种情况都会返回到真正的调用者的位置继续执行,完成一次完整的Hook
notion image
 
PendingIntent-securitySystemUI As EvilPiP
Loading...
LLeaves
LLeaves
Happy Hacking
最新发布
基于eBPF实现一个简单的隐蔽脱壳工具-eBPFDexDumper
2025-1-9
LakeCTF At your Service 题解
2024-12-13
PendingIntent-security
2024-12-1
Android grantUriPermission与StartAnyWhere
2024-11-30
eBPF实践之修改bpf_probe_write_user以对抗某加固Frida检测
2024-11-10
CVE-2024-31317 Zygote命令注入提权system分析
2024-11-10
公告