首页
社区
课程
招聘
[讨论]绕过tp关于debugport清零的问题
发表于: 2011-4-9 18:38 10388

[讨论]绕过tp关于debugport清零的问题

2011-4-9 18:38
10388
看了 http://bbs.pediy.com/showthread.php?t=126802 这篇帖子

参考他的代码 基本的代码都写完了  就是debugport清零这块还是有问题

//首先干掉监视函数
  while (1)
  {
    if ((*(pd-1) == 0xcc) && (*(pd-2) == 0xcc))
    {
      KdPrint(("pd首地址:%0X \n",(ULONG)pd));
      WPOFF();  //清除CR0
      //提升IRQL中断级
      Irql=KeRaiseIrqlToDpcLevel();
      //写入
      RtlCopyMemory(pd,C390,2);
      //恢复Irql
      KeLowerIrql(Irql);
      WPON();    //恢复CR0
      break;
    }
    pd--;
  }
这是那帖子的代码

我按照他的思路 用枚举模块+偏移的方法找到了 他清0的地方
又参考这篇帖子 http://bbs.pediy.com/showthread.php?t=127246&highlight=debugport+%E7%AE%80%E5%8D%95+%E5%8D%95%E5%88%86+%E5%88%86%E6%9E%90+%E6%9E%90%E6%9F%90+%E6%9F%90%E6%B8%B8+%E6%B8%B8%E6%88%8F+%E6%B8%85%E9%9B%B6+%E9%9B%B6
用IDA反汇编 对比了下代码 完全一样
BYTE* TX_TesSafeBase_2638;
  BYTE* TX_TesSafeBase_4F2C;
  DWORD TX_TesSafeBase_41E0; //清0的代码 函数头
  BYTE* TX_TesSafeBase_379E;

  KdPrint(("TX_TesSafeBase:%0X \n",TX_TesSafeBase));

  BYTE  C390[2] = {0xc3,0x90};

  TX_TesSafeBase_41E0=TX_TesSafeBase+0x41E0;
  KdPrint(("TX_TesSafeBase_41E0:%0X \n",(ULONG)TX_TesSafeBase_41E0));

  KIRQL Irql;
  WPOFF();  //清除CR0
  Irql=KeRaiseIrqlToDpcLevel();
  //写入
  RtlCopyMemory((BYTE*)TX_TesSafeBase_41E0,C390,2); //干掉监视
  KeLowerIrql(Irql);
  WPON();    //恢复CR0 

//----------------------------------------------------  
  TX_TesSafeBase_2638=(BYTE*)TX_TesSafeBase+0x2638;
  KdPrint(("TX_TesSafeBase_2638:%0X \n",TX_TesSafeBase_2638));

  WPOFF();  //清除CR0
  Irql=KeRaiseIrqlToDpcLevel();
  //写入
  RtlCopyMemory((BYTE*)TX_TesSafeBase_2638,C390,2); //干掉第1段清零
  KeLowerIrql(Irql);
  WPON();    //恢复CR0

  ////----------------------------------------------------  
  TX_TesSafeBase_4F2C=(BYTE*)TX_TesSafeBase+0x4F2C;
  KdPrint(("TX_TesSafeBase_4F2C:%0X \n",TX_TesSafeBase_4F2C));

  WPOFF();  //清除CR0
  Irql=KeRaiseIrqlToDpcLevel();
  //写入
  RtlCopyMemory((BYTE*)TX_TesSafeBase_4F2C,C390,2); //干掉第2段清零
  KeLowerIrql(Irql);
  WPON();    //恢复CR0

代码应该这样基本就写完了吧 打开OD附加 还是一片空白 过阵子还是被检测到 提示 游戏环境异常 哪位高手帮忙看下啊 研究了10多天了

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我按照那个方法也没去掉清零

原因未知
2011-4-9 19:10
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不懂,我也想知道答案
2011-4-9 20:00
0
雪    币: 251
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
第一篇文章

他是找到 清0的地方,之后把指针移动到函数头部,将整个函数NOP掉。
至少我是这样理解的。。。

一月前我参照他的文章已经解决了DEBUGPORT清0问题。。
2011-4-10 12:07
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码