JVM相关,.Class文件格式问题 今天看一个框架,反编译类文件的时候提示不是有效的.Class文件,察看文件起始的内容并不是0xCAFEBABE,但是,这个类却能被JVM很好的识别,哪位高人能告诉这是用的什么原理。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也许是编译.class文件的时侯加了混淆器混淆了。好像Jbuilder可以混淆编译之后的字节码,当然也有其他的工具。 答:显然,这个框架,自定义了自己的ClassLoader,然后使用自己的ClassLoader来装载这些"特殊的class文件",这是基本的加密手段.JAVA混淆器有些也是基于这一原理对JAVA类文件进行"篡改的". 为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。 生成的.class字节码跟运行是加载的classloader没有直接关系吧 答:有关系啊.JVM装载入框架自定义的classloader之后,用自定义的classloader来读入这些非标准的"篡改的"class文件,然后就在内存中当时就(on the fly)进行"反变换成"正常的class字节码,交由JVM去运行啊.这不很正常吗. 你直接运行那个类,或者你写一个Test类直接使用看看,如果不能用,则肯定被加密了。 答:呵呵。。,大家只是互相讨论,互相聊聊,互相启发。我一直相信的是:三人行必有我师。像:2楼、4楼的兄弟观点都是对我有启发的。我又学到新东西,这才是最主要的。别人可能达到了“研究的水平”,我是差得远的。我是说的真心话:越学习讨论JAVA,发现不懂的反而越来越多,只好继续努力了。真心地向大家学习与讨论而已。 研究明白了,用了ClassLoader进行解码载入,对于保护自己将软件是一个很好的思路!! Socket如何得到用于native C 的socket套接字? 网上如何销售自己开发的软件? JDBC出错以前还好的 字符串的问题?谢谢!! js 准备现在学习JAVA语言,请大家推荐一两本好书!谢谢! 输入n行如何写入到一文本文件? 安装完如何设置!在线等!! JList问题 有木有在项目中遇到代码表这个概念的? 怎么把日期转换为字符串? 汉字转拼音码如何去除英文字母和数字?
好像Jbuilder可以混淆编译之后的字节码,当然也有其他的工具。
生成的.class字节码跟运行是加载的classloader没有直接关系吧
真心地向大家学习与讨论而已。