網路資源、書韱、教學、學習、

星期六, 3月 10, 2012

网络验证破解方法

通过IRIS监听验证过程,发现他的验证过程基于http协议,服务器端为asp,可以用比较简单的方法实现模拟验证服务器
他的详细验证过程如下
软件启动
请求http://www.example.com/getver.asp
返回字符串 3.45 (比较软件本身版本号,=3.45则不提示升级)
获取硬盘物理序号并按照一定的规则转换成硬件码 (结果为212487602000,我的硬盘生成的是这个硬件码)
注册表读取用户名和注册码(已注册用户的用户名和注册码被写入注册表)
从注册表未能获取用户信息和注册码,提示注册,已注册则跳过下一步。
输入用户名netx注册码441363-112460-365001-427305,点击注册
软件提交数据到服务器验证
请求http://www.example.com/gen.asp?h ... 12460-365001-427305
合法验证,返回程序运行许可字串示例:08f08f08f08f08f09f08f09f09f07f02e02e02e02e02e.47e13f09f14e13e13e13e13e13e13e13e13e13e13e12e08f08f08f08f08f57f17e13e26f23f23f23f23f23f23f24f24f24f23f20f22e
该字串随软件运行时间,用户名变化而变化
软件启动完成,各个功能正常使用。

不合法返回:error!
软件各个功能不能正常使用。

已有合法注册码一组,现需要多台机器使用。破解方法如下:
修改系统system32\drivers\etc\目录下的hosts文件
增加解析记录
127.0.0.1 localhost
10.9.163.1 www.example.com #将验证服务器域名解析到本部门web服务器10.9.163.1 或者如下
#127.0.0.1 www.example.com#将验证服务器域名解析到本机

在本机IIS根目录或者web服务器根目录下建立getver.asp,gen.asp

getver.asp内容为3.45

gen.asp内容为
<% dim Http set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET","http://xxx.xxx.xxx.XXX/gen.asp?h=212487602000&amp;amp;amp;u=netx&amp;amp;amp;c=441363-112460-365001-427305",false 'xxx.xxx.xxx.XXX为www.example.com的真实IP,因为该域名已经被转向,所以此处需要使用真实IP Http.send() Response.write Http.responseText; set http=nothing %>

至此,运行软件,软件已经被欺骗到你指定的服务器进行验证,不论你的硬件id,和用户,注册码如何,都能通过自己的验证服务器获得合法的运行许可。

难度大一些的网络严整基本的本地验证,获取的许可字串也没有经过严格本地的校验,直接应用于软件各个功能模块的许可判断。 ===============================================================================各位大侠:
发现现在越来越多的软件采用了网络验证的办法,通常的办法是:启动程序后,会把你的机器号和IP地址自动发到指定服务器验证,从网上搜集的办法大致是如下破解思路:
1、截流数据包,然后把软件的发送地址欺骗到本机,让软件以为通过验证。
2、直接强制跳过验证语句。
由于以上办法用的多了,现在开始有人设计连环验证和多重数据加密验证,上面的第一种办法就不灵了。只能采用第二种办法强制跳过验证。问题是加了干扰和连环验证后,强制跳要求很高的破解功力,何况作者再安插一些逻辑炸弹,勉强强制跳出来,也会损失很多功能。在此提出这个问题,希望大侠们讲讲有何心得。


文章來自 http://www.zgmap.com/wangluoyanzheng-pojie/

沒有留言:

張貼留言