棋牌的逆向工程

前言

之前有些朋友都找我做棋牌的逆向工程 一来就说什么透视啥的 我只能让你早点洗洗睡 不过话说回来 棋牌逆向的思路也是有很多的

例如撞库 溢出 透视吧也能实现不过难度可想而知 透视有些棋牌是可以 不过只能看手里自己的牌例如炸金花 没开牌的时候内存中可能会存放当前的牌的信息

今天我们来搞一波撞库 怎么撞 这里我们就拿登陆别人的账号为例吧

​用到的工具

fiddler、CE、雷电模拟器、垃圾压缩管理器、某棋牌app

思路

首先给你们讲点思路怎么样找可以撞库的棋牌 你去下载一个 然后点击忘记密码 发送的验证码为4位数 然后验证码的时间是长时间有效的 恭喜你可以搞!!

这里我已经找好了

抓包分析

首先抓包分析协议部分 这里我们拿登录抓包为例子 其实目的就是分析他的协议算法 通过穷举的方式批量穷举他的验证码 4位数最多也就是9999个 基本几分钟就能爆破出来是不是想想很刺激 不过别开心得太早 app得逆向跟手游得逆向可不大一样

凡是接触过手游逆向的朋友来说都明白手游的引擎以及如何提取手游代码的逻辑层(这里我不多讲自行百度 闲话说这么多开始干)

棋牌的逆向工程_第1张图片

随便输入一个账号密码配合fiddler抓包

棋牌的逆向工程_第2张图片

我们可以看到这个加密还算简单 就一个sign字段 我们解码之后发现还有个pwd字段这里也就是我们输入的密码 md5一下

棋牌的逆向工程_第3张图片

分析游戏引擎种类

那么我们开始逆向 我们前面也说过手游跟app不大一样 这个时候你就别傻乎乎的去逆向他的java代码 没意义你知道吧

我们得分析他采用得什么引擎

棋牌的逆向工程_第4张图片

Cocos2djs.so的 遇到这种的没经验的我劝你直接放弃吧 哈哈哈 这种so逆向起来怎么说勒很费头发

棋牌的逆向工程_第5张图片

我们可以看到assets目录下的src文件 这里都是这个游戏的主要核心的代码逻辑位置

.jsc文件

棋牌的逆向工程_第6张图片

随便打开一个jsc文件都是加密的 今天我们不讲jsc的逆向 对这块儿感兴趣的可以关注乌云科技团队 后面我们慢慢讲

今天我们讲一个思路 之前在论坛里面看到一个朋友讲过通过内存来逆向这种sign字段 (不过有一个前提 就是每次抓包输入的账号密码不变的前提下 sign每次都变 因为里面加入了time时间搓)

没看过的没关系我带着你们操作逆向一下就明白了

内存定位

首先打开CE工具选中LoBoxHeadless.exe

棋牌的逆向工程_第7张图片

然后我们抓包看到我们里面有个字段time字段就是时间戳我们就可以进行搜索

棋牌的逆向工程_第8张图片

棋牌的逆向工程_第9张图片

冷静分析

棋牌的逆向工程_第10张图片


出来28个结果 一个一个点开看

棋牌的逆向工程_第11张图片

经过我们可以大概猜测在内存中这个就说他md5前的内容 我们可以负责出来经行md5加密出来跟我们的抓包的内容是否一样就明白了

棋牌的逆向工程_第12张图片

棋牌的逆向工程_第13张图片

# 最后

解密出来后然后就可以去抓一个修改密码的包(这里的加密都是一样的) 然后写一个协议软件自动爆破了 这里你们就下去自己实验吧 有问题或者想一起交流在下面留言即可

你可能感兴趣的:(逆向开发,算法,java)