学了几天破解,也成功破解了几个小软件,收成很多
在这儿想共享一下自个的一些小经验,希望能帮到一些菜鸟,当然了,我也是刚刚入门破解的一个萌新,不免有一些过失,路过这儿的大牛们假如发现了请指出~
前语~
期待诸位大牛们指出过错,可是请不要喷哦~帖子是写给和我相同的萌新看的,大牛们笑笑即可
虽说是关于萌新写的,可是也最佳有一点小根底的哦~
有关网络验证的一些心得
网络验证,望文生义,即是把你的用户名、注册码、机器码等信息拿到网络上的一台效劳器上去进行对比,然后效劳器回来你一个信息通知你是不是验证成功。
网络验证最常见的有两种状况,一种是用你的用户名和密码来获取一些软件有必要的数据或许运转信息。
比方说,软件自身的功用即是不全的,你输入了注册码以后,它就会给你下载一个完整版的软件
这就好比你还没有登录吾爱的论坛,没有权限拜访一些带有附加权限的帖子相同——你没有注册码,那些正版数据是无法搞到的
关于这一种状况,除非效劳器存在
反汇编缝隙可以让你拿掉效劳器,不然有必要要有一个正版授权来提取这些缺失的数据
第二种状况,那即是软件自身功用是全的,只不过验证的那个有些跑到效劳器上去进行了罢了
已然软件的功用是全的,那么通常的爆炸都能搞定的。因为验证注册码的那有些跑到效劳器上去验证了,所以想搞到算法是不太实际的。
有时分底子就不存在啥所谓的算法,当软件采购以后,效劳器就会主动生成一个全新且随机的license给你
所以,关于网络验证来说,绕过是要害,想力求获得算法来制造注册机根本上是不可能的,就算制造出来了注册机作者也可以很轻松的封杀掉。
而这儿首要即是说一些有关网络验证“绕过”的心得。
很多人说,网络验证本来和本地验证没啥区别,改改跳转相同爆炸,何须写篇文章出来?那么假如遇到强壳该怎么办呢?
实际上,强壳不代表强验证,加壳是个傻瓜式的进程,并不代表编程者的编程才干提高了。假如验证很水的话,有概率不批改程序直接拿下这个验证。
咱们拿到一个网络验证的软件,不一定有必要要往od里边扔。在破解网络验证的时分,抓包对错常重要的。为啥这么说呢?
绝大多数软件都是衔接到了一个域名上面去,直接衔接IP的少之又少。假如咱们抓包发现这个软件衔接了一个域名,那么这对咱们对错常有利的。
而网络验证通常都是运用http效劳或许是长途衔接一个数据库。关于第三种自写协议来验证的,超出了咱们现在能研讨的规模,咱们能做的,只能爆炸。
咱们这儿分两类进行评论。这儿的方法对比广,依据状况来用,不止局限于强壳或许没加壳的状况。
首先是http,即长途拜访一个页面,依据页面的内容来判别的状况。
http是最简略的,遇见http不代表一定要扔od了。你可以先抓包,看看这个东西究竟拜访了啥页面。
这儿留意善于运用baidu,相似漂荡、cc这么的网络验证体系对错常简略辨认的。像我相同的萌新们,榜首眼可能会看不出究竟是一个啥网络验证体系。
(这儿只评论过登入,不评论存在别的必要数据的状况,不然请回到榜首大类)
可是假如你抓包了,你就应当能看到相似的话:
GET http://www.xxx.com/user_verify.php?username=这儿是你输入的用户名&sn=注册码
那么,你彻底可以把user_verify.php这个文件名拿到baidu上去查找嘛~(这儿这个user_verify.php是我随意脑补的,实际上不存在)
通常来说,这么就能很简略辨认出这个体系究竟是啥。啥?啥都没搜到?不怕,咱们持续往下看
当你信息收集结束了……
知道了根本的协议,咱们就可以分类来搞定它了。这儿先看看关于http的一些对策。
1.通过抓包研讨,已经知道了这是个啥体系,比方漂荡。那么直接山寨之,可以抓包或许上od来拿到必要的衔接信息,然后用现成的软件一键山寨。
2.抓包,各种查找以后不清楚这是个啥体系,可是可以猜到假如注册码准确可以回来啥——那么批改掉hosts,本地搭建效劳器,手动山寨之。
3.抓包,不清楚这是个啥体系,也猜不到这是啥,可是发现这个软件是.net写的——反编译,直接改代码,搞定。
4.抓包,发现是https——可以用https代{过}{滤}理来持续抓包,可是更主张脱壳od。
5.抓包,理解该怎么山寨,可是批改了hosts以后触发了暗桩——od清理了暗桩然后爆炸,或许是别在电脑上做手脚,路由器咱们都有吧,直接在路由器的域名解析上做手脚,相当于硬件山寨!
6.彻底不知道这是个啥体系,或许这个体系是作者自个写的,绕了一大圈都没发现啥有价值的东西。那么,你能做的就只有上od了。直接爆炸。
7.企图od然后遇到vmp这类的壳?检查内存,揪出网络验证地址然后山寨,这招根本上是通杀的
别的,学过浸透的应当知道,这种网络验证是根据web的,假如效劳器程序自身有缝隙,拿下效劳器不商议。这么还有概率还能成功破解榜首大类里边的那些特殊数据。
http说完了,咱们再来谈谈数据库。
相比起http来说,长途衔接数据库的做法破解起来会更加简略。这要从数据库的作业原理来说起。
假如想要长途衔接一个mysql或许sqlserver这么的数据库,那么软件一定内置了一个数据库地址和账号。这和http的机理相仿——你有必要登录进数据库才干操作数据嘛~
可是这儿你要留意,我用了一个“操作”词语,而不是“读取”。为啥呢?
和http比起来,数据库在没有成心约束的状况下,是可以双向的。假如这个软件内置的数据库账号权限满足强大,你理论上是可以在数据库里边履行任意指令的。比方查询、删去、增加、更新等等,都可以做到。而正因为数据库的方便性,开发起来对比简略,很多人喜爱用它来开发如注册呀、登入呀这么的东西。
所以,疑问来了——假如你无法批改软件,或许不想批改软件,那么最要害的即是怎么去找到这个数据库地址和账号。数据库衔接是加密的,通过抓包必定不行。可是抓包也是有必要的,能让你疾速辨认出这是不是是一个数据库类型的网络验证。
那么?咱们怎么办呢?仍是相同,分状况来。
首先是怎么判别这是一个数据库类型的网络验证:
1.抓包,发现程序拜访了一个端口号为1433(sqlserver)或许3306(mysql)的长途地址【之前的帖子这儿端口号书写过错,现已批改】,那么99%可判定为数据库。
2.抓包,发现程序拜访了一个很乱的端口号,传送的都是乱码——无妨把这个地址和端口号放到浏览器里看看能不能翻开——啥?打不开页面?那应当即是数据库了。
好了,假如你确定了这是数据库,那么……
1.脱壳,直接上od,爆炸
2.不脱壳,和破解漂荡的原理相同,检查内存,揪出数据库地址和衔接账号,直接用数据库管理软件(如navicat)登入数据库,然后想做啥你就可以做啥了(你可以把他的数据表全下载下来然后本地山寨,或许是增加个超级nb的账号,都可以)
3.脱壳,上c32asm或许是winhex,查找你抓取到的端口号,有概率直接拿下数据库账号(然后操作同第二条)
关于网络验证来说,中心思维即是这么了,能爆炸仍是爆炸,简略有用。
可是假如确实是不可以爆炸,那么无妨山寨一下,有时分山寨比爆炸还好用。
我榜首次发帖,如有过错,仍是请多多指教~不要喷我哦~
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课