首页
社区
课程
招聘
[求助]win7 x64最新双机调试总是触发单步异常
发表于: 2018-8-29 03:35 8560

[求助]win7 x64最新双机调试总是触发单步异常

2018-8-29 03:35
8560
这是我现在修改的地方,修改KeDebuggerEnabled,KdPitchDebugger,KiDebugRoutine,和 KdDisableDebugger 

1  KeUpdateRunTime 有两处
         第一处是KdDebuggerEnabled
         第二处是KdPitchDebugger

2. KeUpdateSystemTime
        第一处是KdDebuggerEnabled
        第二处也是KdDebuggerEnabled
        第三处是KdPitchDebugger
    
3. KdPollBreakIn
        第一处是KdPitchDebugger
        第二处是KdDebuggerEnabled
    
共7处全给改掉   然后KdDebuggerEnabled清零,KdPitchDebugger置1

接下来替换KiDebugRoutine的KdTrap为KdStub

然后KdStub  inline跳到KdTrap中

KdDisableDebugger直接Nop  然后ret

这些改完后,我以为会可以了,但是windbg一直会触发4000001e 单步异常,然后我准备调试下KiDispatchException,结果发现这个函数居然被修改了


今天在看雪看到了这个贴子https://bbs.pediy.com/thread-246498.htm    他是win7 32位下,KDCOM某段内存清理了,我现在不知道win7 x64下,TP是不是也这么做的,如果是,那么之前的全局变量的检测就都不需要了吗  有没有大神能解答一下呢,万分感激


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

收藏
免费 0
支持
分享
最新回复 (26)
雪    币: 70
活跃值: (1357)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
单步是游戏抛出的
2018-8-29 10:02
0
雪    币: 302
活跃值: (246)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
3
mknanren 单步是游戏抛出的
但是我windbg中忽略这个异常后,再运行,就一直出现这个异常The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.
The context is partially valid. Only x86 user-mode context is available.


应该怎么解决呢
2018-8-29 11:28
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
找到触发这个异常的线程干掉,或者你接管这个异常
2018-8-29 13:04
0
雪    币: 16
活跃值: (527)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
The context is partially valid. Only x86 user-mode context is available这个东西我只知道当我挂上调试,启动某些进程就是会跳,比如autocad,一起这个程序,就报
2018-8-29 14:36
0
雪    币: 302
活跃值: (246)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
6
fakersaber 找到触发这个异常的线程干掉,或者你接管这个异常
我找到触发这个异常的线程了,然后无论是暂停还是结束,TP都会卡住,就是会一直进行安全扫描,至于接管异常是怎么接管呢
2018-8-29 15:05
0
雪    币: 302
活跃值: (246)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
7
沉醉星渊 The context is partially valid. Only x86 user-mode context is available这个东西我只知道当我挂上调试,启动某些进程就是会跳,比如a ...
我谷歌了下,好像是目标系统是64,程序是32的时候,32触发异常后,windbg就会自动切换成32模式了,可以用 !wow64exts.sw 重新切换到64
2018-8-29 15:07
0
雪    币: 16
活跃值: (527)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
切换到64位之后就不会报这个异常了吗
2018-8-29 15:15
0
雪    币: 302
活跃值: (246)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
9
沉醉星渊 切换到64位之后就不会报这个异常了吗
该报的还是报,因为你没处理这个异常,我这边找的触发这个异常的线程,是TSALogin的主线程,结束掉,游戏就一直卡死。。。
2018-8-29 15:32
0
雪    币: 20
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
帮不上什么忙,没调试过!正准备玩玩这一块
2018-8-31 13:07
0
雪    币: 1140
活跃值: (102)
能力值: ( LV4,RANK:48 )
在线值:
发帖
回帖
粉丝
11
标记下,我也这样。。之前听大佬说用wegame启动不会这样,但是我测试了,还是这样
2018-9-1 20:39
0
雪    币: 2055
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
大佬 解决了吗  能提示下吗
2018-10-7 16:53
0
雪    币: 3
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
支持楼主
2018-10-8 01:30
0
雪    币: 328
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
楼主的问题解决了么,我也准备玩玩这个
2018-10-9 08:10
0
雪    币: 273
活跃值: (477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我虚拟机 KiDispatchException 没看到被HOOK
2018-10-9 21:50
0
雪    币: 283
活跃值: (998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
解决了 我也遇到了同样的问题 ring3的自造异常 总被windbg双机捕获到 设置了忽略还是会输出信息导致 卡死
2018-10-19 08:23
0
雪    币: 302
活跃值: (246)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
17
你好,你这个是怎么解决的呢,是不是修改的相应的SEH中的代码啊
2018-10-20 15:25
0
雪    币: 302
活跃值: (246)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
18
你好,你这个是怎么解决的呢,是不是修改的相应的SEH中的代码啊
2018-10-20 15:29
0
雪    币: 328
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
话说楼主你图里面标注的被TP hook的部分,他们的字节和没和Hook之前的字节是一样的。可能是反汇编问题?
2018-10-22 15:38
0
雪    币: 213
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
KiDispatchException没有被tp hook,你认真看看字节都是一样的,只是变成了32位翻译成汇编指令
2018-10-22 16:22
0
雪    币: 213
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
用x64dbg附加windbg,然后搜索字符串L"The context is partially valid. Only x86 user-mode context is available.\n",点进去第一个,将这个全局变量改为4,就不会一直输出上面那句话了

最后于 2018-10-22 20:50 被冰小鸿编辑 ,原因:
2018-10-22 20:47
0
雪    币: 4221
活跃值: (4277)
能力值: ( LV3,RANK:37 )
在线值:
发帖
回帖
粉丝
22
大兄弟双机调试解决了不
最后于 2018-10-22 22:30 被qqzxc编辑 ,原因: 0.0
2018-10-22 22:30
0
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
23
解决了吗 
2018-11-2 21:06
0
雪    币: 24
活跃值: (1353)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我也遇到了同样的问题,哪位大神给点提示啊
2018-11-17 22:30
0
雪    币: 500
活跃值: (995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
我是设置windbg,debug菜单->eventFilters,最后一项 wow64 single step exception,设置为ignore和not handle,测试在一个机器上会流畅运行,但windbg会疯狂输出The context is partially valid. Only x86 user-mode context is available,另一台机器会一卡卡的,但也能运行起来游戏,但游戏加载后就蓝屏了,应该是驱动检测到双机调试
2018-11-23 09:56
0
游客
登录 | 注册 方可回帖
返回
//