论文部分内容阅读
在很多人眼里,杀毒软件是唯一值得购买的软件了,不过网络大虾们都知道,杀毒软件也有很多“免费”的途径。网络上流行着好多的“山寨”杀毒软件,能升级,能验证,用得还挺爽,不用花钱就用到了很多名牌产品,这其中的山寨作坊是什么样的呢?
暴力破解 攻破正版验证
众所周知,要使用正版软件,就要有序列号,通过正版验证。杀毒软件自然也是如此,于是序列号这一关,历来被研究的最多,最早出现的就是暴力破解了。暴力破解原理很简单,一般杀毒软件在安装过程中都有验证码校验这个步骤,算号器就是利用验证反馈这个功能来分辨号码是否正确。
深入内部 调整验证
现在流行的杀毒软件,大多是利用比较用户输入的注册码来分辨用户是否拥有安装授权,如果用户输入的用户名、验证码和算出来的注册码相等的话(也就是说用户输入的注册码正确了),那么软件就会提示注册成功,进行下一步操作,否则就会给注册出错的提示。话虽这么说,但这是如何实现的呢?
我们用ultraedit编辑器(32位文件编辑器)打开杀毒软件安装程序EXE文件来看一下杀毒软件是如何验证的。在ultraedit编辑器中我们可以看到如下字段:
00451239 CALL 00405E02(关键针,用来判断用户输入的注册码是否正确)
0045123D JZ 004572E6(此为关键跳转,如果用户输入的注册码正确,就跳向成功处,即004572E6处)
0045XXXX YYYYYYYYYY
XXXXXXXX YYYYYYYYYY
XXXXXXXX YYYYYYYYYY
XXXXXXXX 执行到此处,就提示用户验证失败
……提示用户注册码不正确等相关信息
……
004572E6……(验证通过处)
……提示用户注册成功等相关信息
我们来分析一下。当软件执行到00451239处的时候,会调用CALL位置的0045E02来进行注册码判断。此时,如果用户输入的注册码正确,那软件就会继续运行,执行004572E6处,到这里也就算是验证通过,杀毒软件可以正常安装使用了;如果用户输入的注册码不正确的话,那么软件就不会执行004572E6部分(也就是验证通过的代码段),这时就会执行“提示用户输入内容错误”的部分代码,从而终止软件安装。
读者朋友们看明白了吗?嘿嘿……没错,我们只要通过ultraedit编辑器把两种情况的执行代码调整一下就可以了,让注册码验证错误时也执行004572E6部分。这样的话,用户输入的注册码无论正确与否,都可以注册成功。然后将“杀毒软件安装程序.exe”另存一下,重新运行安装程序,在提示验证码的位置任意输入就可以进行安装了。
盗亦有道 屏蔽加截取
另外还有一种方法是对注册窗口做点手脚,找到杀毒软件弹出注册窗口的代码,在前面加一个跳转就起到了屏蔽注册窗口的作用。不过这种只适合于那种频繁弹出注册窗口但软件功能并没有限制的杀毒软件。在平时,我们还会遇到注册机这种东西,它是通过反汇编和调试器跟踪软件的执行代码,然后分析得出注册码验证部分的汇编代码,这样再进行逆向算法,达到注册的目的。而内存注册机就更简单了,在前面我们说过了,软件会在做注册认证的时候对比用户输入的注册码和正确的注册码,既然有对比,那么正确的注册码肯定也要先提取出来,它在哪?内存中肯定是有的,内存注册机就是通过监视软件的代码运行,然后在验证过程中,窃取内存调用的正确注册码来进行。
小知识
跳转:是一种在程序设计时的术语,就是执行完一段代码后执行另外的一句代码。
动态反汇编:反汇编有两种,静态反汇编和动态反汇编。动态反汇编是让程序运行起来,反向分析内存中的数据。静态反汇编是不让程序运行,反向分析程序的执行文件。
赋予神权 能升级就是一切
杀毒软件一般都会提供试用版,下载这些也就避免了安装时的麻烦,不过后续无法升级病毒库是个大问题,而破解的黑手也就伸向了这里。
不懂不要紧 想升级找保姆
升级保姆就是解决升级问题的,像保姆一样,不用你做任何事,自动给你升级。例如我们可以看到的瑞星升级保姆(见图1),下面来看看这类工具的猫腻。
小提示:
还有一种“卡巴斯基永不过期助手”的工具,它的主要原理是循环清除注册表临时卡巴key注册信息,虽然有效期只有30天!但可以无限循环!这样来达到长期免费使用卡巴的目的,只是每月必须重新注册一下。
我们先来分析一下,正版杀毒软件是如何升级的,例如瑞星,它会先调用SmartUp.exe检测最新版本号,下载CompsVer.inf,发送正版验证信息、接受验证结果,如果授权合法,则启动升级程序RavCopy.exe下载升级文件、最后由Setup.exe完成本地更新。而升级保姆这类软件就是在这个过程中跳过验证环节,也就是不启动SmartUp.exe,由升级保姆做处理,直接运行RavCopy.exe就顺利绕过了这个环节。
求人不如求己 自己搭建服务器
杀毒软件的病毒库升级都需要用正版的验证码进行验证后才允许升级,当杀毒软件进行安装后会将用户计算机操作系统的ID记录下来与验证码捆绑,也就导致了多用户无法共享同一个序列号进行升级,其实我们自己也可以构架一个代理服务器进行升级。我们以NOD32的升级服务器为例,具体如下:
第一步:下载一个病毒库升级服务器管理程序:NOD32病毒库升级服务器4.0版.rar,解压缩后可发现软件目录下有几个文件。其中Temp_Update为临时升级病毒库文件使用,V2、V3和V4文件夹 分别代表2.x版本、3.x 版本、4.x版本的病毒库文件,config.ini为代理服务器的补丁下载服务器地址、用户ID和密码配置文件。这里要注意的是,在IIS发布的时候在IIS中的MIME要添加.mod、.nup、.ver(见图2)。
第二步:用记事本打开config.ini,修改内容为:
[Update_Server]
Server_name=http://pub.nod32.dengkeyu.cn
User_Name=pubNod32
User_Pass=pubNod322009
V4=v4
V3=v3
V2=v2
完成修改后保存,再运行“NOD32病毒库升级服务器4.0.exe”,点击运行,代理服务器就开始运行了(见图3)。
第三步:打开我们本地的NOD32杀毒软件(本文以3.0为例),在杀毒软件的主页面中选择“设置→显示所有高级设置→更新→更新服务器→编辑”,在列表中输入
:http://127.0.0.1/v3--添加确定,完成后我们的杀毒软件就可以自动连接到代理服务器上进行自动升级了。
小编物语
其实小编们之前都或多或少地用过一些破解版的杀毒软件,带来的后果是刚学会一种工具或方法,结果一段时间后忽然就不管用了,但这也许会耽误好多事,就好比一个人横穿马路一万次都不会有事,但一旦出事,就是终结。杀毒软件对我们来说,最关键的就是在那一万次之前的情况下起到作用。暴力修改和各种途径的破解都对杀毒软件本身造成了影响,在之前还是无所谓的,近几年,很多病毒首先要做的就是关掉杀毒软件,而破解版杀毒软件有着更多的漏洞,更容易被病毒利用。目前,各种免费版和试用版都为我们提供了很好的选择,对比之下,一些破解版工具本身就携带有危险程序,对电脑造成另一种威胁。
暴力破解 攻破正版验证
众所周知,要使用正版软件,就要有序列号,通过正版验证。杀毒软件自然也是如此,于是序列号这一关,历来被研究的最多,最早出现的就是暴力破解了。暴力破解原理很简单,一般杀毒软件在安装过程中都有验证码校验这个步骤,算号器就是利用验证反馈这个功能来分辨号码是否正确。
深入内部 调整验证
现在流行的杀毒软件,大多是利用比较用户输入的注册码来分辨用户是否拥有安装授权,如果用户输入的用户名、验证码和算出来的注册码相等的话(也就是说用户输入的注册码正确了),那么软件就会提示注册成功,进行下一步操作,否则就会给注册出错的提示。话虽这么说,但这是如何实现的呢?
我们用ultraedit编辑器(32位文件编辑器)打开杀毒软件安装程序EXE文件来看一下杀毒软件是如何验证的。在ultraedit编辑器中我们可以看到如下字段:
00451239 CALL 00405E02(关键针,用来判断用户输入的注册码是否正确)
0045123D JZ 004572E6(此为关键跳转,如果用户输入的注册码正确,就跳向成功处,即004572E6处)
0045XXXX YYYYYYYYYY
XXXXXXXX YYYYYYYYYY
XXXXXXXX YYYYYYYYYY
XXXXXXXX 执行到此处,就提示用户验证失败
……提示用户注册码不正确等相关信息
……
004572E6……(验证通过处)
……提示用户注册成功等相关信息
我们来分析一下。当软件执行到00451239处的时候,会调用CALL位置的0045E02来进行注册码判断。此时,如果用户输入的注册码正确,那软件就会继续运行,执行004572E6处,到这里也就算是验证通过,杀毒软件可以正常安装使用了;如果用户输入的注册码不正确的话,那么软件就不会执行004572E6部分(也就是验证通过的代码段),这时就会执行“提示用户输入内容错误”的部分代码,从而终止软件安装。
读者朋友们看明白了吗?嘿嘿……没错,我们只要通过ultraedit编辑器把两种情况的执行代码调整一下就可以了,让注册码验证错误时也执行004572E6部分。这样的话,用户输入的注册码无论正确与否,都可以注册成功。然后将“杀毒软件安装程序.exe”另存一下,重新运行安装程序,在提示验证码的位置任意输入就可以进行安装了。
盗亦有道 屏蔽加截取
另外还有一种方法是对注册窗口做点手脚,找到杀毒软件弹出注册窗口的代码,在前面加一个跳转就起到了屏蔽注册窗口的作用。不过这种只适合于那种频繁弹出注册窗口但软件功能并没有限制的杀毒软件。在平时,我们还会遇到注册机这种东西,它是通过反汇编和调试器跟踪软件的执行代码,然后分析得出注册码验证部分的汇编代码,这样再进行逆向算法,达到注册的目的。而内存注册机就更简单了,在前面我们说过了,软件会在做注册认证的时候对比用户输入的注册码和正确的注册码,既然有对比,那么正确的注册码肯定也要先提取出来,它在哪?内存中肯定是有的,内存注册机就是通过监视软件的代码运行,然后在验证过程中,窃取内存调用的正确注册码来进行。
小知识
跳转:是一种在程序设计时的术语,就是执行完一段代码后执行另外的一句代码。
动态反汇编:反汇编有两种,静态反汇编和动态反汇编。动态反汇编是让程序运行起来,反向分析内存中的数据。静态反汇编是不让程序运行,反向分析程序的执行文件。
赋予神权 能升级就是一切
杀毒软件一般都会提供试用版,下载这些也就避免了安装时的麻烦,不过后续无法升级病毒库是个大问题,而破解的黑手也就伸向了这里。
不懂不要紧 想升级找保姆
升级保姆就是解决升级问题的,像保姆一样,不用你做任何事,自动给你升级。例如我们可以看到的瑞星升级保姆(见图1),下面来看看这类工具的猫腻。
小提示:
还有一种“卡巴斯基永不过期助手”的工具,它的主要原理是循环清除注册表临时卡巴key注册信息,虽然有效期只有30天!但可以无限循环!这样来达到长期免费使用卡巴的目的,只是每月必须重新注册一下。
我们先来分析一下,正版杀毒软件是如何升级的,例如瑞星,它会先调用SmartUp.exe检测最新版本号,下载CompsVer.inf,发送正版验证信息、接受验证结果,如果授权合法,则启动升级程序RavCopy.exe下载升级文件、最后由Setup.exe完成本地更新。而升级保姆这类软件就是在这个过程中跳过验证环节,也就是不启动SmartUp.exe,由升级保姆做处理,直接运行RavCopy.exe就顺利绕过了这个环节。
求人不如求己 自己搭建服务器
杀毒软件的病毒库升级都需要用正版的验证码进行验证后才允许升级,当杀毒软件进行安装后会将用户计算机操作系统的ID记录下来与验证码捆绑,也就导致了多用户无法共享同一个序列号进行升级,其实我们自己也可以构架一个代理服务器进行升级。我们以NOD32的升级服务器为例,具体如下:
第一步:下载一个病毒库升级服务器管理程序:NOD32病毒库升级服务器4.0版.rar,解压缩后可发现软件目录下有几个文件。其中Temp_Update为临时升级病毒库文件使用,V2、V3和V4文件夹 分别代表2.x版本、3.x 版本、4.x版本的病毒库文件,config.ini为代理服务器的补丁下载服务器地址、用户ID和密码配置文件。这里要注意的是,在IIS发布的时候在IIS中的MIME要添加.mod、.nup、.ver(见图2)。
第二步:用记事本打开config.ini,修改内容为:
[Update_Server]
Server_name=http://pub.nod32.dengkeyu.cn
User_Name=pubNod32
User_Pass=pubNod322009
V4=v4
V3=v3
V2=v2
完成修改后保存,再运行“NOD32病毒库升级服务器4.0.exe”,点击运行,代理服务器就开始运行了(见图3)。
第三步:打开我们本地的NOD32杀毒软件(本文以3.0为例),在杀毒软件的主页面中选择“设置→显示所有高级设置→更新→更新服务器→编辑”,在列表中输入
:http://127.0.0.1/v3--添加确定,完成后我们的杀毒软件就可以自动连接到代理服务器上进行自动升级了。
小编物语
其实小编们之前都或多或少地用过一些破解版的杀毒软件,带来的后果是刚学会一种工具或方法,结果一段时间后忽然就不管用了,但这也许会耽误好多事,就好比一个人横穿马路一万次都不会有事,但一旦出事,就是终结。杀毒软件对我们来说,最关键的就是在那一万次之前的情况下起到作用。暴力修改和各种途径的破解都对杀毒软件本身造成了影响,在之前还是无所谓的,近几年,很多病毒首先要做的就是关掉杀毒软件,而破解版杀毒软件有着更多的漏洞,更容易被病毒利用。目前,各种免费版和试用版都为我们提供了很好的选择,对比之下,一些破解版工具本身就携带有危险程序,对电脑造成另一种威胁。