作 者: 悲歌
首先还是先了解一下DebugPort吧,百度之后得到了如下结果
 -------------------------------此处转贴------------------------------------
每个进程都有一个 数据结构 ,EPROCESS,这个结构是在内核里面的,系统用来标识和管理每一个win进程的基本数据结构.
 
这个结构中包含了一个重要的字段,DebugPort,如果一个进程不在被调试的时候那么就是NULL,否则他是一个指针,win前,这个成员保存的是用于接收调试事件的LPC端口对象指针.发生调试时,系统会向这个端口发送调试信息.
 
Winxp下因为使用了专门用于调试的内核对象DebugObject,所以debugport指向的是一个DebugObject对象,不管是指向LPC端口还是指向调试对象,虽然类似不同吧~~~
但是他们的作用都是用来传递调试事件的,所以debugport中指向的对象,我们就叫做调试端口
 
张奎银大牛,告诉了我们,这个端口是链接调试器进程和被调试进程的纽带~
被调试程序的事件由这个端口发送到调试器进程的。  
(so,某些产品,为了不被调试就一直对这个字段写入0,导致调试事件无法发送,造成了调试器像傻子一样~~)
-----------------------------------------------------------
 
调试内核,最先想到的肯定是windbg,于是LZ碰到了第一个问题,那个T什么的保护禁止了双机调试。下面给出过掉防止双机调试的方法。
 
KDCOM.dll:KdReceivePacket  //这两个是COM串口的接受和发送数据
KDCOM.dll:KdSendPacket      //主要用来方式别人双机调试
上面两个函数几乎可以忽略掉,VirtualKD这个工具自己实现了COM通信替代了上面两个函数。
 
然后是。。。是。。。
KdDisableDebugger,ok过掉对这个函数的调用应该就可以进行双机调试了。
启动 虚拟机 调试模式,windbg对KdDisableDebugger下断点,然后运行游戏。
发现游戏登陆之前windbg就已经断下来了,eb指令对KdDisableDebugger第一行代码写入C3(ret)
 

然后F8单步执行找到调用KdDisableDebugger处
 
仔细看代码不难发现这是一段循环调用KdDisableDebugger的代码。eb对上图中edcaa6d5出写入74过掉此处
F5跑起来会再次断下来,单步执行返回到另一处调用
 
 
尾部mov     dword ptr [ecx],eax这句很关键,不能让他执行,一旦执行windbg就失去通信了
对上图中edcaa803位置写入75然后F5跑起来  再次断下来发现调用位置还是上面这里。
修改CALL EAX上面那行也就是edcaa7c4位置写入75再次跑起来就不会再断下来了 游戏正常运行。
但是游戏登陆以后,保护会出现错误重新加载一次保护,然后按照上面的方法重新过一次就可以了。
 
接下来就等游戏跑起来以后windbg手动断下来,命令行键入!process 0 0回车
得到当前所有进程的EPROCESS对象地址
 
注意这里完成后要让虚拟机尽快跑起来,中断久了游戏会和服务器断开连接。
好了会找到两个游戏进程,接下来虚拟机里面打开任务管理器,查看当前游戏的进程ID转换16进制
 
 
转换后就是上面获取到的CID:0370 www.2cto.com
然后对PROCESS 85f5d228 这个地址+BC处下数据写入断点,+bc就是DebugPort地址了
指令ba w 4[85f5d228 +bc]   //ba指令格式ba Access Size [地址] Access为访问方式Size为监控访问位置大小
 
然后跑起来,立马就会断下来,这里注意多跑几次,有两个地方做了清零如下图
第一处:
 
 
 
第二处:
 
 
 
xor     ecx,ecx
xchg    ecx,dword ptr [eax]
 
还有。。。
 
xor     eax,eax
xchg    eax,dword ptr [edi]
这两个地方。
好了位置找到了,收工。

针对某游戏保护DebugPort清零的一次逆向相关推荐

  1. 来自看雪的手把手调试DebugPort清零

    现在多数程序为了防止调试.基本上都用到了驱动HOOK 内核API. 至于绕过那些HOOK,基本上大家应该已经是没有什么问题了. 估计像我这样的菜鸟也不算多了.研究DebugPort 清0,倒是难倒了我 ...

  2. 散谈游戏保护那点事~就从_TP开始入手吧

    标 题: [原创]散谈游戏保护那点事~就从_TP开始入手吧 作 者: crazyearl 时 间: 2010-12-20,02:37:22 链 接: http://bbs.pediy.com/show ...

  3. 【原创】散谈游戏保护那点事~就从_TP开始入手吧

    标 题:  [原创]散谈游戏保护那点事~就从_TP开始入手吧 作 者: crazyearl 时 间: 2010-12-20,02:37:22 链 接: http://bbs.pediy.com/sho ...

  4. 【转】散谈游戏保护那点事~就从_TP开始入手吧

    转自看雪:http://bbs.pediy.com/showthread.php?t=126802 声明:本文只为研究技术,请所有童鞋切勿使用本文之方法做下那天理难容罪恶不舍之坏事.          ...

  5. CANON废墨清零方法

    I320的打印机,要先用手动清零,然后在用软件调整,才可一完全的清零.I550的是用手动清的.但是I320和I255.I355.I350等机必须要用手动清零. I320的手动清零和清零步骤如下: 1. ...

  6. 第一次使用Egret开发微信小游戏经验总结(包括排行榜排序,每周一数据清零,超越好友等处理)

    最近项目组立项了个小游戏,用Egret(白鹭)开发,本来游戏核心功能2天就完成了,后来准备接入微信好友排行榜的时候,用到了子域,加入分享给好友的时候,图片合成后分享给微信好友有时候不能显示出图片内容. ...

  7. 围观一下tp的游戏保护 一

    普通会员 资 料: 注册日期: Jul 2011 帖子: 73  精华: 9 现金: 453 Kx 致谢数: 5 获感谢文章数:8 获会员感谢数:23 1  2011-09-20 11:43:51   ...

  8. 佳能打印机清零后不显示界面_Vignelli佳能在界面设计中的无形

    佳能打印机清零后不显示界面 Over the last year, for reasons that are not related to this article, I had the chance ...

  9. 极客日报:周鸿祎,微信靠摇妹子起家;红米 K40 未发布就炸?真相来了;滴滴高管立军令状:若触碰安红线指标,全年安全绩效清零...

    一.互联网快讯 1.周鸿祎:微信是靠摇妹子起家 在网上公开的一段视频中,360 董事长周鸿祎谈起了微信的发家史.周鸿祎说道,微信现在是很伟大的一款产品,但是张小龙曾经的一篇自述中提到微信最早做出来的突 ...

最新文章

  1. ACM1881 01背包问题应用
  2. GetCurrentDirectory()函数误区
  3. k8s四种port解析:nodePort、port、targetPort、containerPort
  4. 整理分析自己的软考过程
  5. esp8266接收到的数据如何存放到数组中_Java中HashMap的实现原理
  6. eclipse扩展点_Eclipse扩展点评估变得容易
  7. cmd编译可以通过执行没有结果_Go语言是如何完成编译的
  8. IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
  9. BugkuCTF-MISC题linux与linux2
  10. 【Flink】FileNotFoundException: JAR file does not exist: -ynm -yst
  11. STM8L SPI使用过程记录
  12. 移远百科 | LTE-A关键技术分析
  13. Android打码函数,Android 马赛克(Mosaics)效果
  14. Azure上的物联网产品介绍
  15. 文件夹病毒或1K病毒解决
  16. android 360锁屏清除,“打盹”省电 360清理大师锁屏清理早已实现
  17. 计算机毕业设计-基于神经网络APP-整合Vue+SpringBoot+TensorFlow框架-诗联AI
  18. 什么是云计算, 什么是 IaaS, PaaS, SaaS
  19. windows下载Android系统源码
  20. 3GPP TS 23501-g51 中英文对照 | 5.3.3 Connection Management

热门文章

  1. SpringMVC的数据响应-页面跳转-返回ModelAndView3(应用)
  2. Nacos配置中心-多配置文件加载
  3. ThreadLocal的第二种用法 part2
  4. HDFS的Secondarynamenode工作机制
  5. 日志规范之了解slf4j
  6. 什么是XSS攻击XSS攻击应用场景
  7. spring配置详解-属性注入(p名称空间SPEL表达式)
  8. Dubbo支持的注册中心
  9. spring-others
  10. 5.7.22mysql charset_Mysql5.7.22 坑爹的 `character_set_database`