云安网络验证的管理员授权测试网络验证的强度,结果三下五除二就被跑开了,用到的关键思路就是截取验证软件的数据包,修改为正常用户登录时的数据包,即可绕过验证界面。
目前该验证的技术人员已经将部分关键数据的加密放在了云端,只要拿不到key
基本上无法正常破解的。
顺便,我计划了一个项目,目前正在制作当中,完成后将更加有效方便地利于逆向爱好者对于某些数据的截取。
网劫补丁
大多数的网络验证都会有自己专用的验证API,例如:
http(s)://xxxx/login
并且附加key
、username
和password
等参数请求验证,使用UDP
的验证类型比较少见。
这些验证会请求API,并且通过返回的状态码或者其他代码数据来判断这个用户是否登录成功,而这个过程就容易被利用破解。如果你拥有用户正常登陆时的数据包,那么你完全可以本地伪造登录数据,绕过验证,不排除验证有随机二次的可能,不过对于大多数而言,这点足以成为“致命伤”。
网络数据
而验证登录时所用到的函数InternetReadFile
更是一个验证的突破口,只要是利用网页API
作为登录验证的软件,皆可在该函数上Break Point
(断点),动态分析调试至验证的主体,继而破解验证。
那么我们该如何减少这种程序漏洞带来的危害呢?不使用这种类型的函数,可以有效地减小破解的风险。毕竟办法总比困难多,如果你的技术到家,你可以使用内核编程,或者自写InternetReadFile
这个函数,有效程度可以类比当年的大灰狼TR.downloader
下载者。
本次验证使用了来自ND的一个例子,不涉及其他问题。
首先我们在验证后台注册一个账号,并且充值账户金额,使得能够正常登入软件。本地拦截到的登录数据:
data数据段
获取到这个数据包后,就可以对该验证进行拦截修改,并且能够直接绕过验证。我们将远程URL响应为本地响应,并且为该数据文件,接着来看看验证对该数据的相应效果:
验证成功
不过这个验证的作者还在后续的进入阶段置入了随机种子,解密成功后我们才能进入软件界面。