MTDBG: recognise long int 3 opcode (CD 03) as user breakpoint.

git-svn-id: svn://kolibrios.org@5460 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2015-02-24 15:47:28 +00:00
parent d43cb2a354
commit c8a8b0eaa2

View File

@ -792,19 +792,22 @@ exception:
jnz .notdbg jnz .notdbg
; check for 0xCC byte at eip ; check for 0xCC byte at eip
push 0 push 0
;push 69 mcall 69, 6, [debuggee_pid], 1, [_eip], esp
;pop eax
;push 6
;pop ebx
;mov ecx, [debuggee_pid]
;mov edi, esp
;mov esi, [_eip]
;push 1
;pop edx
mcall 69, 6, [debuggee_pid], 1, [_eip], esp
pop eax pop eax
cmp al, 0xCC cmp al, 0xCC
jnz .notdbg je .int3
; check for 0xCD03 word at eip
push 0
inc edx
mcall 69;, 6, [debuggee_pid], 2, [_eip], esp
pop eax
cmp ax, 0x03CD
jne .notdbg
mov eax, [_eip]
inc [_eip]
inc [_eip]
jmp .user_int3_
.int3:
; this is either dbg breakpoint or int3 cmd in debuggee ; this is either dbg breakpoint or int3 cmd in debuggee
mov eax, [_eip] mov eax, [_eip]
call find_enabled_breakpoint call find_enabled_breakpoint
@ -822,6 +825,7 @@ exception:
.user_int3: .user_int3:
mov eax, [_eip] mov eax, [_eip]
inc [_eip] inc [_eip]
.user_int3_:
pop ecx pop ecx
push eax push eax
call set_context call set_context
@ -2247,9 +2251,9 @@ aPaused db 'Paused'
aFPU db '[ FPU ]' aFPU db '[ FPU ]'
aMMX db '[ MMX ]' aMMX db '[ MMX ]'
aSSE db '[ SSE-32 ]' aSSE db '[SSE32]'
aSSE2 db '[ SSE-64 ]' aSSE2 db '[SSE64]'
aMMX128 db '[ MMX128 ]' aMMX128 db '[MMX128]'
aAVX db '[ AVX ]' aAVX db '[ AVX ]'
aMSR db '[ MSR ]' aMSR db '[ MSR ]'