日期:2014-05-17  浏览次数:21219 次

获取外部软件注册码并伪造

怎么获取一个外部程序的注册码
或者伪造给他
通过修改内存的方式


能说下思路么?


好心的大爷们。。。
帮帮忙。。。

------解决方案--------------------
网络抓包?您没有考虑带签名验证的情况
------解决方案--------------------
不同的软件验证的机制是不同的。

以微软Windows、Office为例,每个产品配发一个序列号,用户输入序列号后将序列号和计算机独有的特征数据告诉微软(电话激活或者联网激活),微软根据序列号、硬件特征判断用户是否在多余指定数量的电脑上安装,然后返回激活码,客户端软件根据激活码和之前取得的序列号、硬件特征完成激活,解除限制。客户端每次启动都会比较硬件特征,如果发现硬件改变,就会取消激活。

你可以看出,破解这样的系统无非这么几个简单的办法,一个是伪造序列号,一个是伪造计算机特征,并且以某台已经激活的计算机的硬件特征为参照,一个是伪造激活码的生成,也就是不通过微软能够根据序列号、硬件特征算出激活码,当然还有最后一条,那就是修改程序的逻辑,将判断验证不通过的逻辑加以修改,欺骗系统已经验证通过。

伪造序列号和激活码的难度是它们都使用了非对称的算法,也就是你即便有能力读懂客户端全部验证算法,你也不能还原序列号生成和激活码生成的算法,这些算法(私钥)只有微软知道。但是序列号生成的算法(事实上是私钥,算法本身算半公开了吧)因为算法规模的问题,可以被穷举出来,这就是早期xp算号机的思路。伪造激活算法目前还没有人实现,要实现只有两条,以后计算机足够快,也穷举出来,或者在数学上找到突破口。对于序列号和激活码,微软通过联网验证和在服务器端记录的形式可以加以防范。

伪造计算机特征比较困难,因为计算机固件只有生产厂商掌握它的规律,并且计算机特征涉及多个部件,而且事关计算机的正常工作,没有人会牺牲计算机的可靠性去修改。再说,A软件需要这个特征,B软件需要那个特征,同时安装它们,修改了这头顾不上那头。但是有个特例,那就是虚拟机。虚拟机的硬件特征完全是软件配置的。我就在虚拟机中克隆系统用于测试环境。
------解决方案--------------------
方法很多啊。 
你得说是那个方面的。