专栏名称: 鸿洋
你好,欢迎关注鸿洋的公众号,每天为您推送高质量文章,让你每天都能涨知识。点击历史消息,查看所有已推送的文章,喜欢可以置顶本公众号。此外,本公众号支持投稿,如果你有原创的文章,希望通过本公众号发布,欢迎投稿。
目录
相关文章推荐
stormzhang  ·  打工人维权,难吗? ·  3 天前  
鸿洋  ·  Android多渠道打包指南 ·  3 天前  
今天看啥  ›  专栏  ›  鸿洋

学完ASM Tree api,再也不怕hook了

鸿洋  · 公众号  · android  · 2024-09-06 08:35

主要观点总结

本文介绍了使用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文件进行编辑的话,就非常方便我们进行后续的工作了。 本 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览