本节将给出关于软件保护的一般性建议,这些都是无数人经验的总结。程序员在设计自己的保护方式时最好能够遵守这里给出的准则,这样会提高软件的保护强度。
(1)软件最终发行之前一定要将可执行程序进行加壳/压缩,使得解密者无法直接修改程序。如果时间允许并且有相应的技术能力,最好是设计自己的加壳/压缩方法。如果采用现成的加壳工具,最好不要选择流行的工具,因为这些工具已被广泛深入地加以研究,有了通用的脱壳/解压办法。另外,最好采用两种以上的不同的工具来对程序进行加壳/压缩,并尽可能地利用这些工具提供的反跟踪特性。
(2)增加对软件自身的完整性检查。这包括对磁盘文件和内存映像的检查,以防止有人未经允许修改程序以达到破解的目的。DLL和EXE之间可以互相检查完整性。
(3)不要采用一目了然的名字来命名函数和文件,如IsLicensedVersion( )、key.dat等。所有与软件保护相关的字符串都不能以明文形式直接存放在可执行文件中,这些字符串最好是动态生成。
(4)尽可能少地给用户提示信息,因为这些蛛丝马迹都可能导致解密者直接深入到保护的核心。比如,当检测到破解企图之后,不要立即给用户提示信息,而是在系统的某个地方做一个记号,随机地过一段时间后使软件停止工作,或者装作正常工作但实际上却在所处理的数据中加入了一些垃圾。
(5)将注册码、安装时间记录在多个不同的地方。
(7)检查注册信息和时间的代码越分散越好。不要调用同一个函数或判断同一个全局标志,因为这样做的话只要修改了一个地方则全部都被破解了。
(8)不要依赖于GetLocalTime( )、GetSystemTime( )这样众所周知的函数来获取系统时间,可以通过读取关键的系统文件的修改时间来得到系统时间的信息。
(9)如果有可能的话,可以采用联网检查注册码的方法,且数据在网上传输时要加密。
(10)除了加壳/压缩之外,还需要自己编程在软件中嵌入反跟踪的代码,以增加安全性。
(11)在检查注册信息的时候插入大量无用的运算以误导解密者,并在检查出错误的注册信息之后加入延时。
(12)给软件保护加入一定的随机性,比如除了启动时检查注册码之外,还可以在软件运行的某个时刻随机地检查注册码。随机值还可以很好地防止那些模拟工具,如软件狗模拟程序。
(13)如果采用注册码的保护方式,最好是一机一码,即注册码与机器特征相关,这样一台机器上的注册码就无法在另外一台机器上使用,可以防止有人散播注册码,并且机器号的算法不要太迷信硬盘序列号,因用相关工具可以修改其值。
(14)如果试用版与正式版是分开的两个版本,且试用版的软件没有某项功能,则不要仅仅使相关的菜单变灰,而是彻底删除相关的代码,使得编译后的程序中根本没有相关的功能代码。
(15)如果软件中包含驱动程序,则最好将保护判断加在驱动程序中。因为驱动程序在访问系统资源时受到的限制比普通应用程序少得多,这也给了软件设计者发挥的余地。
(16)如果采用keyfile的保护方式,则keyfile的尺寸不能太小,可将其结构设计得比较复杂,在程序中不同的地方对keyfile的不同部分进行复杂的运算和检查。
(17)自己设计的检查注册信息的算法不能过于简单,最好是采用比较成熟的密码学算法。可以在网上找到大量的源码。进入讨论组讨论。
分享到:
相关推荐
### 软件测试的主要内容与一般要求规定 #### 一、成熟性测试规定 **1.1 目的** 成熟性测试旨在检验与软件系统故障引起失效的频度相关的软件属性,目的是发现软件系统内部可能存在的各种差错,以便及时修改软件...
然而,为了更全面地了解软件的性能,建议亲自试用并评估其各项特性。 总的来说,PPT转换器是提高工作效率、简化文档处理流程的有效工具,尤其适合教育、商务和研究等领域。选择一款适合自己需求的高质量转换器,...
这不仅有助于解决特定的软件兼容性问题,而且一般情况下较新的Office版本与最新操作系统和第三方软件的兼容性更好。 文档中还提供了相关的微软官方下载链接,方便用户获取和安装“Microsoft Access Database Engine...
标题中的“电脑软件关闭系统文件保护”涉及到的是操作系统中的一项安全特性,通常在Windows系统中被称为“系统文件保护”(System File Checker,SFC)...为了保护系统安全,一般不建议普通用户自行关闭系统文件保护。
### 软件工程监理的一般流程与监理要点 #### 引言 随着信息技术的快速发展,软件工程在各个行业中扮演着越来越重要的角色。然而,软件项目的复杂性和不确定性导致其成功率普遍较低,这已经成为业内共识。为了提高...
这类工具一般会提供用户友好的界面,允许用户导入多个XM文件,然后统一设定输出格式和质量参数。批量转换的优点在于可以节省大量手动操作的时间,尤其当需要处理大量文件时。 转换过程通常分为以下几步: 1. **...
考虑到这里无法提供基于具体内容的知识点,我们可以将讨论转向软件可行性报告的一般概念和结构。 软件可行性报告是项目开发前的必要文件,它的主要目的是通过技术、经济、法律等方面的研究与评估,确认项目是否可行...
2. 软件源代码:一般需要提供前30页和后30页的源代码,每页不少于50行,以便审查软件的原创性。 3. 用户手册或操作说明书:这部分应详细说明软件的功能、操作流程,帮助审核人员理解软件的工作原理。 4. 软件设计...
爱普生L3260是一款多功能一体机,集打印、扫描和复印功能于一身,深受...总的来说,爱普生L3260清零软件是解决打印机计数器问题的有效工具,但在使用时要注意软件的可靠性和操作的准确性,以保护设备并延长其使用寿命。
在《某软件设计项目谋划建议书》中,我们主要探讨了项目的可行性、区域背景、需求分析、建设条件、设计方案以及智能化系统的构建和环境影响评估等多个关键方面,这些内容对于理解和实施一个成功的软件设计项目至关...
在提供的压缩包文件中提到的"PDF转换器"可能就是这样一个工具,但具体是哪款软件,由于没有提供更多信息,这里将以一般性的方式介绍转换过程。 1. **安装PDF转换器**:首先,你需要下载并安装一个PDF转Word的软件。...
本文将详细探讨如何使用“喜马拉雅xm转mp3”工具,这是一款专为将XM格式音频文件转换为更通用的MP3格式而设计的小型软件。XM格式主要由喜马拉雅平台使用,而MP3则是广泛接受的音频格式,可以在多种设备和播放器上...
5. **定期维护**:为了保持打印机的良好运行,建议用户定期运行测针软件进行检查和维护,预防潜在故障的发生。 总的来说,EPSON针式打印机测针软件是保障打印质量和延长设备使用寿命的重要工具。通过深入理解其功能...
1. **系统兼容性**:确保软件与操作系统兼容,一般会提供Windows和Mac版,但需留意版本要求。 2. **驱动安装**:安装过程中可能会要求安装额外的驱动程序,这是为了让软件能够模拟硬件摄像头。 3. **软件设置**:...
PDF(Portable Document ...为了确保最佳的转换效果,建议使用高质量的PDF转换器,并确保原始PDF文件的结构清晰,避免使用复杂格式。此外,对于含有大量复杂数据和图表的PDF,手动重新创建Excel表格可能更为可靠。
系统文件保护(System File Checker,简称SFC)是Windows操作系统中的一个重要功能,它旨在保护系统核心文件不被未经授权的修改或替换,确保系统的稳定性和安全性。当你尝试执行名为"电脑软件彻底关闭系统文件保护...
Epson 1390是一款由爱普生公司生产的专业照片打印机,因其高质量的打印效果而受到摄影爱好者和小型工作室的欢迎。...在使用这类软件时,务必谨慎操作,遵循指导,以确保打印机的正常运行和长期稳定性。
然而,为了保护商家的合法权益和避免潜在风险,强烈建议遵循正当途径进行软件授权。商家可以联系软件开发商,购买合法的授权许可,确保软件的长期稳定运行,并得到及时的技术支持和服务保障。 总的来说,星宇超市...
通常,这需要具备一定的电脑知识和风险意识,一般用户不建议自行操作。 以下是可能涉及的步骤,但请记住,这些操作可能会对系统造成不可逆的影响: 1. **备份注册表**:在修改注册表之前,务必先备份重要的数据和...
中国的软件著作权申请一般由中国版权保护中心负责。你需要访问其官方网站了解最新的政策和申请指南。 3. **在线注册**: 首先,你需要在版权保护中心的官网上注册一个账号,填写个人信息或公司信息。 4. **填写...