Re: 求对KiTrap03执行流程的详解!

Windows内核调试

求对KiTrap03执行流程的详解!


WillingBug163 2014-02-21, 17:44 下午
看了一个KiTrap03的反汇编,发现它有两个返回路径,一直没有搞明白怎么回事。
求教,谁能给我详细讲讲。

Re: 求对KiTrap03执行流程的详解!


WillingBug163 2014-02-23, 14:55 下午
我自己做板登了,呵呵,大家一起来讨论一下呗。

Re: 求对KiTrap03执行流程的详解!


格蠹老雷 2014-02-23, 21:37 下午

转到KiTrap03主要有两种情况,一种是普通的软件断点,另一种是配合所谓的调试服务(Debug Service)(《软件调试》18.6.6)

INT 2D可以触发调试服务,转到KiDebugService,KiDebugService内会转到KiTrap03

nt!KiDebugService+0x59:
8053dba9 f60550f0dfffff  test    byte ptr ds:[0FFDFF050h],0FFh
8053dbb0 0f85eefeffff    jne     nt!Dr_kids_a (8053daa4)
8053dbb6 ff4568          inc     dword ptr [ebp+68h]
8053dbb9 8b4544          mov     eax,dword ptr [ebp+44h]
8053dbbc 8b4d40          mov     ecx,dword ptr [ebp+40h]
8053dbbf 8b553c          mov     edx,dword ptr [ebp+3Ch]
8053dbc2 e928010000      jmp     nt!KiTrap03+0x7b (8053dcef)

 

 

Re: 求对KiTrap03执行流程的详解!


WillingBug163 2014-02-24, 17:44 下午
这个我理解,INT3中断函数我其本看明白了。函数里对发起中断的源进行了判断,发现对标志寄器的第17位(从0开始)好多处的检查。
不过还有一个地方不解,就是看到Kei386EoiHelper函数时,其有下面一个片断。
.text:00443FC9                 cmp     word ptr [esp-60h+arg_64], 80h
.text:00443FD0                 ja      short loc_443FD8


.text:00443FD8 loc_443FD8:                             ; CODE XREF: _KiServiceExit+E7j
.text:00443FD8                                                 ; _KiServiceExit2+B9j ...
.text:00443FD8                 cmp     word ptr [esp-60h+arg_5C+2], 0
.text:00443FDE                 jz      short loc_443FD2
.text:00443FE0                 cmp     word ptr [esp-60h+arg_5C], 0
.text:00443FE5                 jnz     short loc_443FD2
.text:00443FE7                 shr     [esp-60h+arg_5C], 10h
.text:00443FEB                 mov     word ptr [esp-60h+arg_5C+2], 0F8h
.text:00443FF2                 lss     sp, [esp-60h+arg_5C] ; mem低字->reg,mem高字->ss
.text:00443FF7                 assume ss:FLAT
.text:00443FF7                 movzx   esp, sp
.text:00443FFA                 iret
word ptr [esp-60h+arg_64]这个地址是进入中断时第一个局部变量,int3开始的时候直接PUSH 0,之后没有变过。不明白这段在中断是处理什么情况的。

Powered by Community Server Powered by CnForums.Net