关于破解网络验证的一点心得

来源:互联网 发布:科比02年总决赛数据 编辑:程序博客网 时间:2024/05/07 13:36

今天收到一看雪论坛的网友,发来的EMAIL,问起关于网络验证如何破解的问题,

本人正好前段时间破解了一个有网络验证的外挂,并且成功实现了对对方注册加密算法的破解,自己改写了

服务器端的程序,用一句话说,就是由对方产生注册码,实现验证,变成了我自己根据算法产生注册码,由我的

服务器来实现验证.

现在把其中的一些心得总结描述一下,给遇到同样问题的网友,以作参考,尽可能的少走一点弯路.

现在,网络验证(外挂),一般POST的数据中,有几个参数是固定的,而仅仅只有一个参数每次会是随机生成的,如果你遇到的

是这种情况,那么恭喜你,你可以好好看一下我的说明了,通过抓包,可以知道,因为每次这个参数是随机的,所以

服务器返回的数据也就是随机的,但如果你把这个参数给固定了,那么服务器返回的数据也就每次是固定的了,你可以这么试一次,把POST的数据,这个变值,固定下来POST出去,然后抓包分析看是不是如我所说的,如果是的话,那么我可以肯定的告诉你,这个变来变去的随机数就是KEY,也就是用来加密,解密用的密钥,对方验证的原理就是,每次运行时,调用一函数,产生一段随机的KEY,长度固定,然后用这个KEY做为密钥发送给服务器,当服务器验证你的网卡地址,硬盘等一些其它的参数,包括注册码在内,验证出结果后,就会用你POST出去的KEY,做为密钥,把结果值进行加密,然后在把加密后的结果输出给客户端,客户端程序接受到这个数据后,就会调用解密函数用POST出去的KEY再实现解密操作,把这个数据包解密还原出明文,再根据明文进行不同操作,如,成功/注册码不对/过期/已绑定等等,所以,当你知道这个原理后,比较简单的一种方法就是,再解密出明文的时候,再后面的检测中进行修改,把后面的标志位改成全是成功,即可过关。当然如果你想写注册码生成器,自己产生注册码就需要把程序的加密,解密的那段算法好好研究一下,要么直接用ASM来写,要么用VC+ASM内联的方式来写,我到是建议采用直接用ASM的方式来写,可能更简单更容易一点,至少你只要知道了此函数,至于到底是怎么来完成加密的,你可以慢慢在看,只要注意传入的参数,堆栈平衡就很容易调试出结果了。

原创粉丝点击