CPL纸

浅谈软件的破解与保护

保护知识产权抵制盗版软件是中国软件业面临的迫切问题。目前大多数软件都采用加密技术来处理。分析了软件破解中几个重要的技术术语和常用的软件破解方法,详细介绍了软加密和硬加密技术。

关键词:知识产权、软件加密、软件破解

1,简介

在开发软件时,尤其是用于商业目的时,注册码和激活码非常重要。未注册用户会有一定的限制,比如使用天数、延迟、未注册屏幕等等。但是,现在的软件破解技术非常强大。国内外各种大型软件都有注册机制,但同时又不断被破解。国家多次加大打击非法软件出版、扶持正版软件的力度,但实际效果并不理想。大多数软件厂商选择购买加密产品或加密技术来保护自己的软件。软件保护一般分为软加密和硬加密。

2.常见的软件破解方法

首先,我们来看看破解中的一些重要的专业术语。

(1)断点,所谓断点就是程序中断的地方。中断是指计算机挂起当前任务,改为执行另一个任务,然后返回原任务继续执行。解密的过程就是等到程序得到我们输入的注册码,准备和正确的注册码进行比对,然后我们就可以通过分析程序找到正确的注册码。

(2)空域,所谓程序的空域,就是程序本身的领地,也就是我们要破解的程序代码所在的位置。每个程序的编写都没有固定的模式,所以如果我们想截程序的时候中断程序,就必须独立于具体的程序来设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。

(3)API,应用编程接口的简称,是系统定义函数的大型集合,提供了访问操作系统特性的方法。API包含数百个由应用程序调用的函数,这些函数执行所有与操作系统相关的必要操作,如内存分配、屏幕输出和窗口创建。WINDOWS程序基于API处理系统。无论是哪种应用,其底层最终都是通过调用各种API函数来实现各种功能。

了解了以上三个专业术语,我们再来看看基本的软件破解方法。

2.1暴力破解法。这是最常见最简单的破解方式,破解者直接使用编辑工具;修改可执行文件,也就是说通过修改属性程序的源文件来达到破解的目的。当某些组件验证用户注册信息和注册码时,如果用户输入信息等于软件传递的算法生成的注册码,则程序注册成功,否则注册失败。

2.2使用算法注册机。算法注册机是在分析软件注册码算法的基础上,自动生成软件注册码的程序。所以软件的算法很重要,一般软件作者也是自己写的,方便软件的销售和使用。这种软件加密的特点是一个注册码只能在一台电脑上使用,像和电脑一对一绑定一样。使用步骤如下:首先运行试用软件得到本机的软件机器码,然后用算法注册机注册,然后用算法注册机直接计算出合适的注册码,最后用计算出的注册码直接注册。

2.3用内存破解。我们知道所有运行程序的数据都要加载到内存中,软件用注册码认证时会有一个比对过程,所以我们只需要知道要破解的软件的注册码的内存地址,就可以达到我们的目的。这种方法的好处是不需要花太多力气去掌握软件注册码的算法,节省了写内存注册机的时间。步骤是先加载内存注册机,然后通过它获取内存中软件的真实注册码,或者修改内存中与软件相关的一些数据,达到破解软件的目的。主要有两种方式,第一种是直接从内存中获取注册码,第二种是在内存中模拟注册程序的运行环境。

2.4补丁破解法和文件注册法。补丁破解法是指用相关补丁修改软件,达到破解软件的目的。这种方法一般是破解软件的验证注册码或时间,基本上是修改原程序的判决句。比如程序的试用期是一个月,可以修改一下,达到无限使用的目的。文件注册法是将软件的注册内容放入一个文件中,方便自己或他人向其注册。主要有两种方式:注册表指南和注册文件指南。3.常见的软件保护方法

3.1注册码。软件的注册码一般是一机一个,不能重复。下面我们来看看如何实现。

第一步,根据硬盘的卷标和CPU的序列号生成机器码。首先编写公共静态字符串getdiskvolumeSerialnum-ber()函数获取设备硬盘的卷标,然后编写公共静态字符串getCpu()函数获取Cpu的序列号,最后生成机器码。这些功能如下:

字符串编号;String公共静态字符串getsoftNum()

{ strNum-= getCpu+GetDiskVolumeSerial-strsoftNum = strNum。子串(0,24);//从生成的字符串中取前24个字符作为机器码返回strsoftNum}

第二步,根据机器码生成注册码,需要通过编写公共静态字符串getRegistNum()函数来实现。

第三步。检查注册状态。如果没有注册,可以自定义试用天数、延迟、未注册屏幕等。,并且可以写私有void CheckRegist0 Cpl的数量来实现。

3.2软加密。所谓软加密,是一种不依赖特殊硬件保护软件的技术。目前世界上大多数常用软件都采用软加密,比如微软的windows系统和杀毒软件。它最大的优势在于极低的加密成本。目前主要有密码法、计算机硬件验证法、密匙盘法等。目前比较流行用shell,分为压缩shell和加密shell。压缩壳的保护比较弱,所以一般用加密壳。其原理是利用堆栈平衡原理修改程序种群的代码,使其跳转到shell代码执行解密程序,解密原程序代码后再跳转回原程序的OEP继续执行。目前,强加密外壳采用动态解密代码、SMC和IAT加密技术。程序在运行过程中动态解密代码,执行后立即删除,加密IAT。调用API时,它使用解密算法计算API的实际地址来调用它。更何况壳里还有壳。目前常见的五种强壳分别是:(I) EncryptPE,以IAT强加密为特征;(2)a protect,特点是使用多层SEH,容易让人头晕;(3)ACP rect,其特征是使用窃取的代码;(4)犰狳,其特征是两个过程相互检测;(5)themida。好的加密效果就是让盗版者付出巨大的代价,在破解受保护软件时花费大量的时间和精力,最后被迫放弃攻击。

3.3硬加密。硬加密就是我们所说的加密狗或加密锁,是插入电脑USB口或并口的软硬件结合体。目前大部分都是USB口的形式,基于硬件保护技术。其目的是通过对软件和数据的保护来防止知识产权被非法使用,是保证高端软件在市场生命周期内不被盗版的有力工具。加密狗一般有几十或几百字节的非易失性存储空间用于读写,现在较新的加密狗还包括一个单片机。软件开发者可以通过接口函数与软件狗交换数据,检查软件狗是否插入接口。加密狗内置的微控制器中含有专用于加密的算法软件,被微控制器写入后无法读出。这样,确保了加密狗硬件不能被复制。同时,加密算法是不可预测和不可逆的。加密算法可以将数字或字符转换成整数,如dconvert (6) = 67876,dconvert (x) = 345670。

4.结束语

软件破解和软件加密是矛和盾的关系。良好的加密效果在于盗版者在破解受保护软件时付出了巨大的代价,花费了大量的时间和精力,最终被迫放弃攻击。最后,我们应该认识到软件破解是不道德的,违反了计算机软件保护条例。现在软件的大众化、市场化、低价化也给了我们使用正版软件的机会,所以我们要提高意识,尽最大努力不使用盗版,以实际行动支持中国软件产业的发展。