摘要: 1.ASM是什么?2.ASM 跟传说中的AOP三剑客APT、aspectJ、Javassit有什么关系?3.ASM是怎样修改class文件的? 1.ASM是什么? 2.ASM 跟传说中的AOP三剑客APT、aspectJ、Javassit有什么关系? APT:APT(Annotation Proce 阅读全文
posted @ 2021-11-01 20:12 beansoft 阅读(1038) 评论(0) 推荐(0) 编辑
摘要: 前言 来源: https://segmentfault.com/a/1190000008606277 随着Java开发技术不断被推到新的高度,对于Java程序员来讲越来越需要具备对更深入的基础性技术的理解,比如Java字节码指令。不然,可能很难深入理解一些时下的新框架、新技术,盲目一味追新也会越来越 阅读全文
posted @ 2021-11-01 20:09 beansoft 阅读(336) 评论(0) 推荐(0) 编辑
摘要: https://www.imgeek.org/article/825358911 介绍 作用 .registers和locals基本区别 参数是如何传递的? 关于寄存器命名规则 总结 locals和registers都可以表示寄存器数量,locals指定本地局部变量寄存器个数,registers是l 阅读全文
posted @ 2021-11-01 20:08 beansoft 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 今天在看热修复时,文中多次提到smali文件,想简单了解一下Smali是什么。Smali文件是什么?Android程序员用Java语言开发APP,编译工具会将Java源文件(.java)编译成Dalvik可执行文件(.dex)。Android系统中Dalvik Virtual Machine 会执行 阅读全文
posted @ 2021-11-01 20:07 beansoft 阅读(2881) 评论(0) 推荐(1) 编辑
摘要: 众所周知,dex是Android虚拟机Dalvik上的可执行文件,而odex是优化过(Optimized)的dex。 我们知道,dex文件,可以通过dex2jar,转化为jar,然后可以通过jd-gui查看其java源码。 那么,odex呢?可以通过baksmali/smali,将其转换为dex,然 阅读全文
posted @ 2021-11-01 20:05 beansoft 阅读(774) 评论(0) 推荐(0) 编辑
摘要: 简述 ASM简介 ASM 核心API 无中生有 ——利用ASM动态创建一个类 偷梁换柱——ASM修改已有的class ASMifier https://blog.csdn.net/ljz2016/article/details/81363828 总结 https://github.com/fenga 阅读全文
posted @ 2021-11-01 20:03 beansoft 阅读(2544) 评论(0) 推荐(0) 编辑
摘要: 前言 ASM 简介 ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据 阅读全文
posted @ 2021-11-01 19:59 beansoft 阅读(457) 评论(0) 推荐(0) 编辑
摘要: JVM 执行 java 程序的过程:编译成二进制文件:javac Demo.java翻译成机器码并执行:java Demo /** * 2019-05-18 * java code for simple Demo */ public class Demo { public static void m 阅读全文
posted @ 2021-11-01 19:52 beansoft 阅读(193) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/yangdd/p/12764841.html 什么是dvmDalvik字节码Android Dalvikvm的简单使用 什么是dvm 全称 Dalvik virtual machine ,是安卓虚拟机的缩写。Dalvik是Google公司自己设计用于A 阅读全文
posted @ 2021-11-01 19:51 beansoft 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 你还在为怎么查看字节码指令而担忧吗?https://juejin.cn/post/6844904150698819591 前言 注释会被执行吗? 查看字节码的两种方式 Name,就给当前 tool 起一个名字好了,用于使用时,在右键菜单选项中展示。 Decriptions,描述此功能,别到时候你自己 阅读全文
posted @ 2021-11-01 19:48 beansoft 阅读(104) 评论(0) 推荐(0) 编辑
摘要: [原创]ASM动态修改JAVA函数之函数字节码初探 操作码是一个字节代码名,由助记符号表示,例如操作码0,对应的是NOP,表示无任何操作的指令;操作码21,对应ILOAD,表示读取局部变量表某个位置的int值。 参数是储存在编译后代码中的静态值。 一种是用来在局部变量表和操作数栈之间传送值的。比如F 阅读全文
posted @ 2021-11-01 19:39 beansoft 阅读(564) 评论(0) 推荐(0) 编辑