现如今在平台打魔兽,全图泛滥,基本上每一把都有好几个开图的,而且好多主机开延迟挂 T人挂,非常恶劣的行为,打不过开挂T人....

从魔兽机制上讲,是没办法防止主机踢人的,你跟主机连接,主机就可以获取你的IP地址和端口,断开你连接没办法。

我对其中踢人和延迟比较感兴趣,所以自己编写着试了试,完全乃杀人放火之必备利器!

延迟挂和T人挂原理都差不多,延迟就是在IP数据包发送之前,加个延迟函数sleep(),然后再把数据包返回给你,

这样就造成你比如释放技能,要过好久才有反应,如果延迟比较高,则直接掉线;

而T人则直接断开你的连接,就造成掉线了。

魔兽通过winsocket 传输数据,使用的是 wsock32.dll 我们可以HOOK "send" 和 "sendto",在WSPRecv()上做手脚;

比如要延迟玩家,可以Sleep()几秒后再把数据发送出去。


int WSPAPI WSPRecv(  SOCKET           s,  LPWSABUF     lpBuffers,  DWORD            dwBufferCount, LPDWORD          lpNumberOfBytesRecvd,  LPDWORD          lpFlags,  LPWSAOVERLAPPED  lpOverlapped,  LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,  LPWSATHREADID    lpThreadId,  LPINT            lpErrno  )
{  int     iError;  int iRet;  //判断如果开启全部延迟 则全部延迟  if(g_AllToBlock)  {  Sleep(g_DelaySec);    }  else if(g_IsDelay)  {  //s_Socket里面存的是玩家的Socket 判断如果不为null 则延迟  for (int i=0;i<10;i++)  {  if(s_Socket[i]!=NULL && s==s_Socket[i])  Sleep(g_DelaySec);   }   }  return g_NextProcTable.lpWSPRecv(s, lpBuffers, dwBufferCount, lpNumberOfBytesRecvd, lpFlags, lpOverlapped  , lpCompletionRoutine, lpThreadId, lpErrno);
}

然后我们可以拦截WSPSend()函数来得到聊天信息,判断是否开启踢人和延迟;

int WSPAPI WSPSend(SOCKET            s,LPWSABUF      lpBuffers,DWORD         dwBufferCount,LPDWORD           lpNumberOfBytesSent,DWORD           dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,LPWSATHREADID   lpThreadId,LPINT            lpErrno)
{unsigned char * bp=(unsigned char *)lpBuffers->buf;DWORD i=0;BOOL flag=TRUE;u_long bufferlen=lpBuffers->len;int      iError;if(*(bp+i) == 0xf7){if(*(bp+i+1) == 0x0F){            if(*(bp+i+12)=='-' ){if(*(bp+i+13)=='d' && *(bp+i+14)=='e'&& *(bp+i+15)=='l' && *(bp+i+16)=='a' && *(bp+i+16)=='y'){ g_DelaySec= 2000;//延迟2000毫秒AddSocket(s);   //把该玩家Socket存到数组里面g_IsDelay=TRUE;  }else if( *(bp+i+13)=='a' && *(bp+i+14)=='g'){     g_DelaySec =2000;g_AllToBlock=TRUE;               }return 0;}}} return g_NextProcTable.lpWSPSend(s, lpBuffers, dwBufferCount, lpNumberOfBytesSent, dwFlags, lpOverlapped, lpCompletionRoutine, lpThreadId, lpErrno);
}

我在BreezeMH V2.5的基础上编写了延迟功能,测试开启延迟,对方根本没办法玩!

  聊天输入-ag延迟全部玩家 连续打几次 -ag 全部掉线  加分或VS显示‘游戏由于网络异常结束’

  私聊-laji 延迟对方  延迟毫秒数可以在配置文件修改 点击托盘的M图标打开配置文件 修改默认延迟毫秒  如果需要对方掉线 请在配置文件把默认延迟毫秒设置高点

  随便找个人私聊 -jia 增加延迟 -jian 减少延迟  每次加减延迟毫秒可以在配置文件修改

  聊天输入-as 取消所有延迟  为了防止打错命令 所有“-”开头的命令对方都看不到

以下是软件的下载地址:
http://files.cnblogs.com/intcry/%E4%BC%98%E5%8C%96%E7%89%88.rar

此软件仅供学习交流使用

转载于:https://www.cnblogs.com/intcry/archive/2011/08/30/2159524.html

关于魔兽T人和延迟的恶劣挂原理及实现相关推荐

  1. 怀旧服你与聊天服务器的连接已经中断,让聊天也“飞一会”,魔兽怀旧服延迟问题加剧,玩家吐槽亮了...

    原标题:让聊天也"飞一会",魔兽怀旧服延迟问题加剧,玩家吐槽亮了 [游戏没有圈儿]<魔兽世界>怀旧服开启之后,伴随大量人潮涌入,玩家井喷增长似乎是一瞬间的事儿?不过随着 ...

  2. war3联机对战原理以及T人挂原理简述

    魔兽是游戏数据传输时基于TCP连接,此时主机作为TCP的服务端,非主机是客户端.但是没办法在Internet上实现两个非服务器主机之间的直接TCP连接(这个可以看P2P的实现原理).那对战平台是怎么实 ...

  3. cache 访问延迟背后的计算机原理

    简介:本文介绍如何测试多级 cache 的访存延迟,以及背后蕴含的计算机原理. CPU 的 cache 往往是分多级的金字塔模型,L1 最靠近 CPU,访问延迟最小,但 cache 的容量也最小.本文 ...

  4. rabbitmq 延迟队列_Delayed Message 插件实现 RabbitMQ 延迟队列

    延迟队列是为了存放那些延迟执行的消息,待消息过期之后消费端从队列里拿出来执行. DLX + TTL 方式存在的时序问题 对于延迟队列不管是 AMQP 协议或者 RabbitMQ 本身是不支持的,之前有 ...

  5. python延时队列_如何通过Python实现RabbitMQ延迟队列

    最近在做一任务时,遇到需要延迟处理的数据,最开始的做法是现将数据存储在数据库,然后写个脚本,隔五分钟扫描数据表再处理数据,实际效果并不好.因为系统本身一直在用rabbitmq做异步处理任务的中间件,所 ...

  6. 探讨魔兽dota改建原理

    最近装了win7 64位系统发现很多改建软件都不能用了. 反正闲着突然有了去写个改建软件的冲动. 我是个初学者,一开始就有了很多方面的难点,希望路过的大侠多多指点. 注意大家不要推荐某某改建软件,我需 ...

  7. tadf发光原理 热活化延迟荧光(TADF)原理是什么?

    热活化延迟荧光(TADF)原理是什么? tadf发光原理 如图1-d所示,捕获三线态激子更加有效的方法是通过T1到SI之间的反系间窜越(RISC),即热活性延迟荧光(TADF).根据Hund 规则,因 ...

  8. 从0开始的技术美术之路(十六)延迟渲染

    本篇参考 "技术美术百人计划"·霜狼_may : <Shader入门精要>第九章·冯乐乐女神著: Unity官方手册 抗锯齿相关的大致了解 延迟渲染 手机TBDR框架 ...

  9. LINQ之路 6:延迟执行(转载)

    LINQ中大部分查询运算符都有一个非常重要的特性:延迟执行.这意味着,他们不是在查询创建的时候执行,而是在遍历的时候执行(换句话说,当enumerator的MoveNext方法被调用时).让我们考虑下 ...

最新文章

  1. 在ESXi5,1,ESXi5.5安装异步驱动程序
  2. 扩展32KRAM的STC8H8K信号采集版
  3. from flask.ext.wtf import Form 报错 ModuleNotFoundError: No module named 'flask.ext'
  4. 19、HTML文件上传域
  5. linux移动文件 rf参数_linux下文件的复制、移动与删除命令为:cp,mv,rm
  6. 换行符‘/n’和回车符‘/r’ 区别
  7. 过滤器 和 拦截器 6个区别,别再傻傻分不清了
  8. Java程序的方法设计
  9. MT6573芯片资料集锦MT6575入门手册 V0.2
  10. linux下imwbr1进程,清除挖矿程序(imWBR1,ddg,wipefs),亲测可用
  11. UOJ 【UR #4】追击圣诞老人 题解
  12. python爬虫需要cookie_python爬虫(六) Cookie
  13. 天猫“大数据”杀熟,如何避免多花冤枉钱方法总结
  14. Java “constant string too long” 编译错误
  15. Cassandra笔记
  16. 如何将爱奇艺视频qsv格式转换为FLV格式
  17. 淘宝价格监控erp选品,API接口数据可高并发
  18. Aspectj表达式
  19. 半导体材料 MOOC学习记录 第十四章 新型半导体材料SiC
  20. RSA由密文解密的奇偶性确定原始明文

热门文章

  1. 判断手机号是否可注册淘宝
  2. 博客常见线条背景动效-JavaScript
  3. 广东工业大学 Anyviewce C语言 习题八
  4. 出国留学考试指导大全:托福85分是个坎儿
  5. ubuntu2004安装wine 7.21(利用源码包下载编译的方式)
  6. java习题4.1-将学生的学习成绩按不同的分数段分为优、良、中、及格和不及格五个登记,从键盘上输入一个0~100的成绩,输出相应的等级。要求用switch语句实现
  7. python 写脚本 获取qq好友地理位置_Python获取统计自己的qq群成员信息的方法
  8. python文件操作3--批量修改文件后缀名
  9. 穷鬼、酒鬼、色鬼、赌鬼
  10. 软件测试中一般术语的的英文缩写