tomcat 6.0.14 Webapp Loader的定制(备忘)

来源:互联网 发布:python初学者书籍推荐 编辑:程序博客网 时间:2024/06/18 18:16

为了提高公司源码的安全性,需要增加字节码反编译的难度。字节码混淆的工具不少,比如说Progurd,但是效果都不是很理想。最好的办法是将字节码直接加密保存,然后在类加载时解密,这样只要加密算法够健壮,安全就不成问题。查了下tomcat的资料,下了源码apache-tomcat-6.0.14-src.zip。tomcat加载每个项目class文件的类是org.apache.catalina.loader.WebappClassLoader,可以在源码包里找到。实现字节码解密主要涉及的函数是protected ResourceEntry findResourceInternal(String name, String path),在第1891行:resource = (Resource) lookupResult;将资源加载保存起来;在第1913行:binaryStream = resource.streamContent();将资源放到InputStream里面;在第2057行:int n = binaryStream.read(binaryContent, pos, binaryContent.length - pos);将文件内容读到字节数组binaryContent中。可以在2063行:binaryStream.close();的下面将binaryContent中的内容解密即可。关于Java进行DES加解密网上的资料就十分多了,这里不再赘述。