关于“坤坤云网络验证”(乾坤云)补码的一种方式
前言:学习软件逆向分析技术,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。(这才是我们学习逆向的初衷),本篇文章内容仅限于学习交流--同时也是给网络验证作者展示了一个漏洞亦或者说是一个有待加强的地方!其实作者已经写的很强了!!{:5_121:}0x1:前期分析工作
知己知彼百战不殆-我们想要弄一个东西的时候肯定是要弄清楚它的流程是什么样的,直接贴上坤坤云客户端最核心的地方 今天我们不讲封包-我们来讲讲补码
以上三张图大概就是坤坤云的客户端源码 核心子程序了,第一张图是登陆部分第二张图试用功能第三张图 是公告部分
判断开始 (取数组成员数 (分割取回的数据) = 5 且 分割取回的数据 = “登录成功”)
写配置项 (取运行目录 () + “/配置.ini”, “配置”, “km”, 编辑框帐号.内容)
登录成功 = 真
全局_封包返回时间 = 分割取回的数据
全局_远程数据 = 分割取回的数据
全局_用户到期时间或者点数积分 = 分割取回的数据
全局_用户token = 分割取回的数据
全局_北京时间 = 时间_取北京时间 ()
上述文本代码可以看见 明显是登陆的组包数据 一共5个数组 也就是5条返回值根据 数组赋值的信息 大概组包如下:
“登录成功” + “|||” + 时间到文本 (取现行时间 (), ) + “|||” + “我是远程数据你知道吗?” + “|||” + “500” + “|||” + “AABBCCDDEEFFDDDEEESSSAAWWDASDW”
为什么组包里面第二个 数据是时间到文本 (取现行时间 (), )呢?因为是这条 全局_封包返回时间 = 分割取回的数据 最后封包返回时间会跟北京时间(联网)做一个对比的 那么第三条就是远程数据 没啥好说的第四条坤坤云有两个返回参数 要么是用户点数 要么是用户到期时间 (我就默认写了500点 ) 很明显我没有正版卡 自然不知道它时间的格式 只能凭借着经验拼接了一下第五条也就是全局_用户token我也不知道他的长度和数据类型 比如全数字还是全英文 具体多长 我也不知道 反正我只知道不能让他是空的就可以了啊哈哈!!
第二张图的组包我就不列举了,直接看看第三张图的公告吧!因为也是从公告开始入手的!
.判断 (取数组成员数 (分割取回的数据) = 5 且 分割取回的数据 = “公告”)
透明标签公告.标题 = 分割取回的数据
服务器版本 = 分割取回的数据
更新方式 = 分割取回的数据
更新地址 = 分割取回的数据
.如果真 (软件版本 ≠ 服务器版本)
时钟自动更新.时钟周期 = 1
大概组包如下:“公告” + “|||” + “我是公共内容我已经拦截补码啦你知道吗?” + “|||” + “2.2” + “|||” + “强制更新” + “|||” + “www.baidu.com” 也是5条参数 分隔符为“|||”
**** Hidden Message *****
很细致,加入精华!新人发帖竟然质量这么高,赞~ 回复看看 看看操作 {:5_193:}棒棒哒 看看操作
下次讲下封包 马老师 评分送上,太强了 看看学习一下 学习看下资料