M2M

M2M表达的是多种不同类型的通信技术有机的结合在一起:机器之间通信;机器控制通信;人机交互通信;移动互联通信。
  M2M让机器,设备,应用处理过程与后台信息系统共享信息,并与操作者共享信息。


  

  它提供了设备实时地在系统之间、远程设备之间、或和个人之间建立无线连接,传输数据的手段。M2M技术综合了数据采集、GPS,远程监控、电信、信息技术,是计算机、网络、设备、传感器、人类等的生态系统,能够使业务流程自动化,集成公司资讯科技 (IT)系统和非IT设备的实时状态,并创造增值服务。这一平台可在安全监测、自动抄表、机械服务和维修业务、自动售货机、公共交通系统、车队管理、工业流程自动化、电动机械、城市信息化等环境中运行并提供广泛的应用和解决方案。

  M2M的未来展望:

  Pervasive Computing: 无所不在的计算与互联。

  

  M2M简介

  M2M是一种理念,也是所有增强机器设备通信和网络能力的技术的总称。人与人之间的沟通很多也是通过机器实现的,例如通过手机、电话、电脑、传真机等机器设备之间的通信来实现人与人之间的沟通。另外一类技术是专为机器和机器建立通信而设计的,如许多智能化仪器仪表都带有RS-232接口和GPIB通信接口,增强了仪器与仪器之间,仪器与电脑之间的通信能力。随着科学技术的发展,越来越多的设备具有了通信和连网能力,网络一切(Network Everything)逐步变为现实。人与人之间的通信需要更加直观、精美的界面和更丰富的多媒体内容,而M2M的通信更须要建立一个统一规范的通信接口和标准化的传输内容。

  通信网络技术的出现和发展,给社会生活面貌带来了极大的变化。人与人之间可以更加快捷地沟通,信息的交流更顺畅。但是目前仅仅是计算机和其他一些IT类设备具备这种通信和网络能力。众多的普通机器设备几乎不具备联网和通信能力,例如家电、车辆、自动售货机、工厂设备等。M2M技术的目标就是使所有机器设备都具备连网和通信能力,其核心理念就是网络一切(Network Everything)。M2M技术具有非常重要的意义,有着广阔的市场和应用,推动着社会生产和生活方式新一轮的变革。

  业务及应用系统分类

  根据终端是否移动,业务应用可分为两大类:

  移动性应用:

  适用于外围设备位置不固定,移动性强丶须要与中心结点实时通信的应用,如交通、公安、海关、税务、医疗、物流等行业从业人员手持系统或车载、船载系统等。

  固定性应用:

  适用于外围设备位置固定,但地理分布广泛、有线接入方式部署困难或成本高昂的应用,可利用机器到机器实现无人值守,如电力、水利、采油、采矿、环保、气象、烟草、金融等行业信息采集或交易系统等。

  M2M技术的应用系统主要包括三个部分:

  企业级管理软件平台

  无线通讯解决方案

  现场数据采集和监控设备

  产品构成

  M2M产品主要由以下三部分构成:

  无线终端:都是特殊的行业应用终端,而不是通常的手机或笔记本电脑。

  传输通道:从无线终端到用户端的行业应用中心之间的通道。

  行业应用中心:是终端上传数据的会聚点,对分散的行业终端进行监控。特点是行业特徵强,用户自行管理,而且可位於企业端或者托管。

  技术组成

  M2M涉及到5个重要的技术部分:机器、M2M硬件、通信网络、中间件、应用。

  智能化机器

  实现M2M的第一步就是从机器/设备中获得数据,然后把它们通过网络发送出去。使机器“开口说话”(talk),让机器具备信息感知、信息加工(计算能力)、无线通信能力。使机器具备“说话”能力的基本方法有两种:生产设备的时候嵌入M2M 硬件;对已有机器进行改装,使其具备通信/联网能力。

  

  M2M硬件

  M2M硬件是使机器获得远程通信和联网能力的部件。主要进行信息的提取,从各种机器/设备那里获取数据,并传送到通信网络。现在的M2M硬件共分为五种:

  

  嵌入式硬件

  嵌入到机器里面,使其具备网络通信能力。常见的产品是支持GSM/GPRS或CDMA无线移动通信网络的无线嵌入数据模块。

  可组装硬件

  在M2M的工业应用中,厂商拥有大量不具备M2M 通信和连网能力的设备仪器,可改装硬件就是为满足这些机器的网络通信能力而设计的。实现形式也各不相同,包括从传感器收集数据的I/O设备(I/O Devices),完成协议转换功能,将数据发送到通信网络的连接终端(Connectivity Terminals);有些M2M 硬件还具备回控功能。

  调制解调器(Modem)

  上面提到嵌入式模块将数据传送到移动通信网络上时,起的就是调制解调器的作用。如果要将数据通过公用电话网络或者以太网送出,分别需要相应的Modem。

  传感器

  传感器可分成普通传感器和智能传感器两种。智能传感器(Smart Sensor)是指具有感知能力、计算能力和通信能力的微型传感器。由智能传感器组成的传感器网络(Sensor Network)是M2M技术的重要组成部分。一组具备通信能力的智能传感器以Ad Hoc方式构成无线网络,协作感知、采集和处理网络覆盖的地理区域中感知对象的信息,并发布给观察者;也可以通过GSM网络或卫星通信网络将信息传给远方的IT系统。

  识别标识(Location Tags)

  识别标识如同每台机器、每个商品的“身份证”,使机器之间可以相互识别和区分。常用的技术如条形码技术、射频识别卡RFID(Radio-Frequency Identification)技术等。标识技术已经被广泛用于商业库存和供应链管理。

  

  通信网络

  将信息传送到目的地。通信网络在整个M2M技术框架中处于核心地位,包括:广域网(无线移动通信网络、卫星通信网络、Internet、公众电话网)、局域网(以太网、无线局域网WLAN、Bluetooth)、个域网(ZigBee、传感器网络)。

  

  中间件

  中间件包括两部分:M2M 网关、数据收集/集成部件。网关是M2M系统中的“翻译员”,它获取来自通信网络的数据,将数据传送给信息处理系统。主要的功能是完成不同通信协议之间的转换。

  

  应用

  数据收集/集成部件是为了将数据变成有价值的信息。对原始数据进行不同加工和处理,并将结果呈现给需要这些信息的观察者和决策者。这些中间件包括:数据分析和商业智能部件,异常情况报告和工作流程部件,数据仓库和存储部件等。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wpe封包的使用详细教程 现在我们开始!首先,你要知道游戏中储存数据的几种格式,这几种格式是:字节(BYTE)、字(WORD)和双字(DOUBLE WORD),或者说是8位、16位和32位储存方式。字节也就是8位方式能储存0~255的数字;字或说是16位储存方式能储存0~65535的数;双字即32位方式能储存0~4294967295的数。   为何要了解这些知识呢?在游戏中各种参数的最大值是不同的,有些可能100左右就够了,比如,金庸群侠传中的角色的等级、随机遇敌个数等等。而有些却需要大于255甚至大于65535,象金庸群侠传中角色的金钱值可达到数百万。所以,在游戏中各种不同的数据的类型是不一样的。在我们修改游戏时需要寻找准备修改的数据的封包,在这种时候,正确判断数据的类型是迅速找到正确地址的重要条件。   在计算机中数据以字节为基本的储存单位,每个字节被赋予一个编号,以确定各自的位置。这个编号我们就称为地址。 在需要用到字或双字时,计算机用连续的两个字节来组成一个字,连续的两个字组成一个双字。而一个字或双字的地址就是它们的低位字节的地址。 现在我们常用的Windows 9x操作系统中,地址是用一个32位的二进制数表示的。而在平时我们用到内存地址时,总是用一个8位的16进制数来表示它。 二进制和十六进制又是怎样一回事呢?   简单说来,二进制数就是一种只有0和1两个数码,每满2则进一位的计数进位法。同样,16进制就是每满十六就进一位的计数进位法。16进制有0--F十六个数字,它为表示十到十五的数字采用了A、B、C、D、E、F六个数字,它们和十进制的对应关系是:A对应于10,B对应于11,C对应于12,D对应于13,E对应于14,F对应于15。而且,16进制数和二进制数间有一个简单的对应关系,那就是;四位二进制数相当于一位16进制数。比如,一个四位的二进制数1111就相当于16进制的F,1010就相当于A。 了解这些基础知识对修改游戏有着很大的帮助,下面我就要谈到这个问题。由于在计算机中数据是以二进制的方式储存的,同时16进制数和二进制间的转换关系十分简单,所以大部分的修改工具在显示计算机中的数据时会显示16进制的代码,而且在你修改时也需要输入16进制的数字。你清楚了吧?   在游戏中看到的数据可都是十进制的,在要寻找并修改参数的值时,可以使用Windows提供的计算器来进行十进制和16进制的换算,我们可以在开始菜单里的程序组中的附件中找到它。   现在要了解的知识也差不多了!不过,有个问题在游戏修改中是需要注意的。在计算机中数据的储存方式一般是低位数储存在低位字节,高位数储存在高位字节。比如,十进制数41715转换为16进制的数为A2F3,但在计算机中这个数被存为F3A2。 看了以上内容大家对数据的存贮和数据的对应关系都了解了吗? 好了,接下来我们要告诉大家在游戏中,封包到底是怎么一回事了,来!大家把袖口卷起来,让我们来干活吧! 二:什么是封包? 怎么截获一个游戏的封包? 怎么去检查游戏服务器的ip地址和端口号? Internet用户使用的各种信息服务,其通讯的信息最终均可以归结为以IP包为单位的信息传送,IP包除了包括要传送的数据信息外,还包含有信息要发送到的目的IP地址、信息发送的源IP地址、以及一些相关的控制信息。当一台路由器收到一个IP数据包时,它将根据数据包中的目的IP地址项查找路由表,根据查找的结果将此IP数据包送往对应端口。下一台IP路由器收到此数据包后继续转发,直至发到目的地。路由器之间可以通过路由协议来进行路由信息的交换,从而更新路由表。 那么我们所关心的内容只是IP包中的数据信息,我们可以使用许多监听网络的工具来截获客户端与服务器之间的交换数据,下面就向你介绍其中的一种工具:WPE。 WPE使用方法: 执行WPE会有下列几项功能可选择: NETSTAT命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。或者你可以使用木马客星等工具来查看网络连接。工具是很多的,看你喜欢用哪一种了。 NETSTAT命令的一般格式为: NETSTAT [选项] 命令中各选项的含义如下: -a 显示所有socket,包括正在监听的。 -c 每隔1秒就重新显示一遍,直到用户中断它。 -i 显示所有网络接口的信息。 -n 以网络IP地址代替名称,显示出网络连接情形。 -r 显示核心路由表,格式同"route -e"。 -t 显示TCP协议的连接情况。 -u 显示UDP协议的连接情况。 -v 显示正在进行的工作。 三:怎么来分析我们截获的封包? 首先我们将WPE截获的封包保存为文本文件,然后打开它,这时会看到如下的数据(这里我们以金庸群侠传里PK店小二客户端发送的数据为例来讲解): 第一个文件: 复制内容到剪贴板 代码:SEND-> 0000 E6 56 0D 22 7E 6B E4 17 13 13 12 13 12 13 67 1B SEND-> 0010 17 12 DD 34 12 12 12 12 17 12 0E 12 12 12 9B SEND-> 0000 E6 56 1E F1 29 06 17 12 3B 0E 17 1A SEND-> 0000 E6 56 1B C0 68 12 12 12 5A SEND-> 0000 E6 56 02 C8 13 C9 7E 6B E4 17 10 35 27 13 12 12 SEND-> 0000 E6 56 17 C9 12 第二个文件: 复制内容到剪贴板 代码:SEND-> 0000 83 33 68 47 1B 0E 81 72 76 76 77 76 77 76 02 7E SEND-> 0010 72 77 07 1C 77 77 77 77 72 77 72 77 77 77 6D SEND-> 0000 83 33 7B 94 4C 63 72 77 5E 6B 72 F3 SEND-> 0000 83 33 7E A5 21 77 77 77 3F SEND-> 0000 83 33 67 AD 76 CF 1B 0E 81 72 75 50 42 76 77 77 SEND-> 0000 83 33 72 AC 77 我们发现两次PK店小二的数据格式一样,但是内容却不相同,我们是PK的同一个NPC,为什么会不同呢? 原来金庸群侠传的封包是经过了加密运算才在网路上传输的,那么我们面临的问题就是如何将密文解密成明文再分析了。 因为一般的数据包加密都是异或运算,所以这里先讲一下什么是异或。 简单的说,异或就是"相同为0,不同为1"(这是针对二进制按位来讲的),举个例子,0001和0010异或,我们按位对比,得到异或结果是0011,计算的方法是:0001的第4位为0,0010的第4位为0,它们相同,则异或结果的第4位按照"相同为0,不同为1"的原则得到0,0001的第3位为0,0010的第3位为0,则异或结果的第3位得到0,0001的第2位为0,0010的第2位为1,则异或结果的第2位得到1,0001的第1位为1,0010的第1位为0,则异或结果的第1位得到1,组合起来就是0011。异或运算今后会遇到很多,大家可以先熟悉熟悉,熟练了对分析很有帮助的。 下面我们继续看看上面的两个文件,按照常理,数据包的数据不会全部都有值的,游戏开发时会预留一些字节空间来便于日后的扩充,也就是说数据包里会存在一些"00"的字节,观察上面的文件,我们会发现文件一里很多"12",文件二里很多"77",那么这是不是代表我们说的"00"呢?推理到这里,我们就开始行动吧! 我们把文件一与"12"异或,文件二与"77"异或,当然用手算很费事,我们使用"M2M 1.0 加密封包分析工具"来计算就方便多了。得到下面的结果: 第一个文件: 复制内容到剪贴板 代码:1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 SEND-> 0010 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89 2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 08 3 SEND-> 0000 F4 44 09 D2 7A 00 00 00 48 4 SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00 5 SEND-> 0000 F4 44 05 DB 00第二个文件: 复制内容到剪贴板 代码:1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 SEND-> 0010 05 00 70 6B 00 00 00 00 05 00 05 00 00 00 1A 2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 84 3 SEND-> 0000 F4 44 09 D2 56 00 00 00 48 4 SEND-> 0000 F4 44 10 DA 01 B8 6C 79 F6 05 02 27 35 01 00 00 5 SEND-> 0000 F4 44 05 DB 00 哈,这一下两个文件大部分都一样啦,说明我们的推理是正确的,上面就是我们需要的明文! 接下来就是搞清楚一些关键的字节所代表的含义,这就需要截获大量的数据来分析。 首先我们会发现每个数据包都是"F4 44"开头,第3个字节是变化的,但是变化很有规律。我们来看看各个包的长度,发现什么没有?对了,第3个字节就是包的长度! 通过截获大量的数据包,我们判断第4个字节代表指令,也就是说客户端告诉服务器进行的是什么操作。例如向服务器请求战斗指令为"30",战斗中移动指令为"D4"等。 接下来,我们就需要分析一下上面第一个包"F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89",在这个包里包含什么信息呢?应该有通知服务器你PK的哪个NPC吧,我们就先来找找这个店小二的代码在什么地方。 我们再PK一个小喽罗(就是大理客栈外的那个咯): 复制内容到剪贴板 代码:SEND-> 0000 F4 44 1F 30 D4 75 F6 05 01 01 00 01 00 01 75 09 SEND-> 0010 05 00 8A 19 00 00 00 00 11 00 02 00 00 00 C0 我们根据常理分析,游戏里的NPC种类虽然不会超过65535(FFFF),但开发时不会把自己限制在字的范围,那样不利于游戏的扩充,所以我们在双字里看看。通过"店小二"和"小喽罗"两个包的对比,我们把目标放在"6C 79 F6 05"和"CF 26 00 00"上。(对比一下很容易的,但你不能太迟钝咯,呵呵)我们再看看后面的包,在后面的包里应该还会出现NPC的代码,比如移动的包,游戏允许观战,服务器必然需要知道NPC的移动坐标,再广播给观战的其他玩家。在后面第4个包"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00"里我们又看到了"6C 79 F6 05",初步断定店小二的代码就是它了! (这分析里边包含了很多工作的,大家可以用WPE截下数据来自己分析分析) 第一个包的分析暂时就到这里(里面还有的信息我们暂时不需要完全清楚了) 我们看看第4个包"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00",再截获PK黄狗的包,(狗会出来2只哦)看看包的格式: 复制内容到剪贴板 代码:SEND-> 0000 F4 44 1A DA 02 0B 4B 7D F6 05 02 27 35 01 00 00 SEND-> 0010 EB 03 F8 05 02 27 36 01 00 00 根据上面的分析,黄狗的代码为"4B 7D F6 05"(100040011),不过两只黄狗服务器怎样分辨呢?看看"EB 03 F8 05"(100140011),是上一个代码加上100000,呵呵,这样服务器就可以认出两只黄狗了。我们再通过野外遇敌截获的数据包来证实,果然如此。 那么,这个包的格式应该比较清楚了:第3个字节为包的长度,"DA"为指令,第5个字节为NPC个数,从第7个字节开始的10个字节代表一个NPC的信息,多一个NPC就多10个字节来表示。 大家如果玩过网金,必然知道随机遇敌有时会出现增援,我们就利用游戏这个增援来让每次战斗都会出现增援的NPC吧。 通过在战斗中出现增援截获的数据包,我们会发现服务器端发送了这样一个包: 复制内容到剪贴板 代码:F4 44 12 E9 EB 03 F8 05 02 00 00 03 00 00 00 00 00 00 第5-第8个字节为增援NPC的代码(这里我们就简单的以黄狗的代码来举例)。 那么,我们就利用单机代理技术来同时欺骗客户端和服务器吧! 好了,呼叫NPC的工作到这里算是完成了一小半,接下来的事情,怎样修改封包和发送封包,我们下节继续讲解吧。 四:怎么冒充"客户端"向"服务器"发我们需要的封包? 这里我们需要使用一个工具,它位于客户端和服务器端之间,它的工作就是进行数据包的接收和转发,这个工具我们称为代理。 如果代理的工作单纯就是接收和转发的话,这就毫无意义了,但是请注意:所有的数据包都要通过它来传输,这里的意义就重大了。我们可以分析接收到的数据包,或者直接转发,或者修改后转发,或者压住不转发,甚至伪造我们需要的封包来发送。 下面我们继续讲怎样来同时欺骗服务器和客户端,也就是修改封包和伪造封包。 通过我们上节的分析,我们已经知道了打多个NPC的封包格式,那么我们就动手吧! 首先我们要查找客户端发送的包,找到战斗的特征,就是请求战斗的第1个包,我们找"F4 44 1F 30"这个特征,这是不会改变的,当然是要解密后来查找哦。 找到后,表示客户端在向服务器请求战斗,我们不动这个包,转发。 继续向下查找,这时需要查找的特征码不太好办,我们先查找"DA",这是客户端发送NPC信息的数据包的指令,那么可能其他包也有"DA",没关系,我们看前3个字节有没有"F4 44"就行了。找到后,我们的工作就开始了! 我们确定要打的NPC数量。这个数量不能很大,原因在于网金的封包长度用一个字节表示,那么一个包可以有255个字节,我们上面分析过,增加一个NPC要增加10个字节,所以大家算算就知道,打20个NPC比较合适。 然后我们要把客户端原来的NPC代码分析计算出来,因为增加的NPC代码要加上100000哦。再把我们增加的NPC代码计算出来,并且组合成新的封包,注意代表包长度的字节要修改啊,然后转发到服务器,这一步在编写程序的时候要注意算法,不要造成较大延迟。 上面我们欺骗服务器端完成了,欺骗客户端就简单了,^-^ 发送了上面的封包后,我们根据新增NPC代码构造封包马上发给客户端,格式就是"F4 44 12 E9 NPC代码 02 00 00 03 00 00 00 00 00 00",把每个新增的NPC都构造这样一个包,按顺序连在一起发送给客户端,客户端也就被我们骗过了,很简单吧。 以后战斗中其他的事我们就不管了,尽情地开打吧,呵呵。 本人亲身试过,特别好用,绝对无毒,好用请好评!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值