java源代码加密+使用proguard混淆java web项目代码+自定义Classloader

               

如何保护我们的源代码,实际上,应该有几种方法可以使用:1、使用代码混淆器 2、重载应用服务器的classloader

使用代码混淆器proguard进行代码混淆

1.首先下载proGuard.zip到本地: proguard4.5beta4.tar.zip解压开,
2.新建文本文档,修改文件名为XXX.pro,然后复制下面内容到.pro

-injars 'Y:\src.jar' #需要混淆的jar-outjars 'Y:\java\src.jar' #输出jar-libraryjars 'C:\java\jre6\lib\rt.jar' #必须的系统类库-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\activation-1.1.jar' #项目需要的jar-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\ant.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\antlr-2.7.6.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\asm-attrs.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\asm.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\aspectjrt.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\aspectjweaver.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\axis-ant.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\axis.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\backport-util-concurrent.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\bsf-2.3.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\bsh-2.0b4.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\c3p0-0.9.1.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\cfgatewayadapter.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\cglib-2.1.3.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\ckeditor-java-core-3.5.3.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\CKFinder-2.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\CKFinderPlugin-FileEditor-2.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\CKFinderPlugin-ImageResize-2.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\cmpp3.0-java.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-attributes-api.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-attributes-compiler.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-beanutils-1.8.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-codec-1.3.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-collections-3.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-configuration-1.6.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-dbcp-1.2.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-discovery-0.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-fileupload-1.2.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-io-2.0.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-lang-2.3.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-logging-1.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-logging-api-1.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-pool.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\commons-validator-1.3.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\concurrent.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\dom4j-1.6.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\dwr.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\ehcache-1.5.0.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\ejb3-persistence.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\fckeditor-java-core-2.4.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\freemarker-2.3.15.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\generic-hession-api-0109.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\gson-1.7.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\hessian-4.0.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\hibernate-annotations.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\hibernate-commons-annotations.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\hibernate-entitymanager.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\hibernate-validator.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\hibernate3.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\im4java-1.3.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jackson-core-asl-1.3.0.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jackson-mapper-asl-1.3.0.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jakarta-oro-2.0.8.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\Java2Word.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\javassist-3.4.GA.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jaxrpc.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jboss-archive-browsing.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jdbc2_0-stdext.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jdom.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jetty-6.1.24.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jetty-plus-6.1.24.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jetty-util-6.1.24.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jsf-api.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jsf-impl.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\json-lib-2.3-jdk15.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\json_simple-1.1.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jstl-1.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jstl-api-1.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jstl-impl-1.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jta.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\jtds-1.2.2.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\junit.jar'-libraryjars 'Y:\kf\WebRoot\WEB-INF\lib\log4j-1.2.15.jar'-libraryjars 'Y:\kf\WebRoot\WEB-
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ProGuard是一个开源的Java字节码混淆器、压缩器、优化器和预验证器。它可以用于减小应用程序的大小,保护代码安全以及提高应用程序的性能。ProGuard支持Java SE和Java ME,并可以与其他Java开发工具(如Eclipse、Ant和Maven)一起使用ProGuard基于一些简单的规则来混淆Java代码。这些规则指定了哪些类、方法和字段应该被保留,哪些应该被混淆或删除。例如,ProGuard可以将类、方法和字段的名称替换为随机的字符串,使得反编译后的代码难以理解。 以下是一些常见的ProGuard规则: -keep public class com.example.MyClass -keepclassmembers public class com.example.MyClass { public void myPublicMethod(); protected void myProtectedMethod(); private void myPrivateMethod(); } 上述规则意味着保留com.example.MyClass类以及其公共方法,保留com.example.MyClass类的公共、受保护和私有方法。 ProGuard还支持其他规则,如keepnames、keepattributes和dontwarn。这些规则可以进一步定制混淆过程。 要使用ProGuard混淆Java代码,需要先将代码编译成字节码,然后使用ProGuard对字节码进行混淆。可以使用以下命令运行ProGuardjava -jar proguard.jar @proguard.cfg 其中,proguard.cfg是包含ProGuard规则的配置文件。运行ProGuard后,将产生一个混淆后的.jar文件,其中包含混淆后的字节码和ProGuard生成的映射文件,该文件可以用于调试和错误分析。 总之,使用ProGuard可以有效地保护Java代码的安全性和减小应用程序的大小,但需要注意在混淆过程中可能会引入一些问题,如混淆后的代码无法运行或某些类或方法被错误地删除。因此,需要谨慎地选择ProGuard规则并进行适当的测试和调试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值