- 注册时间
 - 2010-6-12
 
- 最后登录
 - 2019-9-29
 
- 在线时间
 - 53 小时
 
 
 
 
 
终身VIP会员 
    
	- 魔鬼币
 - 55183 
 
 
 
 | 
 
标 题: 【分享】如何过TP清0的方法(最新TP有三处清0) 
作 者: wangweilll 
时 间: 2012-02-01,17:58:04 
链 接: http://bbs.pediy.com/showthread.php?t=145968 
 
由于某人说的兄弟一气之下删除了贴子 
 
现在想来也是像其网友说可能触犯某些的饭碗~~~~~~~~~~~~~~ 
现在恢复也增加了一些东西 
希望朋友多给些意见 
这段时间一直在研究tp驱动 
我觉得TP清0相对难一点其他都比较间单~~~ 
在这要感谢这篇文章的兄弟 
http://bbs.pediy.com/showthread.php?t=126802&highlight=tp 
虽然用他给出的代码没有过掉TP但是用他给出的思路 
分析总结了crazyearl一下: 
1.定位TP驱动模块的首地址. 
2.如何定位特征大家可以参考 
http://bbs.pediy.com/showthread. ... highlight=DebugPort 
这篇文章我通过IDA  XT找到的特征码 
3.再找岀一处监控.二处清0代码的首址!!!!!!!!!!! 
这重点呢 
3.找到这三处的首地址后注意了先要干掉监控在干掉清0 
 
NTSTATUS My_Recovery_Debugport() 
{ 
  NTSTATUS stats; 
 
   
   
   KIRQL  Irql; 
 
  BYTE  C390[2] = {0xc3,0x90}; 
 
   
  //首先干掉监视函数 
   
       
      WPOFF();  //清除CR0 
      //提升IRQL中断级 
      Irql=KeRaiseIrqlToDpcLevel(); 
      //写入 
      RtlCopyMemory(ps2,C390,2); 
      //恢复Irql 
      KeLowerIrql(Irql); 
      WPON();    //恢复CR0 
 
  return  STATUS_SUCCESS; 
} 
   
  //干掉2个SD 
NTSTATUS My_Recovery_Debugport1() 
{ 
  NTSTATUS stats; 
 
   
   
   KIRQL  Irql; 
 
  BYTE  C390[2] = {0xc3,0x90};   
       
      WPOFF();  //清除CR0 
      //提升IRQL中断级 
      Irql=KeRaiseIrqlToDpcLevel(); 
      //写入 
      RtlCopyMemory(ps,C390,2); 
      //恢复Irql 
      KeLowerIrql(Irql); 
      WPON();    //恢复CR0 
 
  return  STATUS_SUCCESS; 
} 
NTSTATUS My_Recovery_Debugport2() 
{ 
  NTSTATUS stats; 
 
   
   
   KIRQL  Irql; 
 
  BYTE  C390[2] = {0xc3,0x90};      
   
      WPOFF();  //清除CR0 
      //提升IRQL中断级 
      Irql=KeRaiseIrqlToDpcLevel(); 
      //写入 
      RtlCopyMemory(ps1,C390,2); 
      //恢复Irql 
      KeLowerIrql(Irql); 
      WPON();    //恢复CR0 
     
 
  return  STATUS_SUCCESS; 
} 
 
这是修改crazyearl的代码我没有用他找特征码的代码自己写了一段汇编代码找到了首地址 
哈如何查找特征码的代码我就不发了 
因为现在许多都靠过TP驱动吃饭>> 
 
我想说  crazyearl  的方法是有效地 
 
清0如何查找及定位我的工具是Syser 进行本地调试. 
由于对于此调试器也不太会用定位 EPROCESS+BC 地址只好用windbg.exe在本地内核调试命今窗口 
 
 
 
就可找到你所进程的信息 
2.  打开Syser Loader 按Ctrl+F12并在命今行下 
bpm    EPROCESS+BC  w 
bpm  是下断指今 
EPROCESS+BC   就用我说吧不知就 
w       写访问 
 
下好断点就F5一下就会断下来记录下清0地址(EBXXXXXX) 
呵呵好像最新TP有三个清0就F5在两次并记录下清0地址.(要注意提取出特征握) 
3.现在就找监控.我记录的清0地址就要用上了在命今行下 
bc XXXXXXXX    清除断点 
bpm   EBXXXXXX   rw  
F5一下就可断在监控代码段 .(要注意提取出特征握) 
 
不多说了~~~~~~~~~~~~ 
 
最新TP要处理三处请0一处监控~~~~~~~~曰第三处有点变态呵呵调试兄弟 
花差不多两天时间最后给我呵呵废话不多说了 
 |   
 
 
 
 |