首页
社区
课程
招聘
[求助]TP不断清零DebugPort是为何?
发表于: 2013-5-17 16:54 5054

[求助]TP不断清零DebugPort是为何?

2013-5-17 16:54
5054
拜读了crazyearl的 “散谈游戏保护那点事~就从_TP开始入手吧”, 也查了一系列关于Anti-debug的文章。只是不太明白为什么 TP要不断清零DebugPort??

   我的理解是:一般可以通过NtQueryInformationProcess来判断_EPROCESS里的DebugPort是否是0来看是否被调试了。如果是返回时0,代表没有调试,如果返回0xFFFFFFFF代表被调试了。
   而TP一直去对DebugPort进行清零,这样的目的是为了让调试器附加时得到程序没有被调试??

不理解,不理解,请人解惑!!

多谢多谢!

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
这个是用来发送调试事件的,不是用来检测NULL=无调试.
驱动菜鸟.理解错了请指正
2013-5-17 17:13
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是因为有几个调试函数里使用了debugport,这样做的目的是为了让相关调试函数返回失败。
例如,DbgkpSetProcessDebugObject,DbgkpQueueMessage 这种Dbgkp看头的函数,他们内部使用了这个debugport的值。
2013-5-17 18:50
0
游客
登录 | 注册 方可回帖
返回
//