注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

狙击外挂13  

2013-08-06 20:45:46|  分类: 外挂 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 反挂起失败。功能不是很稳定,所以放弃了开发。分享一下自己的思路吧。

我们看一下KTHREAD的结构:
   +0x16c SuspendApc       : _KAPC
   +0x19c SuspendSemaphore : _KSEMAPHORE
   +0x1b0 ThreadListEntry  : _LIST_ENTRY
   +0x1b8 FreezeCount      : Char
   +0x1b9 SuspendCount     : Char
在调用SuspendThread时,SuspendCount 自加1;如果大于0表示挂起了。调用ResumeThread时,SuspendCount 自减1;如果等于0,系统会恢复线程。
当挂起和恢复时,FreezeCount必须为0,否则挂起和恢复操作都直接pass了 。所以,可以修改 SuspendCount 和  FreezeCount来达到反挂起的目的。

对于挂起某一个线程的,就比较简单了,加心跳检测 或者时间点校验,即可。一些外挂对于平台的挂起,采用了挂起整个平台进程(所有线程),或者强制结束平台进程的方式。所以,心跳检测 或者时间点校验 都是无效的了。而平台进程本身的地位不断在弱化,加之存在不稳定的可能性,所以无法要求用户保持平台进程始终存在(和他们定的策略有关)。

当然,部分外挂采用了劫持网络的方式。而这种方式也是无法保护的。这也和策略有关,加网络心跳的提议也被否决。而如果仅仅加一个心跳服务器也是不可行的,因为可能会被拦截,所以心跳只能加在核心的服务器(如登录服务器)。

By:zhanyonhu
  评论这张
 
阅读(499)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016