(诛仙多开分析文档.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(诛仙多开分析文档

诛仙多开分析文档 (Written By:CoffeeTea 11/9/07) 不知怎么开篇,直接入正题。 诛仙的多开检测,大致分为两个阶段,第一阶段是检测窗口标题和类名,通过系统函数GetWindowTextA,GetClassNameA获取窗口标题及类名,当累计检测数大于等于5时,会随机断开一个连接(断开提示:与服务器连接中断,请重新登录)。第二阶段是检测窗口类名和进程名,通过系统函数GetClassNameA,Process32Next获取窗口类名和进程信息,当累计检测数大于等于5时,会随机断开一个连接。 在第一阶段,可以通过修改游戏主程序中,存放的类名字符串和标题字符串来达到跳过检测,可以用UltraEdit32或WinHEX打开游戏的elementclient.exe,有哪些信誉好的足球投注网站“ZelementClient Window”和“Element Client”的UNICODE码来找到该位置,将这两个字符串任意修改即可。 在后来,加强了对多开的检测,会要求各客户端返回正确的窗口标题和类名,一但是修改过的,会采取封号及掉线的方法惩罚该号。 这个时候,需要通过API HOOK的方式,HOOK GetWindowTextA及GetClassNameA来实现多开,API HOOK的原理,就是在程序调用系统函数的时候,先一步进入到我们自己的处理函数,视情况处理数据,欺骗检测。当要获取的窗口句柄时当前游戏窗口时,我们就返回正确的字符串,而是其它游戏窗口时,就返回其它字符串。 在第二阶段,此时,不仅针对游戏窗口标题和类名,且遍历系统进程,获取游戏进程个数来检测多开,使用CreateToolhelp32Snapshot函数创建进程快照,使用Process32First,Process32Next循环快照句柄的链表结构获取进程相关信息。依然使用GetTopWindow,GetWindow,GetWindowTextA,GetClassNameA来获取窗口相关信息。这个时候,通过HOOK GetClassNameA和Process32Next即可达到多开的目的。 此后,好景不长,诛仙增加了对API HOOK方式的检测,对Process32Next这个函数的第一字节进行了E8,E9的检测,通过机器码转换汇编码,可以知道,E8是call的机器码,即API HOOK方式中的一种,改API函数头5字节,转到我们自己的函数的方法。而E9是jmp的机器码,也是一种API HOOK的方法,都是为了转到我们自己的函数去处理。 于是,采用jmp call来HOOK的方式失效了,然后出现了很多种对API函数头做修改的方法,例如以下几种: mov eax, 0xXXXXXXXX ;将自己函数的入口写入eax寄存器 jmp eax 或 call eax ;转入自己的函数执行操作 push 0xXXXXXXXX ;将自己函数的入口压入堆栈 retn ;转入自己的函数执行 xor eax, eax ;EAX清零 push 0xXXXXXXXX ;还是将自己的函数入口压栈 pop eax ;将自己的函数入口推出到EAX jmp eax ;转入自己的函数执行 更有甚者,模拟API函数头,比如Process32Next入口为 mov edi, edi push ebp mov ebp, esp 改写为以下方式 mov edi, edi push ebp mov ebp, esp pop ebp mov eax, 0xXXXXXXXX jmp eax 其实际意思,防止对API函数头的检测,将修改转入了后续几句指令,避开对头的检测。 做API HOOK的一个原则,堆栈平衡,保护寄存器数据,这一点很重要。 对于这些HOOK方式,基于原则的基础上,函数头可以做任意修改,尽可能的隐藏自己的修改,达到绕过检测的目的。 关于反外挂检测代码的拦截 对于反外挂检测代码,通过用OD跟踪,下API断点,可以很容易的拦截到检测代码所在,方法与对send的拦截一样,首先,必须要熟悉一些API,就是在多开检测中,需要用到哪些API,以及有哪些多开检测的方法。 对于窗口标题及类名的检测,我们知道需要用到GetWindowTextA,GetClassNameA,或GetWindowTextW,GetClassNameW,如何枚举窗口呢?常用的方法是使用EnumWindows,和GetWindow,对于此,我们

文档评论(0)

shit0605 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档