过tp的双机调试

过tp的双机调试

ID:36229683

大小:507.00 KB

页数:11页

时间:2019-05-07

过tp的双机调试_第1页
过tp的双机调试_第2页
过tp的双机调试_第3页
过tp的双机调试_第4页
过tp的双机调试_第5页
资源描述:

《过tp的双机调试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、过TP的双机调试:KdDisableDebugger//调用了该函数禁止双机调试KdSendPacket//对该函数进行HOOKKdRecvPacket//对该函数进行HOOK,这两个函数是物理机与虚拟机发送与接收数据的函数TP针对双机调试做了如上处理。KdSendPacket、KdRecvPacket他们俩是双机调试时收发调试信息的,TP处理掉了他们。意味着windbg的调试信息无法发送至调试系统。KdDisableDebugger,TP会直接调用它,关闭掉内核调试。至于收发调试信息,不管了。处理它俩挺麻烦的。

2、可以用工具代替。VirtualKD这个工具辅助双机调试的。自己实现了调试信息收发。用他代替就可以了,调试反应速度还蛮快的。有他就不用处理KdSendPacket,KdRecvPacket了。只剩下KdDisableDebugger了,那就不让TP调用呗,直接给返回了,仅仅这样当然不行,TP还会自己实现KdDisableDebugger的函数,所以只是单纯让他返回不行。本教程针对DNF来测试,DNF共调用了两个版本的TP,登陆前调用了一次,登陆后还调用了一次,因此要过它的双机调试就要过两次。先来看一下windows

3、泄露的代码中KdDisableDebugger函数的实现吧:KdDisableDebugger(VOID){KIRQLoldIrql;KeRaiseIrql(DISPATCH_LEVEL,&oldIrql);KdpPortLock();if(!KdDisableCount){KdPreviouslyEnabled=KdDebuggerEnabled&&(!KdPitchDebugger);if(KdDebuggerEnabled)//KdDebuggerEnabled值为1则在调试状态{KdpSuspendAll

4、Breakpoints();KiDebugRoutine=KdpStub;//对KiDebugRoutine写入KdpStub值表示禁止调试KdDebuggerEnabled=FALSE;//KdDebuggerEnabled值为0则为禁止调试状态}}KdDisableCount++;KdpPortUnlock();KeLowerIrql(oldIrql);}开启虚拟机,首先用windbg下断点:bpKdDisableDebugger,然后在虚拟机中开启游戏,在TP调用该函数时断了下来,可以用Alt+7来打开反汇

5、编窗口:nt!KdDisableDebugger:804f74388bffmovedi,edi//断在了这里,也就是函数的首地址804f743a55pushebp804f743b8becmovebp,esp804f743d51pushecx804f743eb102movcl,2804f7440ff15f4864d80calldwordptr[nt!_imp_KfRaiseIrql(804d86f4)]804f74468845ffmovbyteptr[ebp-1],al804f7449e81c010000calln

6、t!KdpPortLock(804f756a)804f744e833dc8c6548000cmpdwordptr[nt!KdDisableCount(8054c6c8)],0804f7455753ajnent!KdDisableDebugger+0x59(804f7491)804f7457a0c1c65480moval,byteptr[nt!KdDebuggerEnabled(8054c6c1)]804f745c84c0testal,al804f745e7410jent!KdDisableDebugger+0x3

7、8(804f7470)804f7460803dfc60548000cmpbyteptr[nt!KdPitchDebugger(805460fc)],0804f7467c605ccc6548001movbyteptr[nt!KdPreviouslyEnabled(8054c6cc)],1804f746e7407jent!KdDisableDebugger+0x3f(804f7477)804f7470c605ccc6548000movbyteptr[nt!KdPreviouslyEnabled(8054c6cc)],

8、0804f747784c0testal,al804f74797416jent!KdDisableDebugger+0x59(804f7491)804f747be89e791600callnt!KdpSuspendAllBreakpoints(8065ee1e)804f7480c705e430558022794f80movdwordptr[nt!KiDebugRoutine

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。