最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • [置顶] Class文件二进制分析

    本篇博文描写的是对1个很简单的java文件的对应的class文件的2进制分析.

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

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

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

    • java文件01:SimpleClassDemo1.java

    package com.rocky.jvm.classfile;

    /**
    * Created by rocky on 14⑴2⑵3.
    */
    public class SimpleClassDemo1 {
    }

    对应的class文件2进制内容: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)

    • java文件02:SimpleClassDemo2.java
    package com.rocky.jvm.classfile;

    /**
    * Created by rocky on 15⑴⑵.
    */
    public class SimpleClassDemo2 implements Interface01,Interface02 {
    public long add(int i, long j) {
    return i + j;
    }

    private void calc() {
    int i = 5 + 5;
    System.out.println(i);
    }

    private int field1 = 0;

    public int field2 ;

    protected static int field3 = 6;

    public final int field4 = 7;

    public static final long field5 = 8;

    @Override
    public Integer interface01() {
    return 0;
    }

    @Override
    public boolean interface02() {
    return false;
    }
    }

    SimpleClassDemo2.class2进制内容(16进制表示)
    cafe babe 0000 0034 0041 0a00 0900 2a09
    0008 002b 0900 0800 2c09 002d 002e 0a00
    2f00 300a 0031 0032 0900 0800 3307 0034
    0700 3507 0036 0700 3701 0006 6669 656c
    6431 0100 0149 0100 0666 6965 6c64 3201
    0006 6669 656c 6433 0100 0666 6965 6c64
    3401 000d 436f 6e73 7461 6e74 5661 6c75
    6503 0000 0007 0100 0666 6965 6c64 3501
    0001 4a05 0000 0000 0000 0008 0100 063c
    696e 6974 3e01 0003 2829 5601 0004 436f
    6465 0100 0f4c 696e 654e 756d 6265 7254
    6162 6c65 0100 124c 6f63 616c 5661 7269
    6162 6c65 5461 626c 6501 0004 7468 6973
    0100 2a4c 636f 6d2f 726f 636b 792f 6a76
    6d2f 636c 6173 7366 696c 652f 5369 6d70
    6c65 436c 6173 7344 656d 6f32 3b01 0003
    6164 6401 0005 2849 4a29 4a01 0001 6901
    0001 6a01 0004 6361 6c63 0100 0b69 6e74
    6572 6661 6365 3031 0100 1528 294c 6a61
    7661 2f6c 616e 672f 496e 7465 6765 723b
    0100 0b69 6e74 6572 6661 6365 3032 0100
    0328 295a 0100 083c 636c 696e 6974 3e01
    000a 536f 7572 6365 4669 6c65 0100 1553
    696d 706c 6543 6c61 7373 4465 6d6f 322e
    6a61 7661 0c00 1700 180c 000c 000d 0c00
    1000 0d07 0038 0c00 3900 3a07 003b 0c00
    3c00 3d07 003e 0c00 3f00 400c 000f 000d
    0100 2863 6f6d 2f72 6f63 6b79 2f6a 766d
    2f63 6c61 7373 6669 6c65 2f53 696d 706c
    6543 6c61 7373 4465 6d6f 3201 0010 6a61
    7661 2f6c 616e 672f 4f62 6a65 6374 0100
    2363 6f6d 2f72 6f63 6b79 2f6a 766d 2f63
    6c61 7373 6669 6c65 2f49 6e74 6572 6661
    6365 3031 0100 2363 6f6d 2f72 6f63 6b79
    2f6a 766d 2f63 6c61 7373 6669 6c65 2f49
    6e74 6572 6661 6365 3032 0100 106a 6176
    612f 6c61 6e67 2f53 7973 7465 6d01 0003
    6f75 7401 0015 4c6a 6176 612f 696f 2f50
    7269 6e74 5374 7265 616d 3b01 0013 6a61
    7661 2f69 6f2f 5072 696e 7453 7472 6561
    6d01 0007 7072 696e 746c 6e01 0004 2849
    2956 0100 116a 6176 612f 6c61 6e67 2f49
    6e74 6567 6572 0100 0776 616c 7565 4f66
    0100 1628 4929 4c6a 6176 612f 6c61 6e67
    2f49 6e74 6567 6572 3b00 2100 0800 0900
    0200 0a00 0b00 0500 0200 0c00 0d00 0000
    0100 0e00 0d00 0000 0c00 0f00 0d00 0000
    1100 1000 0d00 0100 1100 0000 0200 1200
    1900 1300 1400 0100 1100 0000 0200 1500
    0600 0100 1700 1800 0100 1900 0000 4200
    0200 0100 0000 102a b700 012a 03b5 0002
    2a10 07b5 0003 b100 0000 0200 1a00 0000
    0e00 0300 0000 0600 0400 1000 0900 1600
    1b00 0000 0c00 0100 0000 1000 1c00 1d00
    0000 0100 1e00 1f00 0100 1900 0000 4300
    0400 0400 0000 051b 8520 61ad 0000 0002
    001a 0000 0006 0001 0000 0008 001b 0000
    0020 0003 0000 0005 001c 001d 0000 0000
    0005 0020 000d 0001 0000 0005 0021 0014
    0002 0002 0022 0018 0001 0019 0000 0047
    0002 0002 0000 000b 100a 3cb2 0004 1bb6
    0005 b100 0000 0200 1a00 0000 0e00 0300
    0000 0c00 0300 0d00 0a00 0e00 1b00 0000
    1600 0200 0000 0b00 1c00 1d00 0000 0300
    0800 2000 0d00 0100 0100 2300 2400 0100
    1900 0000 2f00 0100 0100 0000 0503 b800
    06b0 0000 0002 001a 0000 0006 0001 0000
    001c 001b 0000 000c 0001 0000 0005 001c
    001d 0000 0001 0025 0026 0001 0019 0000
    002c 0001 0001 0000 0002 03ac 0000 0002
    001a 0000 0006 0001 0000 0021 001b 0000
    000c 0001 0000 0002 001c 001d 0000 0008
    0027 0018 0001 0019 0000 001e 0001 0000
    0000 0006 1006 b300 07b1 0000 0001 001a
    0000 0006 0001 0000 0014 0001 0028 0000
    0002 0029

    2进制分析结果: (txt下载:http://download.csdn.net/detail/u012358984/8321477)

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » [置顶] Class文件二进制分析

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级