我有一个混淆的 java 二进制文件,它使用这样的 java 反射进行运行时代码注入。
Object o = "a long string";
((Method)o).invoke(params..);
(如果我把它写在一个 java 文件中,它会编译得很好,但我必须编辑类文件的反汇编并删除 checkcast 指令以使其运行。)
我想要做的是将长字符串的内容反汇编/反编译为 JVM 字节码。由于这不是一个完整的类,而只是一个方法,因此我无法使用任何可用的 Java 逆向工程工具来使用它。
我现在试图在运行时将此代码注入到一个单独的类中,然后将其从内存中转储出来。但我不确定是否有可能做到。即使使用javaagent。
有没有其他简单的方法来完成我想要做的事情?