由软件加壳谈起

转载 2006年05月17日 12:16:00

 由软件加壳谈起

现在的共享软件,加壳的愈来愈多,每每用资源编辑器打开一些软件,总是被告知,程序被加壳了,无法察看。这使我不得不想,加壳有用吗?

问:加壳对软件保护究竟起到什么作用,作用有多大?[2003-9-19 15:14:00]

嘉宾[段钢]: 加壳可以延增加软件被破解的难度,并且它的成本低,所以如有条件,在保证兼容性的情况下,选择合适的加壳软件还是有意义的.

这是摘自2003-9-19csdn加密解密论坛的问话。

我们来想一想,有谁来破解我们的软件?

我们再想一想,我们是在防止谁来破解?

然后我们想想,我们阻止了谁?

是的,加壳成本很低,你只要找一款加壳软件,只需几秒钟,你那小小的软件就具备了一层稍微坚固的壳,之所以说稍微坚固,请看下面这段问话。

问:不脱掉upx壳可以进行跟踪吗[2003-9-19 15:09:00]

嘉宾[段钢]: 壳执行时,必会在内存中还原出原程序代码,所以不脱壳你可以动态跟踪它们.

对于那些具有反编译能力的高手来说,壳对于他们来说有多大阻碍?

再反过来说,如果壳真的那么有用,那你就用资源编辑软件打开一些常用的软件,如:金山词霸,金山快译,WinRar,FlashGet,你看一下,他们加壳了吗。这些流传如此之广的软件,都未加壳,我们手中那些不值一提的小程序还有何颜面谈安全,谈保护。对于WinRar和FlashGet,稍有经验的用户都可以很轻松的使用资源编辑器去除请你注册的对话框。对于这些,难道这些软件的作者就不知道吗?他们很容易就可以使那些未显示请注册对话框的程序不能工作,那只是几行代码的事情,可是,他们并不在意这些,他们在意软件的实用性和使用率,而不是你不掏钱,我就不让你用。或者是,你不掏钱,我就烦死你。他们是为程序而编程,所谓的注册只不过是希望得到一些回报来维持自己程序开发的开支,而不是希望通过编程来赚钱,虽然这个社会无钱寸步难行。

软件这东西,它的价值就是使用,对于一款没人使用的软件,无论它多么优秀。他的价值只能是0。

同样,作为一个程序员,我们应把重心放到软件的用户上,力求使用户随心所欲。特别是共享软件。想一想,有几个用户愿对一款陌生的共享软件察看帮助文档来了解它,好的软件是不需要帮助文档的。对于一款陌生的软件,我通常的做法是打开运行一下,通常只是三两分钟的事情,感觉习惯就留下,否则就马上删除,也就是说,能留住用户的软件,这三两分钟是很重要的。要实现这点,对于程序员来说。所作的就是钻进用户的心里,程序做到人性化是很重要的。

我不是微软的追崇者,但我十分赞同微软的观点。下面这两段话是摘自微软全球副总裁李开复在MVP峰会上的演讲:

将来计算机的用户界面将更接近一个助手,而不是一个工具,我们和计算机的交流将不会是一步一步的告诉他怎么做一件事情,而是告诉他我要达到的目标,让他一步一步帮我们,像一个得力的助手一样帮我们做这个事情。

再提到技术,微软其实过去常常犯的一个错误,十年前我们常犯的错误,鲍尔默在这十年花了很多时间纠正我们文化的方向,如果你看微软的价值观,十年前你会看到很重要的是我们要对技术要有激情,但是今天这个价值观被改了,也就是说我们的激情不是专注为了技术,我们考虑的是关注客户的需要,怎样在商业上追寻顾客的要求做出适当的产品,而不是看我们的技术能做到什么样的层次,这是很重要的一点。

如果你的软件是让别人用的,那么,理解上面两点是很重要的。在帮助用户工作的同时,我们要做的就是理解用户,一切为了用户。而不是让用户适应你,学习你。要知道,在大多数用户手中,计算机只是工具,而不是技术。CSDN有篇文档中写道,现在的共享软件全是垃圾,这话虽然刻薄了点,但也确实反映了中国共享软件的现状,但我认为,这种现状不是技术上的原因,而是认识上,思想上的,这也是加壳软件却来越多的原因。想一想,如果眼睛紧盯在money上,如何写得出出色的共享软件。

以前总是听说,中国人知识产权保护意识太弱,而现在形形色色打着防止软件被破解的加壳软件,是否是这种状况下的产物呢?

最后我在这里做几个假设,留给读者思考:

假如我们的软件很优秀,某个老外发现了它,想进行语言本地化。但软件被加壳了。

假如某个用户想打开资源查看一下,可是无法察看,而旁边有一款功能相近的软件,但未加壳。

假如某公司希望从几款优秀的软件中挑出一款与作者合作,这之中有加壳的也有未加壳的。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=19777

由软件加壳谈起

现在的共享软件,加壳的愈来愈多,每每用资源编辑器打开一些软件,总是被告知,程序被加壳了,无法察看。这使我不得不想,加壳有用吗? 问:加壳对软件保护究竟起到什么作用,作用有多大?[2003-9-19 1...
  • wangjiwei2010
  • wangjiwei2010
  • 2006年09月22日 18:23
  • 913

软件加壳的原理及实现

加壳的实现我是个初学者,所知有限,难免会有错误,如果有人发现了错误,还请指正 先大致说一下加壳的原理,即在原PE文件(后面称之为宿主文件)上加一个新的区段(也就是壳),然后从这个新的区段上开始运行;...
  • woshigeshusheng
  • woshigeshusheng
  • 2017年03月30日 16:48
  • 4310

什么是App加壳,以及App加壳的利与弊

非著名程序员涩郎 非著名程序员,字耿左直右,号涩郎,爱搞机,爱编程,是爬行在移动互联网中的一名码匠!个人微信号:loonggg,微博:涩郎,专注于移动互联网的开发和研究,本号致力于分享IT技术和程序...
  • loongggdroid
  • loongggdroid
  • 2015年06月29日 10:15
  • 11562

壳的编写(5)-- 进行加壳操作

由于我们在编写壳的部分比较简单,那么我们在编写加壳的过程中难免要复杂些。我们要完成加壳的操作必然会要读取被加壳程序的各种信息,并保存到一个结构中,为了便于后面的操作。还有在操作上只能读取源文件,将加壳...
  • oBuYiSeng
  • oBuYiSeng
  • 2016年01月16日 16:58
  • 2281

几款软件加密/加壳工具的比较

几款.Net加密/加壳工具的比较 前言    使用过.NET的程序员都知道,.NET是一个巨大的跨时代进步,它开发效率高、功能强、界面观、耐用、新的语言C#已经提交为行业规范、CLR共公运行库资源...
  • dmz1981
  • dmz1981
  • 2013年02月05日 14:34
  • 25462

【机器学习自学笔记1】 从机器学习谈起

时间:2016.10.18 原文链接:http://www.cnblogs.com/subconscious/p/4107357.html
  • hujianpeople
  • hujianpeople
  • 2016年10月18日 11:22
  • 213

.NET程序加壳的基本原理和方式

概述:传统的非托管程序,加壳的对象是汇编指令;对.NET程序的加壳对象则是元数据和IL代码。对.NET程序的加壳,在理论和方式上并没有什么创新,目前都是直接继承与Windows程序的加壳理论和方法。大...
  • wwjshao
  • wwjshao
  • 2014年08月26日 17:09
  • 1452

软件质量特性

功能性:与一组功能及其指定的性质有关的一组属性 可靠性:与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性 易用性:与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的...
  • zhengzhe1937
  • zhengzhe1937
  • 2013年11月07日 08:49
  • 679

加壳与脱壳的原理

加壳一般是指保护程序资源的方法. 脱壳一般是指除掉程序的保护,用来修改程序资源. 病毒加壳技术与脱壳杀毒方法 : 壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚...
  • lzyzuixin
  • lzyzuixin
  • 2009年04月23日 19:14
  • 13109

Android SO 加壳

android so加壳
  • ynnmnm
  • ynnmnm
  • 2016年07月11日 19:17
  • 4106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:由软件加壳谈起
举报原因:
原因补充:

(最多只允许输入30个字)