Class文件二进制分析

本篇博文描述的是对一个很简单的java文件的对应的class文件的二进制分析.

要分析class文件的二进制格式,必须了解对应版本的jvm specification.

由于jvm specification中关于class文件的内容有点多,所以这里不在描述相同的内容.

说明:本篇博文中设计的class文件对应的jvm specification版本是 jvm 8.

java文件:SimpleClassDemo1.java

package com.rocky.jvm.classfile;

/**
 * Created by rocky on 14-12-23.
 */
public class SimpleClassDemo1 {
}

对应的class文件二进制内容:SimpleClassDemo1.class (16进制表示)

cafe babe 0000 0034 0010 0a00 0300 0d07
000e 0700 0f01 0006 3c69 6e69 743e 0100
0328 2956 0100 0443 6f64 6501 000f 4c69
6e65 4e75 6d62 6572 5461 626c 6501 0012
4c6f 6361 6c56 6172 6961 626c 6554 6162
6c65 0100 0474 6869 7301 002a 4c63 6f6d
2f72 6f63 6b79 2f6a 766d 2f63 6c61 7373
6669 6c65 2f53 696d 706c 6543 6c61 7373
4465 6d6f 313b 0100 0a53 6f75 7263 6546
696c 6501 0015 5369 6d70 6c65 436c 6173
7344 656d 6f31 2e6a 6176 610c 0004 0005
0100 2863 6f6d 2f72 6f63 6b79 2f6a 766d
2f63 6c61 7373 6669 6c65 2f53 696d 706c
6543 6c61 7373 4465 6d6f 3101 0010 6a61
7661 2f6c 616e 672f 4f62 6a65 6374 0021
0002 0003 0000 0000 0001 0001 0004 0005
0001 0006 0000 002f 0001 0001 0000 0005
2ab7 0001 b100 0000 0200 0700 0000 0600
0100 0000 0600 0800 0000 0c00 0100 0000
0500 0900 0a00 0000 0100 0b00 0000 0200
0c

分析结果如下: (直接帖文字会变形,所以截的图.这里提供下载:http://download.csdn.net/detail/u012358984/8319813)

时间: 2024-11-01 18:41:31

Class文件二进制分析的相关文章

HTTP的上传文件实例分析

HTTP的上传文件实例分析 由于论坛不支持Word写文章发帖. 首先就是附件发送怎么搞,这个必须解决.论坛是php的.我用Chrome类浏览器跟踪请求,但是上传的文件流怎么发过去没找到,估计流可能多或者什么的不好显示,只知道发送了文件名字.需要实际了解下post文件,不能只会后台或界面不了解前台数据处理和协议怎么传送数据. 图中:有些相关文章 HTTP请求中的form data和request payload的区别 AJAX POST请求中参数以form data和request payload

Android.mk文件简单分析

Android.mk文件简单分析 一个Android.mk文件用来向编译系统描述需要编译的源代码.具体来说:该文件是GNUMakefile的一小部分,会被编译系统解析一次或多次.可以在每一个Android.mk中定义一个或多个模块,也可以在几个模块中使用同一个源代码文件. 每个模块属下列类型之一: 1)APK程序,一般的Android程序,编译打包生成apk文件 2)JAVA库,java类库,编译打包生成jar文件 3)  C\C++应用程序,可执行的C\C++应用程序 4)C\C++静态库,编

/etc/rc.d/init.d/functions文件详细分析

/etc/rc.d/init.d/functions文件详细分析 functions这个脚本是给/etc/init.d里边的文件使用的(可理解为全局文件). 提供了一些基础的功能,看看里边究竟有些什么.首先会设置umask,path,还有语言环境,然后会设置success,failure,warning,normal几种情况下的字体颜色. 下面再看看提供的重要方法:checkpid:检查是否已存在pid,如果有一个存在,返回0(通过查看/proc目录)daemon:启动某个服务./etc/ini

vim 查看文件二进制格式

用vim打开文件,vim -b file,选项-b是二进制模式打开 然后输入 :%!xxd,就可看到二进制编码 其实在linux下,直接输入xxd file 也是可以看到的文件二进制格式的

quick-cocos2d-x教程3:程序框架内文件夹分析之docs文件夹

如今我们分析框架中的docs文件夹.看看这个文档文件夹中,究竟放了那些对我们实用的东西. docs文件夹分析 UPGRADE_TO_2_2_3.md 就是讲升级的变化.详细说明:quick-cocos2d-x 2.2.3 须要的注意的事项和代码改动范例. 项目执行时,假设出现 [DEPRECATED] 相关信息,应该将这些已经作废的 API 替换为新 API. 已作废API 请參考 framework/deprecated.lua 文件. HOW_TO_USE_PROJET_MAC_AND_WI

uboot移植之九鼎提供的uboot的文件夹分析

文件夹分析 (1)api:提供了uboot在执行时用到的一些函数,这些函数都是硬件无关的,所以和我们的移植没多大关系 (2)api_examples:api的示例代码 (3)board:开发板相关的文件夹,这个文件夹里面存放的一个文件夹对应一款开发板或者是一个芯片厂商.我们在config配置的时候就是根据这个文件夹下面的子文件夹来选择开发板信息.需要注意一点,由于历史原因,一开始开发板种类比较少,所以board存放的子文件夹就是对应的开发板,但是随着电子信息的发展,开发板越来越多,所以就在ubo

mysql source命令导入sql文件效率分析

Query OK, 24918 rows affected (0.90 sec)Records: 24918  Duplicates: 0  Warnings: 0Query OK, 24923 rows affected (2.26 sec)Records: 24923  Duplicates: 0  Warnings: 0Query OK, 24924 rows affected (2.74 sec)Records: 24924  Duplicates: 0  Warnings: 0Quer

android 文件系统目录分析(手机系统目录分析)

# pwd && ls -a -l / drwxrwxrwt root     root              2009-06-10 09:53 sqlite_stmt_journals drwxrwx--- system   cache             2008-09-06 22:51 cache d---rwxrwx system   system            1970-01-01 08:00 sdcard lrwxrwxrwx root     root    

[delphi技术]Delphi资源文件(全面分析于使用)

Delphi资源文件(全面分析之位图.光标.图标.AVI.JPEG.Wave) 几乎每个Windows应用程序都使用图标.图片.光标等资源.资源是程序的一部分,但是它是不可执行代码.下面我们就详细介绍资 源文件在Delphi5中建立和使用方法. 1.把资源放到Exe文件的优点  由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快.多种资源可以放在一个文件中,减少了图标.图片.光标 等文件数量.保存资源文件时不要和工程名相同,因为Delphi创建工程时会自动创建一个和工程名相同的资源