Web虎-b/s源代码加密,软件防盗版保护系统

站内搜索:

热搜: asp.net加密 php加密  

Java加密 ...
  选择Web虎的20个理由   免费赠送Web虎机器码版-网站授权保护系统   免费试用打包加密版Web虎   50套可免费打激光logo
  首页 | php加密 | asp.net加密 | flash保护 | Web虎网站(课件)保护 | 成功案例 | 公司动态 | 业界关注 | 客服| 下载| 关于| 付款方式| 注册
当前位置:业界关注

Java程序的加密和反加密


时间:2011年6月7日  来源:互联网转载  关联产品/方案:网站授权保护

首先我们来看看Java加密程序的反加密,也就是通常所说的Crack过程,只有明白了这个过程,我们才能有效的对我们的程序进行加密。

通常我们得到的Java加密程序的Crack包有两种,一种属于KeyGen(注册码生成器)、一种属于替换修改;

我们先看第一种,当我们找到一个应用程序的KeyGen的时候我们总是很佩服那个做出KeyGen的人,觉得他很厉害,但是你仔细分析一下,为什么他能做出KeyGen呢?只有
他对这个Java程序的加密算法了解的非常清楚;这种人有哪些呢?一个是那个公司里面的人,那不可能,除非内讧,还又呢,就是猜想,反推,这个可能吗?呵 呵,更不可能,那这个算法从哪里来呢?呵呵,往往泄漏秘密的就是秘密本身……回过头来想想,Java应用程序怎么知道你输入的注册码是否正确呢?呵呵,那 你就该从应用程序入手……
得到的它的加密算法,自然KeyGen就不在话下了……(但是这也有列外,如果它是用的公钥秘钥对加密的,就没有办法喽,只能用第二种方法。)

这种办法只适合对付只要一个注册号,别的什么都不要的情况,经典代表Borland JBuilder & Optimizeit Suite

再看第二种,为什么要用替换修改?我们是修改了那部分呢?不用想,肯定是License验证的部分,为什么我们不像上面的方法那样找加密算法呢?原 因有两种:(1)使用上面的办法搞不定;(2)Java程序不仅要Key,还有其他的License配置;遇到这种情况,我们只要找到用于License 验证的类,进行修改替换就行了。

这种办法使用于任何情况,经典代表BEA WebLogic

经过上面的分析,我们的问题就集中了,关键就是怎么找到用于License验证的部分或加密算法的部分,我们需要3个工具:一个是Sun公司提供的标准JVM:),一个是你
的耐心和细心:),一个是Jad(经典Java反编译工具)。

第一步是定位,这也是最关键的一步,我们这里以Together For JBuilder Edition为例,启动Together,先看看长什么样子?喔,上来就问我要License;Ok,
每关系,退出;找到Together的启动Bat文件,找到它的启动命令:java .....,OK,在Java启动的时候给一个参数:“ -Xrunhprof:cpu=times”,保存,在启动,还是要
License,退出,这个时候,我们可以发现,在这个目录下多了一个“java.hprof.txt”文件,打开一看,就是我要的JVM的Dump文件,好多内容啊,没关系,慢慢看来。

我们可以看见这个文件里面有好多熟悉的东西啊:java.*/com.sun.*/javax.*等等,但这个不是我们关心的,我们要的是 com.togethersoft.*或者是一些没有包名的zd.d等等。(这里插一句,几乎所有的Java应用程序都会混淆的,其实混淆的原理也很简 单,我们后面再说。)先找找有没有License有关的,Serach一下,嘿嘿,果然,474 行:com.togethersoft.together.impl.ide.license.LicenseSetup.execute([DashoPro- V2-050200]:Unknown line),Ok上那堆classpath中的Jar包里面找一下吧(推荐用WinRAR),找到了之后用Jad反编译,一看,这个没有混淆,但是用了一 个zae的类,这个看名字就知道混淆过了,先不理它,再看看下面一句IdeLicenseAccess.setLicense(zae1),Ok接着找到 IdeLicenseAccess,哈哈,就这点名堂,所有的License验证都是走的这个类,面向对象的思想不错,呵呵:)

定位定完了,接下来的事情就是按猜想的方法修改这两个类,屏蔽掉LicenseSetup里面execute方法的实际内容,修改 IdeLicenseAccess,让多有的验证都返回true,然后编译,替换;不要高兴太早,这还没有完呢,要有责任心!!启动Together,果 然,这下不要License了,有启动画面,进去了,但是一片灰色,怎么回事,一看控制台,一堆错,没关系,就怕不出错,查找根源,还有一个 IdeLicenseUtil类出了问题,再反编译,修改,替换;这下搞定了。再启动,测试一下,OK MB7-222 70-210 1Y0-327 。

就这样,一个Java加密应用程序搞定了。看看其实也很简单。

再来说说混淆,大家可能都知道没有经过混淆的Java的Class反编译回来连方法和变量的名字都不会变,这是什么原因呢?这就要追述到Class 文件的结构了,简单来说,Class文件种包含又一个常数池(constant pool)这个里面就存放了变量和方法的名称等一下和Class相关的东西,我们通常所说的混淆就是用一种工具把这个常数池里面的东东弄的胡涂一点,这样 就能骗过反编译器和你,呵呵:)这就是为什么有时候反编译回来的东西编译不过去的原因。

再回过头来说说Java加密程序的加密;从上面的两种方法来看,Java加密程序似乎是没有什么完美的办法进行加密的,其实不然,我们必须遵循一些原则,才能有效的保护你的产品。

原则一,尽量使用公钥和秘钥对进行加密;
原则二,不要在加密验证的部分使用面向对象思想:)把验证的方法写在程序的各个角落,并标注为private final void,让编译器替你处理成内联方法;
原则三,尽可能的大幅度混淆:)找个好点的混淆器

相关业界关注:
java与C++的DES加密与解密(2011-6-26)

Java程序的加密和反加密(2011-6-7)

运用加密技术保护Java源代码(2011-5-27)

java加密,jsp加密,class加密-@soidc(2009-6-5)

深圳易用信息公司,一切以用户为中心

jar加密狗,php加密狗,ASP.NET加密狗,java加密狗,bs加密狗,asp加密狗,课件加密狗,flash加密狗,swf加密狗


地址:深圳市福田区深华科技园1栋6楼 | 邮编:518008 | 电话:0755-88865755,(0)138-2326-5258 | 传真:0755-83273525 | 电邮:leo-euse.cn
华东办:(0)186-5858-6527| 电邮:jacky-euse.cn | 关注咱们:
北京代理:中科神州(北京)信息技术有限公司|电话:(0)137-0124-0303|电邮:yubin_sinotech

  本网站版权归深圳市易用信息技术有限公司所有   |   粤ICP备09056668号-2  始自2003年


合作伙伴招募中:

上海,广州,杭州,宁波,南京,无锡,佛山,苏州,天津,成都,大连,济南,青岛,烟台,泉州,常州,东莞,武汉,沈阳,金华,南通,重庆,郑州,福州,温州,长沙,厦门,绍兴,西安,哈尔滨,合肥,珠海,包头,昆明,太原,湖州,汕头,惠州,广东,山东,江苏,浙江,河南,河北,辽宁,上海,四川,湖北,湖南,福建,北京,安徽,内蒙古,黑龙江,广西,陕西,吉林,天津,山西,江西,云南,重庆,新疆,贵州


友情连接: flash加密防盗版保护 seo工具 铁卷防泄密 纵横网络 软件项目交易网 深圳工作流系统 局域网管理软件 YCanPDF