浅析网络验证
网络验证主要分为两种架构 C/S B/S
C/S 代表作 挂茶馆(E盾) 顶级网络验证
B/S代表作 可可 飘零 只列举几个方便大家理解
总体来说,比较好玩的 就是B/S架构的参数明了,返回明了。甚至可入侵。。。C/S架构 只要作者不是逗逼 入侵可能性不大。 这两种模式 也说不上那个强度更高。 主要看作者水平。
数据模式分类 在我看来就两种 有动态 无动态
网络验证 相对于本地验证 除了管理方便之外,最大的优势就是动态数据。没有动态数据的网络验证,你只能说他是一个授权管理工具而不是一个防破工具。因为实在太好搞了。
动态的优势在于 你只需要发送参数。由服务器返回计算结果。当然,不是那种静态的数据 此处说的是动态的。
举例。 02015520 2522000 123456
先加减后aes 然后异或 好的验证永远不会拿这个数据本地再算一遍 而是 直接拿来用 比如计算坐标 任何数据在本地计算都有可能出现被逆向的可能。当然,你比较会V 那基本可以不用考虑这个问题。 对于客户来说,破解软件是软件给其创造的利益,破解者一样,费心 费力逆个算法 还要逆个VM 基本 呵呵。。 付出与回报成正比才能做。 算法难度定义了一个软件的破解难度。软件恶心程度定义了一个软件的被破解欲望
那么以下就是重点了。
拿到手 一个未知的验证 入手点在哪里。怎么去入手。(此处举例 是在 没有调用例子与网上成品的前提下)
第一步,先看封包 网络验证第一定律 逆向为辅,封包为王。(任何一款验证 只需要 逆出通信协议 注定稳如狗)
拿到封包后先看看是否 有动态数据 动态数据参考 时间戳 随机数(如 GetTickCount rand rands 这些)参数加密的此处不谈。有些自写验证 譬如一些软件 只判断是否登录了论坛 那么就可以直接返回登录成功的数据即可。
第二步,看算法。 网络验证第二定律 知己知彼 百战不殆 (通常网络验证 用到自写算法的很少 多半都是些网上已有的固定对称算法 知道用的什么算法多次测试即可)
算法查看工具 网上很多不列举。不知道的可以自己百度
第三部 ,逆向 (封包参数加密 算法却毫无头绪)
算法查看不是万能的 如异或 自写运算 都不能查 此处就需要自己去跟踪程序 这里说实话 我真的没啥可以指点的 实践出真知。玩多了 就明白了 经验积累。程序类型 难度分类的话 (delphi > VC > 易语言) 易语言在快速开发的同时牺牲了程序的多变性。VC 纯SDK写的 宝宝无能为力(VC看功底。我只能说我遇到的大部分) delphi 难点在于 这个调用协议 V完了 恶心成狗。。。。大部分市场验证关键部分 就是 固定随机数。返回固定封包。这一类 能干掉百分之70的验证。
第四步,补丁
如果,运气比较好 已经破解了 那么补丁分类呢 跳转类--这类不说了 我已经见不到了。。 push类---这类跟你们说的push窗口可不一样。 是类似于 固定随机数 固定 关键性返回数据这类 本地类 ---- 除了算法完全逆OK的 通常配合push类使用。 bug类---有些是程序自身的限制不过关 验证机制很完整 数据校验很严格 但是,功能不做处理 直接调用远程call 调用功能的。大部分就这几类。
没有破不掉的验证,对抗是双向的。也没什么验证都能破的人。主要 在于 逆向者是否可以花足够多的时间去研究 思路是否够爆炸。不论 本地还是网络验证 考验的是除了 你对逆向的经验 还有 对软件破解的思路。push 固定随机数 动态中专 远程调用功能 这些都是一个思路的问题,只要思路对。破解就是时间问题。我举得例子都是固话思路 常用的 不包括全部。
没有什么实际干货,主要讲解下 一个完整逆向的思路 我一直认为, 技术可以用时间去弥补。不用太在意 我什么都不知道。我汇编都不会。我不会编程。 学OD很快。工具会用了。那么剩下就是下一个 160个cm 自己日 日不明白 看网上别人怎么日 日完总结 为什么这么日 然后开日下一个。都日完 就好了。
.
能让女人高潮的不是长度。而是持久度、姿势和经验。扫地短但是快啊。
[AppleScript] 纯文本查看 复制代码
01
02
03
|
C / S又称Client / Server或客户 / 服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。 B / S是Brower / Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。 |
C/S 代表作 挂茶馆(E盾) 顶级网络验证
B/S代表作 可可 飘零 只列举几个方便大家理解
总体来说,比较好玩的 就是B/S架构的参数明了,返回明了。甚至可入侵。。。C/S架构 只要作者不是逗逼 入侵可能性不大。 这两种模式 也说不上那个强度更高。 主要看作者水平。
数据模式分类 在我看来就两种 有动态 无动态
网络验证 相对于本地验证 除了管理方便之外,最大的优势就是动态数据。没有动态数据的网络验证,你只能说他是一个授权管理工具而不是一个防破工具。因为实在太好搞了。
动态的优势在于 你只需要发送参数。由服务器返回计算结果。当然,不是那种静态的数据 此处说的是动态的。
举例。 02015520 2522000 123456
先加减后aes 然后异或 好的验证永远不会拿这个数据本地再算一遍 而是 直接拿来用 比如计算坐标 任何数据在本地计算都有可能出现被逆向的可能。当然,你比较会V 那基本可以不用考虑这个问题。 对于客户来说,破解软件是软件给其创造的利益,破解者一样,费心 费力逆个算法 还要逆个VM 基本 呵呵。。 付出与回报成正比才能做。 算法难度定义了一个软件的破解难度。软件恶心程度定义了一个软件的被破解欲望
那么以下就是重点了。
拿到手 一个未知的验证 入手点在哪里。怎么去入手。(此处举例 是在 没有调用例子与网上成品的前提下)
第一步,先看封包 网络验证第一定律 逆向为辅,封包为王。(任何一款验证 只需要 逆出通信协议 注定稳如狗)
拿到封包后先看看是否 有动态数据 动态数据参考 时间戳 随机数(如 GetTickCount rand rands 这些)参数加密的此处不谈。有些自写验证 譬如一些软件 只判断是否登录了论坛 那么就可以直接返回登录成功的数据即可。
第二步,看算法。 网络验证第二定律 知己知彼 百战不殆 (通常网络验证 用到自写算法的很少 多半都是些网上已有的固定对称算法 知道用的什么算法多次测试即可)
算法查看工具 网上很多不列举。不知道的可以自己百度
第三部 ,逆向 (封包参数加密 算法却毫无头绪)
算法查看不是万能的 如异或 自写运算 都不能查 此处就需要自己去跟踪程序 这里说实话 我真的没啥可以指点的 实践出真知。玩多了 就明白了 经验积累。程序类型 难度分类的话 (delphi > VC > 易语言) 易语言在快速开发的同时牺牲了程序的多变性。VC 纯SDK写的 宝宝无能为力(VC看功底。我只能说我遇到的大部分) delphi 难点在于 这个调用协议 V完了 恶心成狗。。。。大部分市场验证关键部分 就是 固定随机数。返回固定封包。这一类 能干掉百分之70的验证。
第四步,补丁
如果,运气比较好 已经破解了 那么补丁分类呢 跳转类--这类不说了 我已经见不到了。。 push类---这类跟你们说的push窗口可不一样。 是类似于 固定随机数 固定 关键性返回数据这类 本地类 ---- 除了算法完全逆OK的 通常配合push类使用。 bug类---有些是程序自身的限制不过关 验证机制很完整 数据校验很严格 但是,功能不做处理 直接调用远程call 调用功能的。大部分就这几类。
没有破不掉的验证,对抗是双向的。也没什么验证都能破的人。主要 在于 逆向者是否可以花足够多的时间去研究 思路是否够爆炸。不论 本地还是网络验证 考验的是除了 你对逆向的经验 还有 对软件破解的思路。push 固定随机数 动态中专 远程调用功能 这些都是一个思路的问题,只要思路对。破解就是时间问题。我举得例子都是固话思路 常用的 不包括全部。
没有什么实际干货,主要讲解下 一个完整逆向的思路 我一直认为, 技术可以用时间去弥补。不用太在意 我什么都不知道。我汇编都不会。我不会编程。 学OD很快。工具会用了。那么剩下就是下一个 160个cm 自己日 日不明白 看网上别人怎么日 日完总结 为什么这么日 然后开日下一个。都日完 就好了。
.
能让女人高潮的不是长度。而是持久度、姿势和经验。扫地短但是快啊。
-----转自零日安全论坛