当前位置: 首页 > 新闻动态 > 新闻详情
开发软件时,尤其当用到商业用途时,注册码和激活码是非常重要的,未注册的用户会加上某些限制,如使用天数,延迟,未注册画面等等。但是现在的软件破解技术十分强大,各种国内外大型软件都有注册机制,却同时也不断地被破解,国家一再加大力度,打击非法软件出版物,扶持正版软件,但实际效果并不理想。大多的软件商选择了购买加密产品或者加密技术来保护自己的软件,软件保护一般分为软加密和硬加密。
常见的软件保护方法
1.注册码。软件的注册码一般都是一机一个,不能重复。下面我们来看看如何实现的。
第一步根据硬盘卷标和cpu序列号,生成机器码,首先编写public static string getdiskvolumeserialnum-ber()函数取得设备硬盘的卷标号,其次编写public static string getcpu()函数获得cpu的序列号,最后生成机器码,函数如下:
string number; string public static string getsoftnum()
{strnum-=getcpu+getdiskvolumeserial-strsoftnum=strnum.substring(0, 24);//从生成的字符串中取出前24个字符做为机器码return strsoftnum; }
第二步根据机器码生成注册码,需要编写public static string getregistnum()函数来实现。
第三步。检查注册状况,若没有注册,可自定义试用天数,延迟,未注册画面等等,可编写private void checkregist0 cpl数来实现。
2.软加密。所谓软加密就是不依靠特别硬件来实现的对软件的保护技术。当前国际上比较通用的软件都采取软加密的方式,例如微软的windows系统、杀毒软件等,它的最大优势在于极低的加密成本。目前主要有密码法、计算机硬件校验法、钥匙盘法等。目前比较流行的是使用外壳,外壳分为压缩壳和加密壳,其中压缩壳的保护性比较弱,所以一般采用加密壳,其原理是利用堆栈平衡原理,修改程序人口处代码,使其跳转到壳代码执行解密程序,将原程序代码解密后跳回原程序的oep继续执行。目前比较强的加密壳采用的是动态解密代码、smc , iat加密技术,程序在运行过程中动态解密代码,执行完毕后立刻删除,并且对iat加密,当需要调用api时用解密算法算出api的实际地址来调用,更有甚者,壳里有壳。目前常见的比较强的5大壳有:( i ) encryptpe,其特点是对iat加密比较强,( 2 ) asprotect,其特点是采用多层seh,很容易把人转晕,( 3) acprotect,其特点是采用stolen code的办法,( 4 ) armadillo,其特点是双进程互相检测,(5)themida,其特点是采用虚拟机技术。好的加密效果在于让盗版者在破解被保护的软件时,付出巨大的代价,耗费极大的时间精力,最终被迫放弃攻击。
3.硬加密。硬加密就是我们所说的加密狗或加密锁,是一种插在计算机usb口或并口上的软硬件结合的加密产品,目前绝大部分都是usb口形式,是基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用,是保证高档软件在市场生命周期中免受盗版侵害的功能强大的工具。加密狗一般都有几十或几百字节的非易失性存储空间可供读写,现在较新的狗内部还包含了单片机。软件开发者可以通过接口函数和软件狗进行数据交换,来检查软件狗是否插在接口上。加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写人单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数。
结束语
软件破解和软件加密就是矛和盾的关系,好的加密效果在于让盗版者在破解被保护的软件时,付出巨大的代价,耗费极大的时间精力,最终被迫放弃攻击。最后我们要认识到软件破解是不道德的,是违法《计算机软件保护条例》的,现如今软件的大众化、市场化,低价化,也让我们有机会有能力去使用正版软件,所以我们要提高觉悟,力所能及的不使用盗版,以实际行动支持中国的软件行业发展。
上一页:软件加密保护技术简介
下一页:加密软件的作用及优缺点