标题：软件保护
软件保护
分类软件保护一般分为软加密和硬加密；[1]
硬加密一般俗称 加密狗或加密锁。
加密狗"加密狗"是一种插在计算机USB口或并口上的软硬件结合的加密产品，早期多为并口形式，目前绝大部分都是USB口形式。一般都有几十或几百字节的非易失性存储空间可供读写，现在较新的狗内部还包含了单片机。软件开发者可以通过接口函数和软件狗进行数据交换（即对软件狗进行读写），来检查软件狗是否插在接口上；或者直接用软件狗附带的工具加密自己EXE文件（俗称"包壳"）。这样，软件开发者可以在软件中设置多处软件锁，利用软件狗做为钥匙来打开这些锁；如果没插软件狗或软件狗不对应，软件将不能正常执行。 
加密狗通过在软件执行过程中和加密狗交换数据来实现加密的.加密狗内置单片机电路(也称CPU)，使得加密狗具有判断、分析的处理能力，增强了主动的反解密能力。这种加密产品称它为"智能型"加密狗.加密狗内置的单片机里包含有专用于加密的算法软件，该软件被写入单片机后，就不能再被读出。这样，就保证了加密狗硬件不能被复制。同时，加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数，如DogConvert(1)=17345、DogConvert(A)=43565。
加密狗是为软件开发商提供的一种智能型的软件保护工具，它包含一个安装在计算机并行口或 USB 口上的硬件，及一套适用于各种语言的接口软件和工具软件。加密狗基于硬件保护技术，其目的是通过对软件与数据的保护防止知识产权被非法使用。
加密狗的工作原理加密狗通过在软件执行过程中和加密狗交换数据来实现加密的.加密狗内置单片机电路(也称CPU)，使得加密狗具有判断、分析的处理能力，增强了主动的反解密能力。这种加密产品称它为"智能型"加密狗.加密狗内置的单片机里包含有专用于加密的算法软件，该软件被写入单片机后，就不能再被读出。这样，就保证了加密狗硬件不能被复制。同时，加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数，如DogConvert(1)=17345、DogConvert(A)=43565。下面，我们举个例子说明单片机算法的使用。 比如一段程序中有这样一句：A=Fx(3)。程序要根据常量3来得到变量A的值。于是，我们就可以把原程序这样改写：A=Fx(DogConvert(1)-12342)。那么原程序中就不会出现常量3，而取之以DogConvert(1)-12342。这样，只有软件编写者才知道实际调用的常量是3。而如果没有加密狗，DogConvert函数就不能返回正确结果，结果算式A=Fx(DogConvert(1)-12342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式，要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、更令解密者难以琢磨。此外，加密狗还有读写函数可以用作对加密狗内部的存储器的读写。于是我们可以把上算式中的12342也写到狗的存储器中去，令A的值完全取决于DogConvert()和DogRead()函数的结果，令解密难上加难。不过，一般说来，加密狗单片机的算法难度要低于一些公开的加密算法，如DES等，因为解密者在触及加密狗的算法之前要面对许多难关
最新的硬件加密原理目前全球最先进的圣天狗中引入了双算法安全通道技术，在通讯中同时采用128位AES算法及160位ECC算法作为通讯加密手段，每一次数据传输都用128位随机密钥AES算法对其加密，而这个随机的密钥又用160位ECC算法加密，在随后传输。由于ECC是非对称算法，加密和解密的密钥并不相同，如果其中一组密钥可以用黑客手段从内存中获得，那么另外一组烧录在硬件狗中的密钥，黑客无法获得。无法获得两对ECC密钥，也就无法破解ECC加密的数据，从而无法获得AES密钥，也就无法破解整个通讯过程。这一双算法安全通道技术彻底解决了通讯监听破解的难题，传统的对称算法加密，黑客只要从内存中获得其加密密钥，就可以破解整个通讯过程。
在线方式的软件保护原理传统的软件保护产品主要通过应用程序与本地计算机上的加密锁或许可证文件进行验证的方式，这种方式的缺点是需要安装客户端硬件、驱动或者是本地许可证，而且在软件开发商与应用程序之间没有联系，因此后期的许可升级比较麻烦，一般通过客户端生成请求串，再由开发商工具生成返回串的方式手工完成。
此外，无论是客户端的加密锁硬件还是许可证文件，都较容易被破解者分析、破解。对于加密锁硬件来说，目前硬件复制的破解方式也非常多。
随着互联网的发展，一种新的、基于互联网服务器认证的软件保护方式油然兴起。
这种在线方式 (On-line Protection) 的软件保护是以新兴的互联网技术为基础，以互联网服务器来替代传统的加密锁硬件。应用程序通过开发商发放的授权码与网络认证服务器建立连接，并调用服务器上的Web Service接口完成软件保护工作。因为这种客户端/服务器模式之前采用了高强度的类似TSL的通讯加密技术，而且服务器远离软件用户，因此它的软件保护强度可以非常高。除此之外，在线方式的软件保护不需要在客户端安装众多的模块，因此安装、部署、维护都非常简单。最重要的是，高性能的服务器可以提供除了软件保护之外的其它众多接口，如数据存储、远程通讯等，其应用范围已经大大超出了传统软件保护的范围。
在线方式的客户端通过与服务器的实时连接，为开发商收集软件用户使用状态、统计软件使用情况、快速升级与服务提供了可能。目前由北京比特安索信息技术有限公司推出的比特平台，是国际上领先的在线方式保护、授权以及用户管理解决方案。
软件的几种保护方式介绍
概述若你想学习高深破解技术的话，请务必一定要熟悉汇编语言的指令用法及寄存器，堆栈...等概念，最好购买一些书来参考。推荐一本汇编书：清华大学出的《80x86 汇编语言程序设计教程》。
形式一般注册分好几种保护方式，有如下几种形式：
1. 游戏数值修改: 生命值,法力值,物品数量,....这类数值都是玩GAME一族无法抹灭的痛,通过修改技巧,让你体会玩GAME的另一种乐趣. 
2. 磁盘保护破解: 大多的CAI有上所谓的磁盘保护,每次执行都要把磁盘拿进拿出的,假若磁盘坏了,那要怎么办呢??现在只要通过一些技巧 ,你便可以不必再担心磁盘这个麻烦问题罗!
3. 密码破解: 好多GAME都有上密码,每次看密码表是否让你感到很烦呢?一旦密码表搞丢了,那要怎么办呢?最简单的办法就是破解掉,从此不再为了密码表而让眼睛受苦. 
4. 软件注册: 一些SHAREWARE都会加上某些限制,如使用天数,延迟,未注册画面等等,这些想必都让大家头痛不已吧！
a.输入ID&注册码，将ID运算这后对比你所输入的注册码，是否跟运算后所得到的真正注册码一样，若一样的话就是注册者（也是合法使用者啦），若不一样当然就不是罗！
b.输入软件序列号，来判断是否是注册版或合法使用者，PS：又俗称（流水号 ），这样就可以查出此序列号是由谁流传出去。
c.输入ID&公司名称& 注册码，将ID&公司名称运算之后对比你所输入的注册码，是否跟运算后所得到的真正注册码一样，若一样的话就是注册者（也是合法使用者啦），若不一样当然就不是罗！
d.有些软件会去检查是否有注册档（俗称KEY FILES)来判断是否为合法使用者使用，若找到注册档的话，并会检查是否为真正注册档，若一切检查都正确的话，方能使用一些注册后的功能。
e.此种无法破解，因为大部分功能都不含在试用版中，需向原作者缴费注册，方可拿到注册版本。
5. 硬件保护破解: 插狗所造成的不便,是否让你咬牙切齿呢?让我们一同解 决这个棘手的问题吧!
6.利用网卡序列号来加密，只认随机带的网卡。 
7.利用压缩并加密方法使你无从下手，目前许多软件都这样做，如不懂这方面的知识，你就大大落伍了，另外你如是一名汉化大师，那么一定要在这方面有所造诣，不然可供你们汉化的软件就会越来越少了。如：The bat!用UPX压缩，ACDSEE3.0用ASPACK压缩等。 
8.其它保护破解: 利用CMOS等系统资料做的保护,编码保护,禁止TSR程序等。