6、Java类文件结构解析与反编译

Java类文件结构解析与反编译

1. 类文件展示格式

传统展示类文件的方式较为繁琐,可采用XML格式,它能让我们更快速地遍历类文件的内部结构,也使类文件信息更易理解。若要运行相关代码,可按以下步骤操作:
1. 从www.freeinternals.org下载jCFL jar文件,并将其放入类路径。
2. 执行以下命令:

javac ClassToXML.java
java ClassToXML < Casting.class > Casting.xml
2. 魔数(Magic Number)

魔数和版本号位于类文件开头,容易找到。类文件的前4个字节是十六进制的魔数0xCAFEBABE,它告知JVM正在接收一个类文件。有趣的是,NeXT平台的多架构二进制(MAB)文件的前四个字节也是这个魔数,这可能是因为早期Java实现时Sun和NeXT的人员有交流。

选择0xCAFEBABE有多个原因。一方面,用A - F这些字母很难组成有意义的八个字母的单词;另一方面,据James Gosling说,他们办公室附近有一家名为Cafe Dead的咖啡馆,感恩而死乐队曾在那里演出,因此先有了0xCAFEDEAD,随后0xCAFEBABE成为Java文件格式的一部分。此外,还有一些其他的魔数,如Motorola用的0xFEEDFACE、IBM用的0xDEADBEEF和Sun用的0xDEADBABE ,微软的CLR文件有类似的头部BSJB,它是以.NET平台的四位原始开发者命名的。

3. 次要和主要版本号(Minor and Ma
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值