使用 Javassist 获取字节码的参数



http://lpaste.net/338173 的反汇编代码(使用 javap -c(如下所示: http://lpaste.net/338175 ,在第三列中,有 200 作为"sipush"的参数,如何使用 javassist 从类文件中获取它?

sipush是一个字节码,它采用单个双字节参数,该参数是一个数字以推送到操作数堆栈。在Javassist中,你可以通过CtMethod MethodInfo中可用的CodeAttribute遍历方法的所有字节码。在您的情况下,这将是第一个字节代码,但您可以检查您是否达到了 Opcode.SIPUSH .迭代到此指令后,您可以通过迭代器中的 s16bitAt 方法读取 2 字节参数。该方法采用从零开始的索引。在您的情况下,这使得sipush的参数为零,返回200作为值。

相关内容

  • 没有找到相关文章

最新更新