当前位置: 首页 > news >正文

怎么才能自己做网站e福州app官方网站

怎么才能自己做网站,e福州app官方网站,网络推广外包公司哪家好,企业网站建设源码HTML写在前面 本文看下如何获取class字节码文件的魔数和版本号信息。 1#xff1a;正文 需要对class字节码的结构有一定的了解#xff0c;可以参考这篇文章 。 直接看代码#xff1a; package org.example;import java.math.BigInteger;public class TTTT {//取部分字节码正文 需要对class字节码的结构有一定的了解可以参考这篇文章 。 直接看代码 package org.example;import java.math.BigInteger;public class TTTT {//取部分字节码java.lang.Stringprivate static byte[] classData {-54, -2, -70, -66, 0, 0, 0, 52, 2, 26, 3, 0, 0, -40, 0, 3, 0, 0, -37, -1, 3, 0, 0, -33, -1, 3, 0, 1, 0, 0, 8, 0,59, 8, 0, 83, 8, 0, 86, 8, 0, 87, 8, 0, 110, 8, 0, -83, 8, 0, -77, 8, 0, -49, 8, 0, -47, 1, 0, 3, 40, 41, 73, 1,0, 20, 40, 41, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 1, 0, 20, 40, 41,76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 3, 40, 41, 86, 1, 0, 3,40, 41, 90, 1, 0, 4, 40, 41, 91, 66, 1, 0, 4, 40, 41, 91, 67, 1, 0, 4, 40, 67, 41, 67, 1, 0, 21, 40, 68, 41, 76,106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 1, 0, 4, 40, 73, 41, 67, 1, 0, 4};public static void main(String[] args) {// 显示值是按照有符号数来展示的为了获取原始的无符号数对应的值需要与上0xFF,即11111111这样就转换为无符号数了不知道为啥啊反正就这样。System.out.println(* byte字节码与运算原值(-54)换行后(-54 0x0FF) (-54 0x0FF));//校验魔数readAndCheckMagic();//校验版本号readAndCheckVersion();}/*** 前四个字节是魔术* 校验魔数* p* 很多文件格式都会规定满足该格式的文件必须以某几个固定字节开头这几个字节主要起到标识作用叫作魔数(magic number)。* 例如* PDF文件以4字节“%PDF”(0x25、0x50、0x44、0x46)开头* ZIP文件以2字节“PK”(0x50、0x4B)开头* class文件以4字节“0xCAFEBABE”开头*/private static void readAndCheckMagic() {System.out.println(\r\n------------ 校验魔数 ------------);// 从class字节码中读取前四位就是魔数u4类型byte[] magic_byte new byte[4];System.arraycopy(classData, 0, magic_byte, 0, 4);// 将4位byte字节转成16进制字符串String magicNumberInHex new BigInteger(1, magic_byte).toString(16);System.out.println(class文件魔数16进制表示为 magicNumberInHex);// magicNumberInHex 是16进制的字符串cafebabe因为java中没有无符号整型所以如果想要无符号只能放到更高位中long magic_unsigned_int32 Long.parseLong(magicNumberInHex, 16);System.out.println(魔术转换为无符号表示Java没有无符号数所以转long来表示magic_unsigned_int32 magic_unsigned_int32);//魔数比对一种通过字符串比对另外一种使用假设的无符号16进制比较。如果使用无符号比较需要将0xCAFEBABE 0x0FFFFFFFFL与运算System.out.println(0xCAFEBABE 0x0FFFFFFFFL这样也可以转换为正整数表示 (0xCAFEBABE 0xFFFFFFFFL));// 通过比较字节码中获取的和cafebabe的实际值得出是否是一个class字节码文件当然不一定合法因为后续还有很多内容if (magic_unsigned_int32 (0xCAFEBABE 0x0FFFFFFFFL)) {System.out.println(class字节码魔数无符号16进制数值一致校验通过);} else {System.out.println(class字节码魔数无符号16进制数值一致校验拒绝);}}/**** 校验版本号* p* 魔数之后是class文件的次版本号和主版本号都是u2类型。假设某class文件的主版本号是M次版本号是m那么完整的版本号可以* 表示成“M.m”的形式。次版本号只在J2SE 1.2之前用过从1.2开始基本上就没有什么用了(都是0)。主版本号在J2SE 1.2之前是45* 从1.2开始每次有大版本的Java版本发布都会加145、46、47、48、49、50、51、52*/private static void readAndCheckVersion() {System.out.println(\r\n------------ 校验版本号 ------------);//从class字节码第4位开始读取读取2位byte[] minor_byte new byte[2];// u2 56两个字节是minor version信息System.arraycopy(classData, 4, minor_byte, 0, 2);//将2位byte字节转成16进制字符串String minor_hex_str new BigInteger(1, minor_byte).toString(16);System.out.println(小版本号16进制表示 minor_hex_str);//minor_unsigned_int32 转成无符号16进制int minor_unsigned_int32 Integer.parseInt(minor_hex_str, 16);System.out.println(小版本号十进制整数表示 minor_unsigned_int32);//从class字节码第6位开始读取读取2位byte[] major_byte new byte[2];// u2 7,8两个字节是major version信息System.arraycopy(classData, 6, major_byte, 0, 2);//将2位byte字节转成16进制字符串String major_hex_str new BigInteger(1, major_byte).toString(16);System.out.println(主版本号16进制表示 major_hex_str);//major_unsigned_int32 转成无符号16进制int major_unsigned_int32 Integer.parseInt(major_hex_str, 16);System.out.println(主版本号整数表示 major_unsigned_int32);System.out.println(完整版本号 major_unsigned_int32 . minor_unsigned_int32);}}详细的看注释吧有什么不明白的可留言 运行如下 * byte字节码与运算原值(-54)换行后(-54 0x0FF)202------------ 校验魔数 ------------ class文件魔数16进制表示为cafebabe 魔术转换为无符号表示Java没有无符号数所以转long来表示magic_unsigned_int323405691582 0xCAFEBABE 0x0FFFFFFFFL这样也可以转换为正整数表示3405691582 class字节码魔数无符号16进制数值一致校验通过------------ 校验版本号 ------------ 小版本号16进制表示0 小版本号十进制整数表示0 主版本号16进制表示34 主版本号整数表示52 完整版本号52.0Process finished with exit code 0写在后面 参考文章列表 class字节码文件结构是什么样子的 。
http://www.hkea.cn/news/14504973/

相关文章:

  • 汉服网站怎么做天津网络关键词排名
  • 网站建设初学软件建筑施工单位网站
  • 省建设厅执业资格注册中心网站免费建设网站
  • 优化百度网站企业管理软件有哪些
  • 网站 html5广州手机网站建设
  • 临汾花果街网站建设网站设置不拦截
  • 自己怎样做网站显示危险万能浏览器手机版
  • 天津网络网站制作网络开发软件
  • 温州网站建设小公司北京列表网
  • 建站网站源码怎么在天猫注册开店铺
  • 青海省交通建设管理局网站网页升级中紧急自动转跳中
  • 网站建设自学建站视频教程wordpress头像代码
  • 宜兴市城乡建设局网站静态网站什么样
  • 金华app网站开发如何推广微信小程序
  • 湖北外贸网站建设费用营销策略ppt
  • 开通网站需要什么手续如何用dw制作网页文字链接
  • 微官网和微网站宁波seo怎么推广
  • 科技公司网站响应式素材网站有哪些
  • 微小店网站建设价格企业logo设计报价
  • 四平网络推广台州关键词优化价格
  • 做网站 斗地主网站开发品牌
  • eclipse sdk做网站做网站销售有前景
  • 建网站发信息做推广更新wordpress需要ftp
  • 公司网站建设比较好的公司常用的seo工具推荐
  • 青岛移动公司网站做外贸服装的网站
  • 网站招聘方案怎么做河南省十大互联网企业
  • 互联网企业网站设计聊城网站优化技术
  • 做网站建设公司企业设计师投稿网站
  • 设计有特色的网站百度软件下载安装
  • 同个网站可以做多个外链吗怎么找上海网站建设