主要观点总结
本文介绍了使用ASM的tree api进行对匿名线程的hook操作,包括ASM背景介绍、class文件结构、方法指令集、实战部分等内容。
关键观点总结
关键观点1: ASM介绍
ASM是一个可以编译字节码的工具,能够编辑class文件,方便进行后续工作。
关键观点2: class文件结构
class文件从二进制角度可分为多个部分,ASM把这些结构进行了进一步抽象,例如把class抽象为classNode类,把方法抽象为MethodNode等。
关键观点3: 实战部分
通过修改Thread的构造函数签名和插入操作数栈的方式,实现了给匿名线程赋予名字的目的。
文章预览
本文作者 作者: Pika 链接: https://juejin.cn/post/7121643784638562317 本文由作者授权发布。 1 背景 看完本章,你将会学习到用ASM的tree api进行对匿名线程的hook操作,同时也能够了解到asm相关的操作和背景知识介绍!对于ASM插桩来说,可能很多人都不陌生了,但是大多数可能都停留在core api上,对于现在市面上的一些插桩库,其实很多都用tree api进行编写了,因为tree api的简单与明了的特性,也越来越成为许多开源库的选择。(ASM有两套api类型,分别是core 和 tree) 2 ASM介绍 ASM其实就是一个可以编译字节码的工具,比如说我们日常开发会引入很多的类库对不对,又或者说我们的项目太大了,想修改某个点的时候,统一修改容易出错(比如隐私合规问题等),这个时候如果能有一个工具对生成后的class文件进行编辑的话,就非常方便我们进行后续的工作了。 本
………………………………