日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
摘 要:本文分别介绍了常见的软件加密技术和硬件加密技术,并阐述了具体过程,对于掌握该技术很有帮助。
关键词:软件加密;硬件加密;软件防护;破解
一、引言
为了保护自己的知识产权, 各类商用软件都有自己的一套防盗版体系。但是,从原理上来说,任何加密手段都会被破解,因为任何一个加密的方法,真正核心的就是一小段语句而已,找到这句话然后重新定位语句,让它不经过这段代码,不管多强的算法都会被破解。
软件的加密方法可分为软加密和硬加密两种,软加密分为时间限制保护、注册文件、保护文件加壳保护以及全程联网保护。而硬加密主要是加密狗技术和光盘保护技术。本文将分析这几种加密方法和相应的破解方法并提出相应的改进措施。
二、软加密技术
2.1 时间限制保护技术
破解时间限制软件要从原理入手。我们需要找出软件从注册表中调用隐蔽的标志和记录位置,将时间标志修改,就可以破解了。我们从注册表中找到软件的时间标志要借助一款名为RegSnap的软件,在软件运行前后对注册表各作一次快照,通过对比两次注册表快照,来判断出软件的时间标志或者使用次数的记录是哪一个键值,更改这个标志和记录,就可以实现破解软件使用时间的限制了。
第一步:建立注册表快照。运行RepSnap后,扫描并保存注册表内容。扫描完毕后,将当前快照保存。运行你要破解的那个软件,当软件提示的剩余时间发生变化后,再用上面同样的方法,再保存一次注册表快照。
第二步:比较注册表快照。这一步很重要,现在需要对比两个注册表快照,找出注册表中的不同之处,使用 RepSnap的快照比较功能,RepSnap会自动将最近两次保存的快照进行比较。完成后显示详细报告信息。
第三步:找到次数记录。从报告中找出注册表中有键值发生了变化的地方,然后打开系统中的注册表编辑器,确定时间记录位置。
第四步:修改注册表。尝试修改注册表键值“KEYFSTIMES”,再重启就可以了。
2.2 序列号保护技术
这种注册过程一般是把用户的私人信息(如mac地址、硬盘序列号等)告诉给软件公司,软件公司会根据用户的信息利用预先写好的注册码程序计算出一个序列号,用户使用序列号按照必要的步骤在软件中输入注册信息和序列号,在经过软件对其合法性验证通过后,软件就会取消本身的各种限制,而成为正式版本。
初看这种保护方法很优秀,但是至少有2种方法可以破解:
一、更改本机的mac地址以及硬盘序列号。如果有一个用户A付费得到了许可,那么我们只需要把mac地址和硬盘序列号改成和A一样的就行了。而网上已经有很多此类软件,修改十分方便。
二、我们就可以利用处理字符串的消息断点, 如WM_GETTEXT和WM_COMMAND等, 拦截住软件算法对字符串进行的处理, 从而让我们有机会一步一步用如Ollydbg跟踪调试,找到判断点,然后改变汇编语句,将JE等条件跳转改为JMP无条件跳转。则无论使用什么系列号都可通过。
2.3 加壳保护技术
软件的外面的壳就是在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序,加壳是一种对EXE格式的数据压缩及加密保护,可以将EXE档案压缩成自我解压档案,并能隐藏解压进程。
现在的壳分压缩壳, 加密壳, 伪装壳, 多重壳。压缩壳的目的是使文件由大小变小,加密壳的目的是用各种手段保护软件壳不被脱掉、跟踪,伪装壳其实也还是一种加密壳,只不过它先是伪装成一些开发工具的头部,如vc,使得侦壳工具无法准确地侦察出它加壳的种类,多重壳是采用多种壳加密技术,不光加一层壳,加多重不一样的壳达到保护的目的。
三、硬加密技术
3.1 光盘保护技术
采用光盘形式发行的游戏在使用时需要检查光盘是否插在光驱中,如果没有,则拒绝运行。这是为了防止用户将游戏的一份正版拷贝安装到多台机器上并同时使用。程序在启动时判断光驱中的光盘上是否存在特定的文件,如果不存在则认为用户没有正版光盘,拒绝运行。在程序运行的过程当中一般不再检查光盘的存在与否。一般使用的加密技术是StarForce。
不过这种加密方法却因为虚拟光驱软件的强大而显得非常脆弱,我们只需要StarFuck、Daemon Tools两款软件。首先使用任意一款制作光盘镜像的工具把光盘做成ISO镜像,然后运行StarFuck这款软件,在Daemon Tools程序目录下设置好Daemon Tools所在位置。
接着选择加密算法的类型,一般是 “StarForce 3.4.63.2”,然后点击“屏蔽光驱”按钮。
最后使用Daemon tools将镜像文件加载到虚拟光驱中。
经过上面几步后,就可以绕过保护程序执行软件了。
3.2 加密狗保护技术
加密狗是一个安装在并口、串口、U盘接口等接口上的硬件设备,并带有一套驱动软件和工具包。当被加密狗保护的软件运行时,程序会搜索是否有安插在计算机上的硬件,并对其发出一系列操作指令,正确的响应才能使软件继续运行,从而达到保护软件,防止盗版的目的。
破解加密狗的主要思路是使用模拟器技术,我们使用自己的工具(如VC)重新编写构造一个和加密狗API一样的DLL动态库文件,里面也包含Read、Write等全部API中包含的函数,使用的参量及返回值和原来的函数一样,所有函数返回零。然后对Query、Read函数进行处理,返回应用软件需要的数值即可。
这个新的DLL文件编写成功后,直接替换掉原来的DLL文件,这时候再运行应用软件,软件访问加密狗的操作就全部会被拦截,拦截程序永远会返回正确的数据给软件,从而实现了模拟加密狗的运行。
四、结束语
目前计算机安全和网络安全问题,归根到底是软件的安全问题。因此软件保护技术一直是一个研究热点,它是以加密技术为基础的,但是对于任何加密方法,必然有破解方法,不论采用何种保护方式,可执行程序都可以被工具调试跟踪,找到判断代码处,通过修改可执行文件,跳过此段代码,达到破解的目的。这使得对于软件版权的保护仅仅靠程序逻辑是不行的,必然要靠社会和法律来辅助保护。
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/241553.html