由软件加壳谈起
现在的共享软件,加壳的愈来愈多,每每用资源编辑器打开一些软件,总是被告知,程序被加壳了,无法察看。这使我不得不想,加壳有用吗?
问:加壳对软件保护究竟起到什么作用,作用有多大?[2003-9-19 15:14:00]
嘉宾[段钢]: 加壳可以延增加软件被破解的难度,并且它的成本低,所以如有条件,在保证兼容性的情况下,选择合适的加壳软件还是有意义的.
这是摘自2003-9-19csdn加密解密论坛的问话。
我们来想一想,有谁来破解我们的软件?
我们再想一想,我们是在防止谁来破解?
然后我们想想,我们阻止了谁?
是的,加壳成本很低,你只要找一款加壳软件,只需几秒钟,你那小小的软件就具备了一层稍微坚固的壳,之所以说稍微坚固,请看下面这段问话。
问:不脱掉upx壳可以进行跟踪吗[2003-9-19 15:09:00]
嘉宾[段钢]: 壳执行时,必会在内存中还原出原程序代码,所以不脱壳你可以动态跟踪它们.
对于那些具有反编译能力的高手来说,壳对于他们来说有多大阻碍?
再反过来说,如果壳真的那么有用,那你就用资源编辑软件打开一些常用的软件,如:金山词霸,金山快译,WinRar,FlashGet,你看一下,他们加壳了吗。这些流传如此之广的软件,都未加壳,我们手中那些不值一提的小程序还有何颜面谈安全,谈保护。对于WinRar和FlashGet,稍有经验的用户都可以很轻松的使用资源编辑器去除请你注册的对话框。对于这些,难道这些软件的作者就不知道吗?他们很容易就可以使那些未显示请注册对话框的程序不能工作,那只是几行代码的事情,可是,他们并不在意这些,他们在意软件的实用性和使用率,而不是你不掏钱,我就不让你用。或者是,你不掏钱,我就烦死你。他们是为程序而编程,所谓的注册只不过是希望得到一些回报来维持自己程序开发的开支,而不是希望通过编程来赚钱,虽然这个社会无钱寸步难行。
软件这东西,它的价值就是使用,对于一款没人使用的软件,无论它多么优秀。他的价值只能是0。
同样,作为一个程序员,我们应把重心放到软件的用户上,力求使用户随心所欲。特别是共享软件。想一想,有几个用户愿对一款陌生的共享软件察看帮助文档来了解它,好的软件是不需要帮助文档的。对于一款陌生的软件,我通常的做法是打开运行一下,通常只是三两分钟的事情,感觉习惯就留下,否则就马上删除,也就是说,能留住用户的软件,这三两分钟是很重要的。要实现这点,对于程序员来说。所作的就是钻进用户的心里,程序做到人性化是很重要的。
我不是微软的追崇者,但我十分赞同微软的观点。下面这两段话是摘自微软全球副总裁李开复在MVP峰会上的演讲:
将来计算机的用户界面将更接近一个助手,而不是一个工具,我们和计算机的交流将不会是一步一步的告诉他怎么做一件事情,而是告诉他我要达到的目标,让他一步一步帮我们,像一个得力的助手一样帮我们做这个事情。
再提到技术,微软其实过去常常犯的一个错误,十年前我们常犯的错误,鲍尔默在这十年花了很多时间纠正我们文化的方向,如果你看微软的价值观,十年前你会看到很重要的是我们要对技术要有激情,但是今天这个价值观被改了,也就是说我们的激情不是专注为了技术,我们考虑的是关注客户的需要,怎样在商业上追寻顾客的要求做出适当的产品,而不是看我们的技术能做到什么样的层次,这是很重要的一点。
如果你的软件是让别人用的,那么,理解上面两点是很重要的。在帮助用户工作的同时,我们要做的就是理解用户,一切为了用户。而不是让用户适应你,学习你。要知道,在大多数用户手中,计算机只是工具,而不是技术。CSDN有篇文档中写道,现在的共享软件全是垃圾,这话虽然刻薄了点,但也确实反映了中国共享软件的现状,但我认为,这种现状不是技术上的原因,而是认识上,思想上的,这也是加壳软件却来越多的原因。想一想,如果眼睛紧盯在money上,如何写得出出色的共享软件。
以前总是听说,中国人知识产权保护意识太弱,而现在形形色色打着防止软件被破解的加壳软件,是否是这种状况下的产物呢?
最后我在这里做几个假设,留给读者思考:
假如我们的软件很优秀,某个老外发现了它,想进行语言本地化。但软件被加壳了。
假如某个用户想打开资源查看一下,可是无法察看,而旁边有一款功能相近的软件,但未加壳。
假如某公司希望从几款优秀的软件中挑出一款与作者合作,这之中有加壳的也有未加壳的。