java-bytecode-asm

    1热度

    2回答

    Java代码片断 int x4(int a) { if(a>7){ System.out.println("a>7"); } if(a==0){ System.out.println("a==0"); }else if(a>77){ System.out.println(" a>77"); }else if(

    1热度

    1回答

    使用ASM库修改字节码后,无法加载类。 这里是身份转换器,我希望获得与字节1相同大小的修改数组,但它缩短了2倍! (439 vs 278) String path = SimpleClass.class.getName().replace(".", "/") + ".class"; ClassLoader classLoader = SimpleClass.class.getClassL

    0热度

    1回答

    我使用ASM库生成字节码并使用Unsafe.defineAnonymous作为类加载它们。两者都在大多数情况下都可以使用,但是在很短的时间之后,它就会失败。然后,我在发出的字节码中添加一些调试指令来打印某些内容,输出让我困惑了两周。 (GWT是GuardWithTestHandle的缩写)。 1,生成两个类:DYNGWT70和DYNGWT73,二者均使用Unsafe加载。对于每个班级,只创建一个实

    0热度

    1回答

    我在内联多个方法调用后生成一个字节码序列。在内联开始时,如果内联方法出现任何异常,我首先将现有变量索引重新设置为新的局部变量数字。此操作会导致最终字节码中出现多个xLOAD和xStore序列。示例是: GETFIELD DYNGuardWithTestHandle1456194204777.guard : Ljava/lang/invoke/MethodHandle; INVOKEVIR

    0热度

    2回答

    我有一个包含5个类的jar文件。我只想改变那个班的一个逻辑。 BaseClass是我需要修复的一个。请检查以下基本结构。 我只需要删除一行并在changeMe方法中添加3行。 类结构 package com.temp; public class BaseClass{ public interface IClassA{ String sayRaw(String raw); }

    1热度

    2回答

    ASM documentation (pdf)说,Frame类具有通用类型,提供使用示例:Frame<BasicValue>。 (如果需要,请参阅第119页) 查看source时,我们可以看到它的声明如Frame<V extends Value>。 Type org.objectweb.asm.tree.analysis.Frame doesn't have type parameters 和

    0热度

    1回答

    我正在与ASM打交道,因为5天后我无法获得解决方案以解决问题。要求是通过方法调用获取所有作为参数传递的值。我知道有很多工具可以做到这一点。我去了ASM(我不知道如果我把正确的决定) 举例来说,如果我有这些方法 public void test2(String a, int b , String c, boolean ba, long d, String e){ } pub

    4热度

    2回答

    我有一个类A扩展B. 我创建了一个CustomClassLoader扩展ClassLoader使用defineClass(className, byte[], offset, length)。 我已经instanciate a new CustomClassLoader(Thread.currentThread().getContextClassLoader())。 因此,我的CustomClas

    0热度

    1回答

    “ASM-4.0.jar”, “org.objectweb.asm”,如果包括此的.jar,我得到这个错误,而建设: AGPBI: {"kind":"error","text":"Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be

    1热度

    1回答

    插入FrameNode我怎么会插入字节代码framenode? FRAME FULL [java/lang/String [C java/lang/String T I I [C] [] 我的第一次尝试是: mn.instructions.insertBefore(random, new FrameNode(Opcodes.F_FULL, 1 /**IDK**/, new Objec