根据https://en.wikipedia.org/wiki/Java_class_file#General_layout-类文件的Java常量池从文件开始10个字节。
到目前为止,我已经能够解析之前的所有内容(可以魔术地检查它是否是一个类文件,主要/次要版本,常量池大小),但是我仍然不完全了解如何解析常量池。像,是否有用于指定方法ref和其他内容的操作码?
在用十六进制表示文本之前,有什么方法可以引用每个十六进制值,以找出以下值是什么?
我应该通过用NOP(0x00)分割每组条目,然后解析不是文本值的每个字节来开始吗?
与类文件唯一相关的文档是The Java® Virtual Machine Specification,尤其是Chapter 4. The class File Format,如果要解析的常量池之外的内容,则是Chapter 6. The Java Virtual Machine Instruction Set。