请帮我翻译下这段源代码翻译器

查看: 4203|回复: 4
(658793号)
帖数143 个收听数个人主页自我介绍rocketman精华0听众数相册帖子分享日志好友记录UID658793积分16魅力12 点财富173 点主题威望0 点贡献点0 点阅读权限20注册时间收到鲜花0 朵活动点0 点当月幸运0 点在线时间145 小时最后登录
海川小学2年级, 积分 16, 距离下一级还需 4 积分
升级 
当前用户组为 海川小学2年级升级可点击顶部"财富换魅力升级"链接 把财富换成魅力 1魅力=1积分当前积分为 16, 升到下一级还需要 4 点。
& 帖子魅力12 点财富173 点威望0 点贡献点0 点最后登录
资源分享帖
可选 副标题:
刚接触S7-300,请海友们帮忙翻译下这段程序,最好能用梯形图表示下,对于程序中JNB跳转指令不是很明白
本帖子中包含更多资源
才可以下载或查看,没有帐号?
+1<span class='aboc_digg_num' id='aboc_digg_num_
有图有真相
总评分:&#160;财富 + 5&#160;
1、本主题及回复中所有言论和图片、内容纯属会员个人意见,仅供参考,与本站立场无关
2、本内容由该帖子作者发表,帖子作者须承担一切因本内容发表而直接或间接导致的民事或刑事法律责任
3、如作者的言论侵犯到任何版权或争议问题 第三方负面信息,请立即告知本站并举证,本站将予与删除 管理员信箱:
4、转载本站内容需注明本站完整出处
没有不可能,需要坚持
帖数394 个收听数个人主页自我介绍我思故我在精华0听众数相册帖子分享日志好友记录UID76358积分39魅力34 点财富1759 点主题威望0 点贡献点0 点阅读权限30注册时间收到鲜花0 朵活动点0 点当月幸运0 点在线时间71 小时最后登录
海川小学3年级, 积分 39, 距离下一级还需 11 积分
升级&#160;
&#160;63.33%
当前用户组为 海川小学3年级升级可点击顶部"财富换魅力升级"链接 把财富换成魅力 1魅力=1积分当前积分为 39, 升到下一级还需要 11 点。
& 帖子魅力34 点财富1759 点威望0 点贡献点0 点最后登录
JNB &跳转标签&
地址& & & & 描述
&跳转标签&& & & & 跳转目标的符号名。
当逻辑运算的结果为0时,JNB &跳转标签&就中断线性程序扫描,并跳转到一个跳转目标。线性程序扫描在跳转目标处继续执行。由跳转标签确定跳转目标。允许向前跳转和向后跳转。只能在一个块内执行跳转,即,跳转指令和跳转目标必须位于同一个块内。跳转目标在该块内必须唯一。最大跳转距离为程序代码的-32768
或+32767个字。可以跳过的实际语句的最大数目取决于程序中使用的语句组合(单字、双字或三字语句)。
当逻辑运算的结果为1时,不执行跳转。将RLO设置为1,继续对下一个语句执行程序扫描。
当存在一个JNB &跳转标签&指令时,将RLO复制到BR,而与RLO的状态无关。
BR& & & & CC 1& & & & CC 0& & & & OV& & & & OS& & & & OR& & & & STA& & & & RLO& & & & /FC
写:& & & & x& & & & -& & & & -& & & & -& & & & -& & & & 0& & & & 1& & & & 1& & & & 0
STL& & & & 注解
A& & & & I 1.0& & & &
A& & & & I 1.2& & & &
JNB& & & & JOVR& & & & //当RLO = 0时,跳转到跳转标签JOVR。将RLO位的内容复制到BR位中。
L& & & & IW8& & & & //当不执行跳转时,在此继续执行程序扫描。
T& & & & MW22& & & &
JOVR:& & & & A& & & & I 2.1& & & & //跳转到跳转标签JOVR后,在此继续执行程序扫描。
帮助他人解决问题,互助方可提高
总评分:&#160;财富 + 8&#160;
魅力 + 2&#160;
我思故我在
(658793号)
帖数143 个收听数个人主页自我介绍rocketman精华0听众数相册帖子分享日志好友记录UID658793积分16魅力12 点财富173 点主题威望0 点贡献点0 点阅读权限20注册时间收到鲜花0 朵活动点0 点当月幸运0 点在线时间145 小时最后登录
海川小学2年级, 积分 16, 距离下一级还需 4 积分
升级&#160;
当前用户组为 海川小学2年级升级可点击顶部"财富换魅力升级"链接 把财富换成魅力 1魅力=1积分当前积分为 16, 升到下一级还需要 4 点。
& 帖子魅力12 点财富173 点威望0 点贡献点0 点最后登录
谢谢txa001的帮助,但是有两点疑问。1是程序中JNB跟A&&I1.0和 A I1.2的关系,2是RLO是怎么使用的。希望能根据我的程序帮忙讲一下嘛。
总评分:&#160;财富 + 5&#160;
没有不可能,需要坚持
帖数394 个收听数个人主页自我介绍我思故我在精华0听众数相册帖子分享日志好友记录UID76358积分39魅力34 点财富1759 点主题威望0 点贡献点0 点阅读权限30注册时间收到鲜花0 朵活动点0 点当月幸运0 点在线时间71 小时最后登录
海川小学3年级, 积分 39, 距离下一级还需 11 积分
升级&#160;
&#160;63.33%
当前用户组为 海川小学3年级升级可点击顶部"财富换魅力升级"链接 把财富换成魅力 1魅力=1积分当前积分为 39, 升到下一级还需要 11 点。
& 帖子魅力34 点财富1759 点威望0 点贡献点0 点最后登录
语句表达式&&A代表AND,即“与”逻辑运算。打开SIMATIC Manager帮助可以查看。
& && && &&&A& && && & M161.0& && && && && & 与地址 M161.0值进行“与”逻辑运算
& && && &&&JNB& && &M001& && && && && && &&&当上面逻辑运算的结果为0时,就中断线性程序扫描,并跳转到一个
& && && && && && && && && && && && && && && && && &跳 转目标&&M001。否则按顺序执行。
& && && &&&CALL& & FC103& && && && && && &调用程序块FC103
& && && &&&CALL& & FC13
& && && &&&R& && && &M161.0& && && && && &&&复位M161.0的值
M001&&NOP& &&&0& && && && && && && && && &NOP 0 (地址为&0&的指令NOP)不执行任何功能,并且不影响状
& && && && && && && && && && && && && && && && && &态位。该指令代码包含具有16个零的位模式。当显示某个程序时,
& && && && && && && && && && && && && && && && && &该指令仅对编程设备(PG)有用。
& && && && &A& && && & M160.0
& && && &&&X& && && &&&XXX
& &&&S& && &&&M161.0& && && && && && && && &&&置位 M161.0 (使其值为“1”)
帮助他人解决问题
真熟悉西门子
总评分:&#160;财富 + 16&#160;
魅力 + 1&#160;
我思故我在
(658793号)
帖数143 个收听数个人主页自我介绍rocketman精华0听众数相册帖子分享日志好友记录UID658793积分16魅力12 点财富173 点主题威望0 点贡献点0 点阅读权限20注册时间收到鲜花0 朵活动点0 点当月幸运0 点在线时间145 小时最后登录
, 积分 16, 距离下一级还需 4 积分
升级&#160;
当前用户组为 海川小学2年级升级可点击顶部"财富换魅力升级"链接 把财富换成魅力 1魅力=1积分当前积分为 16, 升到下一级还需要 4 点。
& 帖子魅力12 点财富173 点威望0 点贡献点0 点最后登录
谢谢,十分感谢,理解了不少
Powered by
内容发布人须承担一切因不当内容发表而导致的全部责任
有任何不妥请与管理员
联系,未经本站许可,禁止转载本站内容明日科技在线考试页面生成单选题号。这段代码我弄不明白来龙去脉请高手给翻译成详细的汉语意思并说明它的作用。送分感谢。 //生成多选题题号
for (int tID2 = 1; tID2 _作业帮
拍照搜题,秒出答案
明日科技在线考试页面生成单选题号。这段代码我弄不明白来龙去脉请高手给翻译成详细的汉语意思并说明它的作用。送分感谢。 //生成多选题题号
for (int tID2 = 1; tID2
明日科技在线考试页面生成单选题号。这段代码我弄不明白来龙去脉请高手给翻译成详细的汉语意思并说明它的作用。送分感谢。 //生成多选题题号
for (int tID2 = 1; tID2各位大虾帮我一下吧!翻译这段代码_服务器_百科问答
各位大虾帮我一下吧!翻译这段代码
问题补充:开wpe开游戏进商店之后使用热键(F10)调用出WPE找到游戏进程,点开始记录选择一个好的车子,高档的、买不起的都可以,点击弹出的对话框,确定。回到WPE关闭记录(■)右边会出现2个记录,找到标有发送的那个记录(也可以说是封包),右键点发送弹出一个对话筐,把里面的代码该成你想刷的车子的代码,然后点发送8-然后回到游戏点&车库&惊喜的发现你刷的车子出来了~需要WPE,WPE封包拦截工具的个工具自己找的下
提问者:朱析骁
怎么截获一个游戏的封包?怎么去检查游戏服务器的ip地址和端口号?Internet用户使用的各种信息服务,其通讯的信息最终均可以归结为以IP包为单位的信息传送,IP包除了包括要传送的数据信息外,还包含有信息要发送到的目的IP地址、信息发送的源IP地址、以及一些相关的控制信息。当一台路由器收到一个IP数据包时,它将根据数据包中的目的IP地址项查找路由表,根据查找的结果将此IP数据包送往对应端口。下一台IP路由器收到此数据包后继续转发,直至发到目的地。路由器之间可以通过路由协议来进行路由信息的交换,从而更新路由表。那么我们所关心的内容只是IP包中的数据信息,我们可以使用许多监听网络的工具来截获客户端与服务器之间的交换数据,下面就向你介绍其中的一种工具:WPE。WPE使用方法:执行WPE会有下列几项功能可选择:SELECTGAME选择目前在记忆体中您想拦截的程式,您只需双击该程式名称即可。TRACE追踪功能。用来追踪撷取程式送收的封包。WPE必须先完成点选欲追踪的程式名称,才可以使用此项目。按下Play键开始撷取程式收送的封包。您可以随时按下||暂停追踪,想继续时请再按下||。按下正方形可以停止撷取封包并且显示所有已撷取封包内容。若您没按下正方形停止键,追踪的动作将依照OPTION里的设定值自动停止。如果您没有撷取到资料,试试将OPTION里调整为WinsockVersion2。WPE及Trainers是设定在显示至少16bits颜色下才可执行。FILTER过滤功能。用来分析所撷取到的封包,并且予以修改。SENDPACKET送出封包功能。能够让您送出假造的封包。TRAINERMAKER制作修改器。OPTIONS设定功能。让您调整WPE的一些设定值。FILTER的详细教学-当FILTER在启动状态时,ON的按钮会呈现红色。-当您启动FILTER时,您随时可以关闭这个视窗。FILTER将会保留在原来的状态,直到您再按一次on/off钮。-只有FILTER启用钮在OFF的状态下,才可以勾选Filter前的方框来编辑修改。-当您想编辑某个Filter,只要双击该Filter的名字即可。NORMALMODE:范例:当您在StreetFighterOnline[快打旋风线上版]游戏中,您使用了两次火球而且击中了对方,这时您会撷取到以下的封包:SEND-&0104SEND-&67FFA4AASEND-&1109SEND-&SEND-&您的第一个火球让对方减了16滴[16=10h]的生命值,而您观察到第4跟第5个封包的位置4有10h的值出现,应该就是这里了。您观察10h前的0A09C1在两个封包中都没改变,可见得这3个数值是发出火球的关键。因此您将0A09C110填在搜寻列[SEARCH],然后在修改列[MODIFY]的位置4填上FF。如此一来,当您再度发出火球时,FF会取代之前的10,也就是攻击力为255的火球了!ADVANCEDMODE:范例:当您在一个游戏中,您不想要用真实姓名,您想用修改过的假名传送给对方。在您使用TRACE后,您会发现有些封包里面有您的名字出现。假设您的名字是Shadow,换算成16进位则是[];而您打算用moon[6D6F6F6E2020]来取代他。1)SEND-&01042)SEND-&001053)SEND-&11094)SEND-&F7700115)SEND-&但是您仔细看,您的名字在每个封包中并不是出现在相同的位置上-在第2个封包里,名字是出现在第4个位置上-在第4个封包里,名字是出现在第6个位置上在这种情况下,您就需要使用ADVANCEDMODE-您在搜寻列[SEARCH]填上:[请务必从位置1开始填]-您想要从原来名字Shadow的第一个字母开始置换新名字,因此您要选择从数值被发现的位置开始替代连续数值[fromthepositionofthechainfound]。-现在,在修改列[MODIFY]000的位置填上:6D6F6F6E2020[此为相对应位置,也就是从原来搜寻栏的+001位置开始递换]-如果您想从封包的第一个位置就修改数值,请选择[fromthebeginningofthepacket]了解一点TCP/IP协议常识的人都知道,互联网是将信息数据打包之后再传送出去的。每个数据包分为头部信息和数据信息两部分。头部信息包括数据包的发送地址和到达地址等。数据信息包括我们在游戏中相关操作的各项信息。那么在做截获封包的过程之前我们先要知道游戏服务器的IP地址和端口号等各种信息,实际上最简单的是看看我们游戏目录下,是否有一个SERVER.INI的配置文件,这个文件里你可以查看到个游戏服务器的IP地址,比如金庸群侠传就是如此,那么除了这个我们还可以在DOS下使用NETSTAT这个命令,NETSTAT命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。或者你可以使用木马客星等工具来查看网络连接。工具是很多的,看你喜欢用哪一种了。NETSTAT命令的一般格式为:NETSTAT[选项]命令中各选项的含义如下:-a显示所有socket,包括正在监听的。-c每隔1秒就重新显示一遍,直到用户中断它。-i显示所有网络接口的信息。-n以网络IP地址代替名称,显示出网络连接情形。-r显示核心路由表,格式同&route-e&。-t显示TCP协议的连接情况。-u显示UDP协议的连接情况。-v显示正在进行的工作。三:怎么来分析我们截获的封包?首先我们将WPE截获的封包保存为文本文件,然后打开它,这时会看到如下的数据(这里我们以金庸群侠传里PK店小二客户端发送的数据为例来讲解):第一个文件:SEND-&7E6BE213671BSEND-&0E1212129BSEND-&EFB0E171ASEND-&BCASEND-&C813C97E6BE212SEND-&C912第二个文件:SEND-&1B0E7776027ESEND-&CDSEND-&4CB72F3SEND-&EAFSEND-&AD76CF1B0E7777SEND-&AC77我们发现两次PK店小二的数据格式一样,但是内容却不相同,我们是PK的同一个NPC,为什么会不同呢?原来金庸群侠传的封包是经过了加密运算才在网路上传输的,那么我们面临的问题就是如何将密文解密成明文再分析了。因为一般的数据包加密都是异或运算,所以这里先讲一下什么是异或。简单的说,异或就是&相同为0,不同为1&(这是针对二进制按位来讲的),举个例子,异或,我们按位对比,得到异或结果是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&异或,当然用手算很费事,我们使用&M2M1.0加密封包分析工具&来计算就方便多了。得到下面的结果:第一个文件:1SEND-&6C79F0017509SEND-&1CSEND-&CE33B083SEND-&D27ASEND-&DA01DB6C79F0005SEND-&DB00第二个文件:1SEND-&6C79F0017509SEND-&BSEND-&CE33B843SEND-&DSEND-&DA01B86C79F0005SEND-&DB00哈,这一下两个文件大部分都一样啦,说明我们的推理是正确的,上面就是我们需要的明文!接下来就是搞清楚一些关键的字节所代表的含义,这就需要截获大量的数据来分析。首先我们会发现每个数据包都是&F444&开头,第3个字节是变化的,但是变化很有规律。我们来看看各个包的长度,发现什么没有?对了,第3个字节就是包的长度!通过截获大量的数据包,我们判断第4个字节代表指令,也就是说客户端告诉服务器进行的是什么操作。例如向服务器请求战斗指令为&30&,战斗中移动指令为&D4&等。接下来,我们就需要分析一下上面第一个包&FFCF001C&,在这个包里包含什么信息呢?应该有通知服务器你PK的哪个NPC吧,我们就先来找找这个店小二的代码在什么地方。我们再PK一个小喽罗(就是大理客栈外的那个咯):SEND-&D475F0017509SEND-&我们根据常理分析,游戏里的NPC种类虽然不会超过65535(FFFF),但开发时不会把自己限制在字的范围,那样不利于游戏的扩充,所以我们在双字里看看。通过&店小二&和&小喽罗&两个包的对比,我们把目标放在&6C79F605&和&CF260000&上。(对比一下很容易的,但你不能太迟钝咯,呵呵)我们再看看后面的包,在后面的包里应该还会出现NPC的代码,比如移动的包,游戏允许观战,服务器必然需要知道NPC的移动坐标,再广播给观战的其他玩家。在后面第4个包&SEND-&DA01DB6C79F000&里我们又看到了&6C79F605&,初步断定店小二的代码就是它了!(这分析里边包含了很多工作的,大家可以用WPE截下数据来自己分析分析)第一个包的分析暂时就到这里(里面还有的信息我们暂时不需要完全清楚了)我们看看第4个包&SEND-&DA01DB6C79F000&,再截获PK黄狗的包,(狗会出来2只哦)看看包的格式:SEND-&ADA020B4B7DF000SEND-&根据上面的分析,黄狗的代码为&4B7DF605&(),不过两只黄狗服务器怎样分辨呢?看看&EB03F805&(),是上一个代码加上100000,呵呵,这样服务器就可以认出两只黄狗了。我们再通过野外遇敌截获的数据包来证实,果然如此。那么,这个包的格式应该比较清楚了:第3个字节为包的长度,&DA&为指令,第5个字节为NPC个数,从第7个字节开始的10个字节代表一个NPC的信息,多一个NPC就多10个字节来表示。大家如果玩过网金,必然知道随机遇敌有时会出现增援,我们就利用游戏这个增援来让每次战斗都会出现增援的NPC吧。通过在战斗中出现增援截获的数据包,我们会发现服务器端发送了这样一个包:FF第5-第8个字节为增援NPC的代码(这里我们就简单的以黄狗的代码来举例)。那么,我们就利用单机代理技术来同时欺骗客户端和服务器吧!好了,呼叫NPC的工作到这里算是完成了一小半,接下来的事情,怎样修改封包和发送封包,我们下节继续讲解吧。四:怎么冒充&客户端&向&服务器&发我们需要的封包?这里我们需要使用一个工具,它位于客户端和服务器端之间,它的工作就是进行数据包的接收和转发,这个工具我们称为代理。如果代理的工作单纯就是接收和转发的话,这就毫无意义了,但是请注意:所有的数据包都要通过它来传输,这里的意义就重大了。我们可以分析接收到的数据包,或者直接转发,或者修改后转发,或者压住不转发,甚至伪造我们需要的封包来发送。下面我们继续讲怎样来同时欺骗服务器和客户端,也就是修改封包和伪造封包。通过我们上节的分析,我们已经知道了打多个NPC的封包格式,那么我们就动手吧!首先我们要查找客户端发送的包,找到战斗的特征,就是请求战斗的第1个包,我们找&F4441F30&这个特征,这是不会改变的,当然是要解密后来查找哦。找到后,表示客户端在向服务器请求战斗,我们不动这个包,转发。继续向下查找,这时需要查找的特征码不太好办,我们先查找&DA&,这是客户端发送NPC信息的数据包的指令,那么可能其他包也有&DA&,没关系,我们看前3个字节有没有&F444&就行了。找到后,我们的工作就开始了!我们确定要打的NPC数量。这个数量不能很大,原因在于网金的封包长度用一个字节表示,那么一个包可以有255个字节,我们上面分析过,增加一个NPC要增加10个字节,所以大家算算就知道,打20个NPC比较合适。然后我们要把客户端原来的NPC代码分析计算出来,因为增加的NPC代码要加上100000哦。再把我们增加的NPC代码计算出来,并且组合成新的封包,注意代表包长度的字节要修改啊,然后转发到服务器,这一步在编写程序的时候要注意算法,不要造成较大延迟。上面我们欺骗服务器端完成了,欺骗客户端就简单了,^-^发送了上面的封包后,我们根据新增NPC代码构造封包马上发给客户端,格式就是&F44412E9NPC代码&,把每个新增的NPC都构造这样一个包,按顺序连在一起发送给客户端,客户端也就被我们骗过了,很简单吧。以后战斗中其他的事我们就不管了,尽情地开打吧,呵呵。上面讲的需要一定的编程基础,但是不难,即使你不会编程,相信你继续看下去就会有收获了。五:怎么用计算机语言去写一个单机代理?在上一章,我们已经对于代理的原理进行了讲解,大家对于代理已经有了一个初步的认识,现在我教大家如何用计算机语言编写一个自己的代理,我们考虑到简单明了,我们选用VB,因为用VB编写代理只需要很少的代码。代码如下:PrivateSubForm_Load()DaiLi.LocalPort=&1234&Server.RemotePort=&1234&Server.RemoteHost=&211.100.20.26&DaiLi.ListenEndSubPrivateSubDaiLi_ConnectionRequest(ByValrequestIDAsLong)Server.ConnectClient.AcceptrequestIDEndSubPrivateSubClient_DataArrival(ByValbytesTotalAsLong)DimClientToServer()AsByteClient.GetDataClientToServerServer.SendDataClientToServerEndSubPrivateSubServer_DataArrival(ByValbytesTotalAsLong)DimServerToClient()AsByteServer.GetDataServerToClientClient.SendDataServerToClientEndSubForm_Load()这个过程表示在程序启动的时候要做的一些初始化操作。DaiLi.LocalPort=&1234&设定监听端口Server.RemotePort=&1234&设定象游戏服务器连接的端口(和监听端口是相同的)Server.RemoteHost=&211.100.20.26&设定游戏服务器的IP地址DaiLi.Listen监听本地的连接请求这时你只要将游戏的服务器列表的IP改成127.0.0.1,那么游戏的客户端程序就会来连接我们的代理,我们的代理会调用如下的过程:PrivateSubDaiLi_ConnectionRequest(ByValrequestIDAsLong)Server.Connect代理客户端向服务器连接Client.AcceptrequestID接受客户端的连接请求EndSub当客户端向服务器发送数据时,就会调用下边的过程PrivateSubClient_DataArrival(ByValbytesTotalAsLong)DimClientToServer()AsByte变量定义,请求了一个用于存放数据的空间Client.GetDataClientToServer客户端的连接接收这些数据在这里我们可以添加自己的代码,对封包进行修改,然后再发向服务器。Server.SendDataClientToServer服务器的连接把这些数据发向服务器EndSub当服务器发送数据给客户端时,会调用下边的过程PrivateSubServer_DataArrival(ByValbytesTotalAsLong)DimServerToClient()AsByte变量定义,请求了一个用于存放数据的空间Server.GetDataServerToClient服务器连接接收数据在这里我们可以添加自己的代码,对封包进行修改,然后再发给客户端。Client.SendDataServerToClientEndSub用其他语言编写基本的原理也是差不多的,不过可能稍微要麻烦一些,因为VB本身有一个MSWINSCK.OCX控件,这个控件封装了WINDOWS的网络操作,而且接口很简单,推荐大家使用。六:如果单机代理被封,我们怎么利用底层的技术来接管游戏的发包?在WINDOWS系统中,网络通讯的任务是由一个叫WSOCK32.DLL(在SYSTEM目录下)来完成的,每当游戏被运行时,他都会自动的去调用这个动态连接库,因为在WINDOWS系统中对于文件的搜索顺序是程序目录&系统目录&路径中设置的目录,所以我们就有机会替换掉系统的WSOCK32.DLL使的游戏调用我们的WSOCK32.DLL,这样我们就有了对于游戏封包绝对的控制权,有人问:&我们应该怎么做呢?&,我们只要自己编写一个WSOCK32.DLL放到游戏的目录下,就OK了,当然让我们完全自己去编写一个WSOCK32.DLL是不太现实的,因为本身网络通讯要处理很多更底层的东西,比如说从网卡读取BIT流,所以我们选择由我们的WSOCK32.DLL去调用系统的WSOCK32.DLL来完成这个功能。WSOCK32.DLL有很多的输出函数,函数如下:__WSAFDIsSetacceptAcceptExArecvAsendbindclosesocketclosesockinfoconnectdn_expandEnumProtocolsAEnumProtocolsWGetAcceptExSockaddrsGetAddressByNameAGetAddressByNameWgethostbyaddrgethostbynamegethostnameGetNameByTypeAGetNameByTypeWgetnetbynamegetpeernamegetprotobynamegetprotobynumbergetservbynamegetservbyportGetServiceAGetServiceWgetsocknamegetsockoptGetTypeByNameAGetTypeByNameWhtonlhtonsinet_addrinet_networkinet_ntoaioctlsocketlistenMigrateWinsockConfigurationNPLoadNameSpacesNSPStartupntohlntohsrcmdrecvrecvfromrexecrresvports_perrorselectsendsendtosethostnameSetServiceASetServiceWsetsockoptshutdownsocketTransmitFileWEPWSAAsyncGetHostByAddrWSAAsyncGetHostByNameWSAAsyncGetProtoByNameWSAAsyncGetProtoByNumberWSAAsyncGetServByNameWSAAsyncGetServByPortWSAAsyncSelectWSACancelAsyncRequestWSACancelBlockingCallWSACleanupWSAGetLastErrorWSAIsBlockingWSApSetPostRoutineWSARecvExWSASetBlockingHookWSASetLastErrorWSAStartupWSAUnhookBlockingHookWsControlWSHEnumProtocols在这里,不是所有的函数都要修改,因为我们只关心发送和接收的封包,所以我们只要修改send和recv两个函数,前者是发送封包的后者是接收封包的,我们在这两个函数的处理中加入我们自己的代码,来完成封包的辨认,修改以及转发等功能。七:怎么来分析客户端的有关资料?自己作外挂,大多时候要分析封包,不过因为有的功能是由客户端来辨别的,所以分析客户端的程序同样也很重要,分析客户端首先要求你能看懂汇编指令(只要&看懂&,要求很低的),其次是要能够熟练的运用一些工具,然后能剩下的也就是运气和游戏公司的漏洞了。(哈,不是每次都能成功的啊)下边我分步教给大家。第一章8086汇编指令注:AX,BX,CX...,EAX,EBX,ECX...这些都是CPU用来存储数据的地方。一、数据传输指令作用:它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1.通用数据传送指令.MOV传送字或字节.MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP交换32位寄存器里字节的顺序XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数)CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX)XADD先交换再累加.(结果在第一个操作数里)XLAT字节查表转换.BX指向一张256字节的表的起点,AL为表的索引值(0-255,即0-FFH);返回AL为查表结果.([BX+AL]-&AL)2.输入输出端口传送指令.INI/O端口输入.(语法:IN累加器,{端口号│DX})OUTI/O端口输出.(语法:OUT{端口号│DX},累加器)输入输出端口由立即方式指定时,其范围是0-255;由寄存器DX指定时,其范围是0-65535.3.目的地址传送指令.LEA装入有效地址.例:LEADX,把偏移地址存到DX.LDS传送目标指针,把指针内容装入DS.例:LDSSI,把段地址:偏移地址存到DS:SI.LES传送目标指针,把指针内容装入ES.例:LESDI,把段地址:偏移地址存到ES:DI.LFS传送目标指针,把指针内容装入FS.例:LFSDI,把段地址:偏移地址存到FS:DI.LGS传送目标指针,把指针内容装入GS.例:LGSDI,把段地址:偏移地址存到GS:DI.LSS传送目标指针,把指针内容装入SS.例:LSSDI,把段地址:偏移地址存到SS:DI.4.标志传送指令.LAHF标志寄存器传送,把标志装入AH.SAHF标志寄存器传送,把AH内容装入标志寄存器.PUSHF标志入栈.POPF标志出栈.PUSHD32位标志入栈.POPD32位标志出栈.二、算术运算指令ADD加法.ADC带进位加法.INC加1.AAA加法的ASCII码调整.DAA加法的十进制调整.SUB减法.SBB带借位减法.DEC减1.NEC求反(以0减之).CMP比较.(两操作数作减法,仅修改标志位,不回送结果).AAS减法的ASCII码调整.DAS减法的十进制调整.MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结果回送:商回送AL,余数回送AH,(字节运算);或商回送AX,余数回送DX,(字运算).AAD除法的ASCII码调整.CBW字节转换为字.(把AL中字节的符号扩展到AH中去)CWD字转换为双字.(把AX中的字的符号扩展到DX中去)CWDE字转换为双字.(把AX中的字符号扩展到EAX中去)CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令AND与运算.OR或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL逻辑左移.SAL算术左移.(=SHL)SHR逻辑右移.SAR算术右移.(=SHR)ROL循环左移.ROR循环右移.RCL通过进位的循环左移.RCR通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时,可直接用操作码.如SHLAX,1.移位&1次时,则由寄存器CL给出移位次数.如MOVCL,04SHLAX,CL四、串指令DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数器.AL/AX扫描值.D标志0表示重复操作中SI和DI应自动增量;1表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS串传送.(MOVSB传送字符.MOVSW传送字.MOVSD传送双字.)CMPS串比较.(CMPSB比较字符.CMPSW比较字.)SCAS串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一装入AL或AX中.(LODSB传送字符.LODSW传送字.LODSD传送双字.)STOS保存串.是LODS的逆过程.REP当CX/ECX&&0时重复.REPE/REPZ当ZF=1或比较结果相等,且CX/ECX&&0时重复.REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX&&0时重复.REPC当CF=1且CX/ECX&&0时重复.REPNC当CF=0且CX/ECX&&0时重复.五、程序转移指令1&无条件转移指令(长转移)JMP无条件转移指令CALL过程调用RET/RETF过程返回.2&条件转移指令(短转移,-128到+127的距离内)(当且仅当(SFXOROF)=1时,OP1循环控制指令(短转移)LOOPCX不为零时循环.LOOPE/LOOPZCX不为零且标志Z=1时循环.LOOPNE/LOOPNZCX不为零且标志Z=0时循环.JCXZCX为零时转移.JECXZECX为零时转移.4&中断指令INT中断指令INTO溢出中断IRET中断返回5&处理器控制指令HLT处理器暂停,直到出现中断或复位信号才继续.WAIT当芯片引线TEST为高电平时使CPU进入等待状态.ESC转换到外处理器.LOCK封锁总线.NOP空操作.STC置进位标志位.CLC清进位
回答者:钱其明
Mail: Copyright by ;All rights reserved.}

我要回帖

更多关于 vb代码翻译器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信