首页
社区
课程
招聘
[求助]求教关于tp更新后双机调试问题
发表于: 2012-10-20 09:45 14039

[求助]求教关于tp更新后双机调试问题

2012-10-20 09:45
14039
论坛帖子中几乎所有过tp双机调试的方法都已失效
修改KdDisableDebugger头部被检测,je jne跳转重启,恢复KdSendPacket、KdReceivePacket 会重启

使用VirtualKD还是无效,hidekd只在tp第一次加载就停下了

这个问题困扰我好几天了,请教各位大大这个双机调试到底要怎么才能过? 我不是伸手党,我只需要一个指导方向就可以了,我可以自己去研究的,在此先谢谢了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 209
活跃值: (813)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先干掉TP所有的内核定时器和内核线程,再才谈得上做其它的操作!
你看它每个Hook地方的反汇编代码,好几个地方都有out指令的...
2012-10-20 13:40
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
额,现在的TP(TesSafe.sys,Ver:1.15.0.542)似乎没有HOOK KdSendPacket、KdReceivePacket吧,
你的是老版本的?
2012-10-20 14:52
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢惊电的回复
我为了先看效果,就用了pt把dpc、io、回调函数、内核线程全摘除和停止了,之后自己在驱动中调用KdEnableDebugger,可没效果,windbg还是断不下来,不知道是不是其他地方还有检测?
2012-10-20 15:12
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢iwantbmw的回复
我把版本更新了,用工具确实没发现这两个函数被hook,但用工具摘除了一些监控后依然无法断下来,不知道是什么原因,能否指点一下?
2012-10-20 15:21
0
雪    币: 209
活跃值: (813)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
除了上面那些地方,还有以下地方你没处理:

DebugPort清零(4处)  检测(2处)

KdDisableDebugger

DbgkpSetProcessDebugObject
DbgkpQueueMessage

NtGetContextThread
NtSetContextThread
2012-10-20 15:28
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
再次感谢
DbgkpSetProcessDebugObject
DbgkpQueueMessage

NtGetContextThread
NtSetContextThread
之前只以为这几个函数和od调试有关,没想到和双机也有关系
其实我想过双机调试就是为了找DebugPort的位置的,关键是断不下来,真不知道有没有其他的办法找DebugPort的位置?
2012-10-20 15:46
0
雪    币: 194
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
你好,我在也整这个保护。请教下

我处理了TP的
NtOpenProcess
NtOpenThread
KiAttachProcess
NtRead/WriteMemory
DbgkpSetProcessDebugObject
DbgkpPostFakeThreadMessages
DbgkpSendApiMessage
DbgkpPostFakeModuleMessages

为什么还是无法附加。。。
2012-10-20 16:19
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
请问你是怎么过双机调试的啊,能稍微透露点方法吗?
2012-10-20 16:57
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我比较菜,用的是暴力NOP的方法,就是把TesSafe调用反双机的函数的地方都NOP掉,这样的结果是可以双机,但CPU占用似乎挺高,可能有死循环。
2012-10-21 10:07
0
雪    币: 107
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼上强大暴力!
2012-10-21 14:30
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
感谢感谢
昨天由于有事急着出门所以按照你的方法试了一下,我不知道是不是我没弄好,那三条指令执行后g运行后就重启了,我以前试过修改tp保护的代码,但全部都会重启,我想它的代码应该是被保护起来了
2012-10-22 14:33
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我按照这篇帖子 http://bbs.pediy.com/showthread.php?t=148815 改掉以下函数DebugPort函数的位置,绕HOOK是用的重加载内核,不想去修改TP代码,为什么附加后看不到代码呢,ALT+C能显示代码了,但是也看不到模块
而且加载了双内核,OD附加的时候还是会去调用旧内核的dbg相关函数,只有把新旧内核访问DebugPort的地方都改掉,下断点才有用,求高人答疑看不到模块,也不能bp API这样下断
  ULONG KiDispatchException;        //1处
  ULONG NtQueryInformationProcess;      //1处
  ULONG PspCreateProcess;        //1处
  ULONG PsGetProcessDebugPort;      //1处
  ULONG PsIsProcessBeingDebugged;      //1处
  ULONG NtTerminateProcess;        //1处
  ULONG PspTerminateProcess;      //1处
  ULONG PspExitThread;        //1处
  ULONG PspProcessDelete;        //3处
  ULONG ObpCloseHandleTableEntry;      //1处
  ULONG ObpCloseHandle;        //1处
  ULONG MmCreatePeb;        //1处
  ULONG DbgkCreateThread;        //1处
  ULONG DbgkExitThread;        //1处
  ULONG DbgkExitProcess;        //1处
  ULONG DbgkMapViewOfSection;      //1处
  ULONG DbgkUnMapViewOfSection;      //1处
  ULONG DbgkpMarkProcessPeb;      //1处
  ULONG DbgkpCloseObject;        //3处
  ULONG DbgkCopyProcessDebugPort[3];      //4处
  ULONG DbgkOpenProcessDebugPort;      //2处
  ULONG DbgkpQueueMessage;        //1处
  ULONG DbgkClearProcessDebugObject;      //2处
  ULONG DbgkpSetProcessDebugObject[5];      //5处
  ULONG DbgkForwardException;      //1处
2012-10-22 16:00
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
http://www.eyybc.com/thread-418783-1-1.html
不用对tensafe。sys做任何手脚,直接单机调试~
2012-10-22 16:49
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我的是虚拟机中的XP SP3系统,游戏是地下城,测试OK,不需要其他额外的操作。
如果是其他游戏可能情况不同吧。
大致思路应该都差不多吧。
2012-10-22 21:11
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
感谢回复
我来晚了,帖子好像已经被删掉了
2012-10-24 13:52
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
嗯,感谢你的帮助
2012-10-24 13:54
0
雪    币: 235
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
他有个地方是循环检查的,就是个死循环检查KdDebugerEnable 的,所以你nop掉以后就CPU奇高了!
2013-1-21 01:18
0
雪    币: 219
活跃值: (783)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
19
你说的是VT技术吧
2013-1-21 07:17
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
他的贴子我看了,是改造win2003的内核过精零
2013-1-27 00:02
0
雪    币: 508
活跃值: (202)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
21
干掉二处检测在
修改函数头 jne je 就OK了
2013-2-4 21:55
0
游客
登录 | 注册 方可回帖
返回
//