• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

标签:bytecode-manipulation

annotations

向Java类添加编程注释

向Java类添加编程注释
用法示例:我想在类字段上放一个自定义批注@MyContainer,然后在所有此类字段上自动添加相关的Hibernate批注(取决于字段类型和属性)。另外,我需要在类中添加JAXB XmlType批注,并将类型名基于类名。我还要基于其类型等向字段添加注释。所有添加的注释应在运行时可用(因此hibernate / JAXB可以找到它们)。我知道以下选项: 预处理……继续阅读 »

bytecode

变量定义和赋值检测asm字节码

变量定义和赋值检测asm字节码
我正在尝试使用ASM字节码树API进行Java代码的静态分析。我有一个ClassNode cn,MethodNode m以及该方法中的指令列表,例如InsnList list。 假设对于给定指令(即AbstractInsnNode),我需要在上述指令列表的s处找到变量的所有定义/赋值。为了更清楚地说明,假设在第2行定义并初始化了变量var,然后在第8行上分配……继续阅读 »

bytecode-manipulation

无法从空堆栈弹出操作数

无法从空堆栈弹出操作数
使用ASM4。我正在从另一种语言即时生成字节码。它正在产生以下内容,但是我不清楚发生了什么。我的猜测是try / catch块正在干扰堆栈。前两行正在加载Lambda2,然后将其作为栈中最深的元素,但是我不知道是什么使它消失了。 似乎在指令13中堆栈消失了。那就是它进入try / catch块的地方。进入try / catch块时,堆栈会被扔掉吗?如果是这样……继续阅读 »

bytecode-manipulation

如何使用ASM 5.2在运行时删除方法主体

如何使用ASM 5.2在运行时删除方法主体
我正在尝试在以下程序中删除test()的方法主体,以便什么都不会打印到控制台。我正在使用ASM 5.2,但是我尝试过的所有操作似乎都没有效果。 有人可以解释我做错了什么,还可以指出一些有关ASM的最新教程或文档吗?我在Stackoverflow和ASM网站上发现的几乎所有东西似乎都已过时和/或无益。 public class BytecodeMods { ……继续阅读 »

bytecode-manipulation

使用Java ASM删除方法

使用Java ASM删除方法
我正在尝试使用Java ASM库,经过大量研究后,我还没有找到解决我遇到的问题的解决方案。我正在尝试制作一个执行以下操作的应用程序: 从外部Jar文件中读取类 从指定的类 中完全删除某些方法 打印以控制台或存储修改后的类的已编译字节码或已编译类的内容,例如new String(cw.toByteArray())中的内容,cw是ClassWriter的实例(……继续阅读 »

bytecode

是否可以查看Class文件的字节码?

是否可以查看Class文件的字节码?
这个问题已经在这里有了答案: 已关闭8年。 Possible Duplicate: Is there a java classfile / bytecode editor to edit instructions? Java源代码被编译为字节码,而字节码实际上位于类文件中。是否可以查看已编译类的字节码? 如果可能,可以对其进行编辑吗? 是否有……继续阅读 »

byte-code-enhancement

如何使用gradle复制classes文件夹中的资源文件?

如何使用gradle复制classes文件夹中的资源文件?
环境 我正在使用需要字节码检测的第三方库。进行字节码检测的工具需要一些描述文件,并且这些文件必须与已编译的.class文件位于同一文件夹结构中。这些文件仅在编译时才需要。 问题 我认为gradle会将所有文件(资源和类)临时放在同一文件夹中,然后从该文件夹创建一个jar。但是在组装jar之前,gradle似乎在资源和类文件有两个不同的位置。如前所述,用于代……继续阅读 »