目前网上有很多Windows 8的激活工具和方法,有电话激活、KMS激活以及所谓的永久激活工具,五花八门。我目前使用的180天有效期的KMS激活,主要是因为安全,不会涉及到修改系统文件。我认为这是目前最方便最可靠的方式,可以看看我写的这篇文章:Windows 8 KMS超简单傻瓜式激活方法。有点偏离话题了,本文讨论的是伪激活问题。什么是伪激活?原理是什么?对系统有损害吗?怎么知道我的Windows系统是不是伪激活?带着这些疑问,一步步来揭开谜团。
一个伪激活的案例分析
前两天出现了一个号称能通过正版验证的Win8激活工具,该工具只有2.37MB大小,号称永久激活,而且可以通过slmgr.vbs验证,并提示永久激活。经过本人亲测,该软件属于典型的伪激活,该软件所谓的激活机理是替换系统文件来开启被禁用的功能,然后修改slmgr.vbs让系统强制通过验证,,实就是让没有验证的系统也写上windows已激活的标志而已,该软件如果通过upgrade或者其他任何方式与微软链接都会立即被查出!将该软件解包后会出现另一个EXE文件,再次解包后才会出现源文件,其实就是一个替换的批处理,除了替换一些dll外还会修改slmgr.vbs.。下面是我解析出来的该软件替换后的slmgr.vbs与正版系统slmgr.vbs之间的不同,该软件一共对slmgr.vbs进行了三处删改:
1、移除了1026行处的内容:
LineOut GetResource(“L_MsgLicenseStatusExtendedGrace_1″)
2、移除了1493行到1511行的内容:
ElseIf ls = 5 Then
LineOut GetResource("L_MsgLicenseStatusNotification_1")
strErr = CStr(Hex(objProduct.LicenseStatusReason))
if (objProduct.LicenseStatusReason = HR_SL_E_NOT_GENUINE) Then
strOutput = Replace(GetResource("L_MsgNotificationErrorReasonNonGenuine"), "%ERRCODE%", strErr)
ElseIf (objProduct.LicenseStatusReason = HR_SL_E_GRACE_TIME_EXPIRED) Then
strOutput = Replace(GetResource("L_MsgNotificationErrorReasonExpiration"), "%ERRCODE%", strErr)
Else
strOutput = Replace(GetResource("L_MsgNotificationErrorReasonOther"), "%ERRCODE%", strErr)
End If
LineOut strOutput
ElseIf ls = 6 Then
LineOut GetResource("L_MsgLicenseStatusExtendedGrace_1")
gpMin = objProduct.GracePeriodRemaining
gpDay = GetDaysFromMins(gpMin)
strOutput = Replace(GetResource("L_MsgLicenseStatusTimeRemaining"), "%MINUTE%", gpMin)
strOutput = Replace(strOutput, "%DAY%", gpDay)
LineOut strOutput |