【发布时间】:2016-06-25 20:32:32
【问题描述】:
我正在为 Java 创建一个静态分析工具,如果我可以从 .class 文件中的字节码中获取有关我正在分析的程序的一些信息,这些信息将更容易获得。
我不关心类文件中可能存在的每一个instructions。例如,我可能只需要查看是否有任何 getfield 指令。
问题在于,由于每条指令的长度都是可变的,因此在一般情况下,我需要(在我的代码中)指定每个操作码的长度,然后才能确定(例如)getfield指令开始和结束。
对于其他一些指令集(如x86),有类似“0x0F 以下的任何操作码为 1 个字节,等于或大于 0x0F 的任何操作码为两个字节”之类的规则。
在 Java 字节码指令中是否有类似这样的方便模式?
【问题讨论】:
-
即使没有模式(并且有一些可变操作码),您也想编写一个静态分析工具,并且不想在最坏的情况下制作
标签: java jvm jvm-bytecode