关于魔兽T人和延迟的恶劣挂原理及实现
现如今在平台打魔兽,全图泛滥,基本上每一把都有好几个开图的,而且好多主机开延迟挂 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人和延迟的恶劣挂原理及实现相关推荐
- 怀旧服你与聊天服务器的连接已经中断,让聊天也“飞一会”,魔兽怀旧服延迟问题加剧,玩家吐槽亮了...
原标题:让聊天也"飞一会",魔兽怀旧服延迟问题加剧,玩家吐槽亮了 [游戏没有圈儿]<魔兽世界>怀旧服开启之后,伴随大量人潮涌入,玩家井喷增长似乎是一瞬间的事儿?不过随着 ...
- war3联机对战原理以及T人挂原理简述
魔兽是游戏数据传输时基于TCP连接,此时主机作为TCP的服务端,非主机是客户端.但是没办法在Internet上实现两个非服务器主机之间的直接TCP连接(这个可以看P2P的实现原理).那对战平台是怎么实 ...
- cache 访问延迟背后的计算机原理
简介:本文介绍如何测试多级 cache 的访存延迟,以及背后蕴含的计算机原理. CPU 的 cache 往往是分多级的金字塔模型,L1 最靠近 CPU,访问延迟最小,但 cache 的容量也最小.本文 ...
- rabbitmq 延迟队列_Delayed Message 插件实现 RabbitMQ 延迟队列
延迟队列是为了存放那些延迟执行的消息,待消息过期之后消费端从队列里拿出来执行. DLX + TTL 方式存在的时序问题 对于延迟队列不管是 AMQP 协议或者 RabbitMQ 本身是不支持的,之前有 ...
- python延时队列_如何通过Python实现RabbitMQ延迟队列
最近在做一任务时,遇到需要延迟处理的数据,最开始的做法是现将数据存储在数据库,然后写个脚本,隔五分钟扫描数据表再处理数据,实际效果并不好.因为系统本身一直在用rabbitmq做异步处理任务的中间件,所 ...
- 探讨魔兽dota改建原理
最近装了win7 64位系统发现很多改建软件都不能用了. 反正闲着突然有了去写个改建软件的冲动. 我是个初学者,一开始就有了很多方面的难点,希望路过的大侠多多指点. 注意大家不要推荐某某改建软件,我需 ...
- tadf发光原理 热活化延迟荧光(TADF)原理是什么?
热活化延迟荧光(TADF)原理是什么? tadf发光原理 如图1-d所示,捕获三线态激子更加有效的方法是通过T1到SI之间的反系间窜越(RISC),即热活性延迟荧光(TADF).根据Hund 规则,因 ...
- 从0开始的技术美术之路(十六)延迟渲染
本篇参考 "技术美术百人计划"·霜狼_may : <Shader入门精要>第九章·冯乐乐女神著: Unity官方手册 抗锯齿相关的大致了解 延迟渲染 手机TBDR框架 ...
- LINQ之路 6:延迟执行(转载)
LINQ中大部分查询运算符都有一个非常重要的特性:延迟执行.这意味着,他们不是在查询创建的时候执行,而是在遍历的时候执行(换句话说,当enumerator的MoveNext方法被调用时).让我们考虑下 ...
最新文章
- 在ESXi5,1,ESXi5.5安装异步驱动程序
- 扩展32KRAM的STC8H8K信号采集版
- from flask.ext.wtf import Form 报错 ModuleNotFoundError: No module named 'flask.ext'
- 19、HTML文件上传域
- linux移动文件 rf参数_linux下文件的复制、移动与删除命令为:cp,mv,rm
- 换行符‘/n’和回车符‘/r’ 区别
- 过滤器 和 拦截器 6个区别,别再傻傻分不清了
- Java程序的方法设计
- MT6573芯片资料集锦MT6575入门手册 V0.2
- linux下imwbr1进程,清除挖矿程序(imWBR1,ddg,wipefs),亲测可用
- UOJ 【UR #4】追击圣诞老人 题解
- python爬虫需要cookie_python爬虫(六) Cookie
- 天猫“大数据”杀熟,如何避免多花冤枉钱方法总结
- Java “constant string too long” 编译错误
- Cassandra笔记
- 如何将爱奇艺视频qsv格式转换为FLV格式
- 淘宝价格监控erp选品,API接口数据可高并发
- Aspectj表达式
- 半导体材料 MOOC学习记录 第十四章 新型半导体材料SiC
- RSA由密文解密的奇偶性确定原始明文
热门文章
- 判断手机号是否可注册淘宝
- 博客常见线条背景动效-JavaScript
- 广东工业大学 Anyviewce C语言 习题八
- 出国留学考试指导大全:托福85分是个坎儿
- ubuntu2004安装wine 7.21(利用源码包下载编译的方式)
- java习题4.1-将学生的学习成绩按不同的分数段分为优、良、中、及格和不及格五个登记,从键盘上输入一个0~100的成绩,输出相应的等级。要求用switch语句实现
- python 写脚本 获取qq好友地理位置_Python获取统计自己的qq群成员信息的方法
- python文件操作3--批量修改文件后缀名
- 穷鬼、酒鬼、色鬼、赌鬼
- 软件测试中一般术语的的英文缩写