2007-11-28

源代码加密?

关键字: java 源代码 加密 混淆

最近公司正在研究如何使用USB加密方式防止别人盗用我们程序。众所周知,java源代码被解密是一件很容易的事,而且解密后的文件也有一定的可读性。公司觉得这是非常严重的事情,如果将来我们的程序不断在各个服务器上发布,却很难去监管。于是想出来这个点子去保护所谓的版权。

 

我开发程序也有几年了,对所谓的版权这个东西一直很不以为然。有人跟我谈版权,通常就是在谈如何防止别人得到源代码,而我总觉得这是吃力不讨好的事情。除非你的源代码有独到之处,不然保护这个东西很难搞,最多是把源代码编译时加个混淆器。(这个东西我还要研究一下,希望能对大家有帮助。)但是有些公司因为盗用了别人的代码,所以理所当然地害怕别人也会盗用自己的代码,虽然不一定真是自己的代码,就希望有加密的程序才能放心地安装到客户的机器上。现在有太多的工具可以反编译java程序,一定的担心是正常的。

 

一个公司最重要的是有清晰的商业模式,这个东西很难搞,到现在我们总算有比较一个基础,但能否成功还有待验证。我们也是希望SaaS能够在我们这里实践成功,热切期待中。。。。。。

 

我比较赞同的观点是如果你侵犯了别人的版权,那就不要因为别人侵犯了不一定属于你的所谓版权而动真章,自己都错着呢,还说别人不对。一个公司应该重视是如何雇用优秀的员工,提供良好的工作环境,不断激励员工的创造力,为公司和个人实现双赢,而不是所谓的源代码。这些破代码谁都可以写,但是企业文化,工作氛围,优秀的员工这些东西是不可以复制的。这些才是一个公司最宝贵财富。除非你已经建立了一定的技术壁垒,不希望别人去复制它。

 

源代码加密?让它去见鬼吧!

 

如果你真要这么做,我也不会反对,只要你觉得有理由这么做.虽然你的理由通常都不是理由.代码混淆工具有不少,你可以自由选择.

 

ProGuard 开源Java类文件的压缩,优化,混肴器.它删除没有用的类,字段,方法与属性.使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法.Eclipse已经有Proguard插件.

 

JavaGuard 通用的字节码模糊器,也是开源产品.旨在容易地适应你的规则建造和测试进程,保护有价值的代码,使其不易被反编译以及其它形式的反向处理.

 

JODE 开源Java反编译与优化器.通过脚本文件可以控制Class文件的多种优化方式.

评论
Nighthaven 2008-03-19
其实混淆过后效果也不太好。office用c++写的代码,公司里的人也一样破解了看人家是怎么做的`````所以只要你的产品够好,就总是……
Nighthaven 2008-03-19
aids198311 写道
抛出异常的爱 写道
有种混晓器
是把代码的class名方法名,属性名全改成0Oo1lI的13位字母组合
相当于重构中的改名方法.

这种混乱之后很难.....

难道这种操作是不可逆的?也就是说无法再还原维护了 !!!????



不可逆的,因为名字只要不重复,在编译器看来就都一样,混淆过以后,拿去编译的代码里根本就不包含原来的名字信息,所以也就没办法恢复。
aids198311 2008-03-19
抛出异常的爱 写道
有种混晓器
是把代码的class名方法名,属性名全改成0Oo1lI的13位字母组合
相当于重构中的改名方法.

这种混乱之后很难.....

难道这种操作是不可逆的?也就是说无法再还原维护了 !!!????
抛出异常的爱 2008-03-19
有种混晓器
是把代码的class名方法名,属性名全改成0Oo1lI的13位字母组合
相当于重构中的改名方法.

这种混乱之后很难.....
mooniscrazy 2008-03-19
果然是海阔天空啊。本想进来学两招,谁知谈了半天,没有1个人谈到主题。
chenjinlai 2008-03-19
C3PO 写道
雁行 写道
有的东西是谁都可以写,没有多大的技术含量。
问题是你们一个团队辛辛苦苦写了4,5个月甚至是一年的代码,你很乐意别人或者别的公司拿去作为自己的产品修改修改去卖吗?


不是问题。绝大多数公司写出来的代码连他们自己都没有办法修改维护,更别提让其他公司偷去修改发表了。


是的,只要留几个漏洞,经常要打补丁...哈哈,自己员工都得维护个半死...
zhenjw 2008-03-19
抛出异常的爱 写道
把代码写的非常 恶 心.....那样看源码的人就会恶心吐血死掉.
这个世界清静了.

我们公司做维护的也就要死了
samuelray 2008-02-19
引用
不是问题。绝大多数公司写出来的代码连他们自己都没有办法修改维护,更别提让其他公司偷去修改发表了

难道大家写的代码都这样的吗?
gklovejava 2008-02-19
抛出异常的爱 写道
把代码写的非常 恶 心.....那样看源码的人就会恶心吐血死掉.
这个世界清静了.

就当是人工混淆,哈哈
leehus 2008-02-19
C3PO 写道
不是问题。绝大多数公司写出来的代码连他们自己都没有办法修改维护,更别提让其他公司偷去修改发表了。

高,说的太好了
samuelray 2008-02-18
引用
没有关系.被拿去就拿去麻.
一个庞大的系统,别人只拿到了代码,又能做什么呢?轻易就能部署起来?
一个简单的系统,别人自己写也很容易,又何必去拿别人的代码呢?

如果代码就是一个公司的核心竞争力,老板就会把代码看得比较重.实际上开发实力更有可能成为软件企业的核心竞争力,只不过大家都信不过这东西,因为它看不见摸不着,更抓不住.
protti 2008-02-18
抛出异常的爱 写道
把代码写的非常 恶 心.....那样看源码的人就会恶心吐血死掉.
这个世界清静了.



估计我们组长会把我先打的吐血死掉...........
抛出异常的爱 2008-02-18
把代码写的非常 恶 心.....那样看源码的人就会恶心吐血死掉.
这个世界清静了.
yyjn12 2008-02-18
雁行 写道
有的东西是谁都可以写,没有多大的技术含量。
问题是你们一个团队辛辛苦苦写了4,5个月甚至是一年的代码,你很乐意别人或者别的公司拿去作为自己的产品修改修改去卖吗?


软件业逐渐在向服务发展了.
你改了别人的代码,卖了一笔钱,卖完就完了?
yyjn12 2008-02-18
没有关系.被拿去就拿去麻.
一个庞大的系统,别人只拿到了代码,又能做什么呢?轻易就能部署起来?
一个简单的系统,别人自己写也很容易,又何必去拿别人的代码呢?
雁行 2008-02-18
有的东西是谁都可以写,没有多大的技术含量。
问题是你们一个团队辛辛苦苦写了4,5个月甚至是一年的代码,你很乐意别人或者别的公司拿去作为自己的产品修改修改去卖吗?
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

samuelray
搜索本博客
最近加入圈子
存档
最新评论