诛仙多开分析文档.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
诛仙多开分析文档 (Written By: CoffeeTea 11/9/07) 不知怎么开篇,直接入正题。 诛仙的多开检测,大致分为两个阶段,第一阶段是检测窗口标题和类名,通过系统函数 GetWindowTextA, GetClassNameA获取窗口标题及类名,当累计检测数大于等于5时,会 随机断开一个连接(断开提示:与服务器连接中断,请重新登录)。第二阶段是检测窗口类 名和进程名,通过系统函数GetClassNameA, Process32Next获取窗口类名和进程信息,当 累计检测数人于等于5吋,会随机断开一个连接。 在第一阶段,对以通过修改游戏主程序中,存放的类名字符串和标题字符串来达到跳过 检测,可以用 UltraEdit32 或 WinHEX 打开游戏的 elementclient.exe,搜索 aZelementClient Window”和uElement Client,,的UNICODE码来找到该位置,将这两个字符串任意修改即 叭 在后来,加强了对多开的检测,会要求各客户端返回正确的窗口标题和类名,一但是修 改过的,会采取封号及掉线的方法惩罚该号。 这个时候,需要通过 API HOOK 的方式,HOOK GetWindowTextA 及 GetClassNameA 来实现多开,API HOOK的原理,就是在程序调用系统函数的时候,先一步进入到我们自C 的处理函数,视情况处理数据,欺骗检测。当要获取的窗口句柄时当前游戏窗口时,我们就 返回正确的字符串,而是其它游戏窗口时,就返回其它字符串。 在第二阶段,此时,不仅针对游戏窗口标题和类名,且遍历系统进程,获取游戏述程个 数來检测多开,使川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 c汕来HOOK的方式失效了,然后出现了很多种对API函数头做修改 ;将自 ;将自C函数的入口写入eax寄存器 ;转入自C的函数执行操作 mov eax, OxXXXXXXXX jmp eax 或 call eax push OxXXXXXXXXretn push OxXXXXXXXX retn ;将自己函数的入口压入堆栈 ;转入自己的函数执行 xor eax, eax xor eax, eax push OxXXXXXXXX pop eax jmp eax ;EAX清零 ;还是将自己的函数入口压栈 ;将自己的函数入口推出到EAX ;转入自己的函数执行 更有其者,模拟API函数头,比如Process32Next入口为 mov edi, edi push ebp mov ebp, esp 改写为以下方式 mov edi, edi push ebp mov ebp, esp pop ebp mov eax, OxXXXXXXXX jmp eax 其实际意思,防止对API函数头的检测,将修改转入了后续几句指令,避开对头的检 测。 做API HOOK的一个原则,堆栈平衡,保护寄存器数据,这一点很重要。 对于这些HOOK方式,基于原则的基础上,函数头可以做任意修改,尽可能的隐藏自 C的修改,达到绕过检测的目的。 关于反外挂检测代码的拦截 对于反外挂检测代码,通过用OD跟踪,F API断点,可以很容易的拦截到检测代码 所衣,方法与对send的拦截-?样,首先,必须要熟悉一些API,就是在多开检测中,需要 用到哪些API,以及有哪些多开检测的方法。 对丁窗口标题及类名的检测,我们知道需要用到GetWindowTextA, GetClassNameA, 或GetWindowTextW, GetClassNcimeW,如何枚举窗口呢?常用的方法是使用Enum Windows, 和GetWindow,对于此,我们可以在这些函数上下执行断点,断下后,直接从OD的堆栈窗 口观察其调用来源,CTRL+F9返回到该调用点,分析上下文,看焰否是检测部分,通过反 复的跟踪下断,就可以拦

文档评论(0)

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

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

1亿VIP精品文档

相关文档