网络在线手游棋牌 棋牌热点 用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇

开发软件的人都知道这个世界上没有破解不了的软件,只有值不值得破解的软件。

随着棋牌的发展,随之而来的手游逆向破解技术也越来越成熟,尤其是Andorid方面,各种破解文章比比皆是,相对而言,这方面关于手游的逆向分析网络基础知识文章比较少,

通过简单数据流程劫持的模型给大家剖析一般逆向的游戏破解模型,从理论到实践,再到逆向,希望对这方面知识欠缺的朋友能得到一点点的帮助。

客户端-服务器模型

每个网络应用都是基于客户端-服务器模型的。采用这个模型,一个应用是由一个服务器进程和一个或者多个客户端进程组成。就比如,一个Web服务器管理者一组磁盘文件,他会代表客户端进行检索和执行,相应的FTP也是如此。

客户端-服务器模型中的基本操作是事务(transaction)。一个客户端-服务器事务由以下四步组成。

(1) 当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务。例如,当Web浏览器需要一个文件时,他就发送一个请求给Web服务器。

(2) 服务器收到请求以后,并以适当的方式进行操作。例如,当Web服务器收到请求以后,他就读取一个文件。

(3) 服务器给客户端发送一个响应,并等待下一个请求。例如。Web服务器将文件发送回客户端。

(4) 客户端收到相应并处理它。例如,当Web浏览器收到来自服务器的文件,就在屏幕上显示它。

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图

需要注意的是,客户端和服务器是进程,而不是通常提到的机器或者主机。一台主机可以同时运行许多不同的客户端和服务器,而且一个客户端和服务器的事务可以在同一台或者不同的主机上。

网络部分

了解完客户端-服务器我觉得有必要再了解一下网络部分,这部分只是个简单的说明,可以说是扫盲了,来吧大家跟着我继续往下看。

对主机来说网络只是一种I/O设备,在物理上而言,网络是一个按照地理远近组成的层次系统。最低层是LAN,也就是局域网,在层次更高级别中,多个不兼容的局域网可以通过叫做路由器的东西连接起来,组成一个internet。每台路由器对于它算连接到的每个网络都有一个端口。路由器也能连接告诉点到点连接,这就是WAN,也就是广域网。

这些东西其实就在我们身边,下图是TP-link的接口:

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图1用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图2

在这里我们可以很清晰的看到LAN口有多个,而WAN口只有一个。

例如,一个客户端运行在主机A上,主机A与LAN1相连,它发送一串数据到运行在主机B上的服务器端,主机B连接在LAN2上。就这么一个简单的过程,他涉及到了8个步骤:

(1) 主机A上的客户端进行一个系统调用,从客户端的虚拟地址空间复制数据到内核缓冲区中。

(2) 主机A上的协议软件通过在数据前附加互联网络包头和LAN1帧头,创建了一个LAN1帧。互联网包头寻址到互联网络主机B。LAN1帧头寻址到路由器,然后穿个适配器。

(3) LAN1适配器复制该帧到网络。

(4) 当帧到达路由器时,路由器的LAN1适配器从电缆上读取它,并把它传送到协议软件。

(5) 路由器从互联网络包头中提取出目的互联网络地址,并用它作为路由表的索引,确定向哪里转发这个包。路由器删掉旧的LAN1帧头,加上寻址到主机B的新LAN2帧头,并把得到的帧传送到适配器。

(6) 路由器的LAN2适配器复制该帧到网络上。

(7) 当此帧到达主机B时,它的适配器从电缆上读到此帧,并将它传送到协议软件。

(8) 最后,主机B上的协议软件删除包头和帧头,将得到的数据复制到服务器的虚拟地址空间。

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图3

套接字接口

套接字接口时一组函数,用来创建网络应用。下图给出一个典型的APP客户端-服务器事务的上下文中的套接字接口。只要在上面加上自己的即可实现你想要的结果!

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图4

以下是使用VS软件写的socket简单通讯

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图5

网络编程逆向

首先程序是我们使用VS软件自己编写的,打算当Demo用,所以也没有加壳反调试什么的骚操作,不用PEinfo查壳收集信息什么的,上来先找主函数,如下图所示。

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图6

进入主函数后,发现有个CALL压了两个参数,让我们进去看看。

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图7

巴拉巴拉一大堆call,但是并不是没有有用的信息,可能不懂都会看花眼,这里要用IDA分析出数据中的信息!怎么去找出其中测试的信息了!

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图8

这个相对OD来说看起来逻辑还是比较清楚的,这里我们知道了这个CALL实际上就是做了创建套接字,连接服务器的操作,继续看下图。

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图9

这个循环第一个是gets,获取键盘输入的字符串,然后下面这个CALL把输入的字符串传了进去,这个时候就应该想到这个函数应该是send操作,我们进去看看证实以下我们的想法。

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图10

一般逆向数据就是要分析出其中的数据,达到自己想要的数据,以下是IDA的显示结果

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图11

到目前为止,我们是捋清楚了创建套接字,发送数据的操作,但是我们好像没看到接受数据的操作,我们是不是漏了什么东西?我们往回看看,我记得上面有个IDA有个创建线程的操作,我们可以看看这个线程做了什么。

用技术手段去分析娱乐游戏棋牌逆向数据简易模型!网络基础知识篇插图12

果然接收是在线程里面做的,到目前为止,可以说是客户端方面我们已经分析完毕了。

那么,一个棋牌游戏APP逆向数据分析模型大体是这样反编程解密出来的,如果我们有解密后的脚本是不是就可以通过修改脚本达到作弊的效果了?因为有了源码我们甚至可以写一个脱机挂出来,这对游戏的危害极大。

到这一步我就不一一介绍了,有些内容不宜展示,有实力合作的可以私聊。。。

本文来自网络,不代表网络在线手游棋牌立场,转载请注明出处:https://mip.qidake.com/635/

作者: qipai

上一篇
下一篇

返回顶部