文章

这个技术 垂涎已久

这个技术 垂涎已久

尝试复现

https://github.com/asLody/SandHook/blob/master/doc/doc.md

选择寄存器

  • 为了不破环栈结构,我们在 hook 时,需要使用纯汇编作为跳板,同时使用尽量少的寄存器完成工作
  • 如果通过保存恢复现场来保护寄存器和栈,在 ART 中也是不可行的(或者说仅仅在解释器模式下有希望)
  • 因为无论是 GC 还是栈回朔,以及其他的一些 ART 的动态行为,都依赖于栈和一些约定寄存器

这里对我的吸引力巨大.. 3年了..

inline_flow.png

这幅图够我学习N年..

#2026年7月1日 心血来潮, 然后放弃

没摸清楚ART运行软件的原理, 就无法理解文中的说到的函数. 都无法理解了, 如何能学会呢?

如果要打好基础, 目前应该学习直接在native层, 用c写函数, 然后手动实现函数hook. 然后再去学jvm虚拟机, ART虚拟机. 好麻烦, 还是学医简单一点..

本文由作者按照 CC BY 4.0 进行授权