Модификация SeAccessCheck в ntkrnlpa.exe

Тема в разделе "WASM.NT.KERNEL", создана пользователем skyproc, 29 июл 2009.

  1. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    на память память которую ты меняешь в тот же момент уже мог быть настроен контекст одного из потоков
    показывай код установки хуков
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Не видел ни одной реализации. Сам делал когда-то -- глючило. Так и не сделал рабочий вариант)

    Вообще да, но редко в первых 5 байтах встречаются jxx
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Верно, нужно атомарно модифицировать код, автор сделал не верно посредством строковых инструкций, код может исполниться другим процессором пока есчо не закончена пересылка всех байт. Следует чтото типо такого в случае этой инструкции применить:
    Код (Text):
    1. JccBranchOffset PVOID ?
    2.  
    3. InitializeIcpDispatcher proc
    4.     Call dt_
    5. dt_:
    6.     pop edx
    7.     lea eax,dword ptr [edx + (offset IcpDispatcher - offset dt_)]
    8.     mov dword ptr [edx + (offset JccBranchOffset - offset dt_)],eax
    9.     ret
    10. InitializeIcpDispatcher endp
    11.  
    12. IcpDispatcher proc C
    13.     call dt_
    14. dt_:
    15.     pop eax
    16.     push dword ptr [eax + (offset JccBranchOffset - offset dt_)]
    17.     jnz @f
    18.     ret
    19. @@:
    20.     add dword ptr [esp],6
    21.     ret
    22. IcpDispatcher endp
    23.  
    24.  
    25. PatchJcc proc uses ebx esi edi JccAdress:PVOID
    26.     mov esi,JccAdress
    27.     cli
    28.     mov eax,Cr0
    29.     xor edx,edx
    30.     push eax
    31.     xor ebx,ebx
    32.     and eax,NOT(CR0_WP)
    33.     xor ecx,ecx
    34.     mov Cr0,eax
    35.     xor eax,eax
    36.     cmpxchg8b qword ptr ds:[esi]    ; -> Edx:Eax
    37.     cmp ax,840FH
    38.     mov edi,dword ptr [esi + 2] ; 0F84 XXXX
    39.     jne error_
    40.     call dt_
    41. dt_:
    42.     lea edi,[esi + edi + 6]
    43.     pop ebx
    44.     xchg dword ptr [ebx + (offset JccBranchOffset - offset dt_)],edi
    45.     mov ebx,edi
    46.     and ecx,0FFFF0000H
    47.     bswap edi
    48.     and ebx,0FFFF0000H
    49.     and edi,0FFFFH
    50.     or ecx,edi
    51.     or ebx,25FFH
    52.     lock cmpxchg8b qword ptr ds:[esi]   ; <- Ecx:Ebx
    53. error_:
    54. ; Result: ZF
    55.     pop eax
    56.     mov Cr0,eax
    57.     sti
    58.     ret
    59. PatchJcc endp
    Great
    Я имел ввиду что если копируется ветвление, то нужно смещение поправлять.
     
  4. skyproc

    skyproc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2007
    Сообщения:
    217
    Ну код может и исполниться другим процессором но убрал я хук после функции SeAccessCheck и усё работает как милинькое без каких либо глюков.
    Просто мысль была такая что до вызова функчии я анализирую входные параметры передаю управление самой ф-ции а навыходе редактирую выходные.
    Так что думаю сплайсинг более или менее корректный, ну буду ковырять дальше, уш очень интересная с точки зрения безопасности ф-ция...
     
  5. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    это и имелось в виду поэтому лучше использовать выгруженные страницы и обработку исключений, в ядре в плоть до #PF хендлера
    медленнее но независимо от того где какой поток застрял
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    o14189
    Эта страница не выгружается и сепшены не возникнут.
     
  7. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    Почему? Уверен?
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Clerk
    А вообще сплайс можно и однобайтово поставить. Тем же CC.
    Завести таблицу сплайсов и в обработчике #DB смотреть по таблице, какой хук вызывать.
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great
    Это не сплайсинг, последний - передача управления на другой код посредством ветвления. Точки останова я уже предлогал, но автор не сможет обработать сепшин в KiDebugRoutine, раз даже простейший сплайсинг не может сделать.
    o14189
    Секция кода ядра не выгружаемая. Уверен.)
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Clerk
    Ну скажем так, это перехват, но другим методом.

    Зачем кидебаг? о_0 ее еще искать надо. просто запись в идт поставить третью.

    Не вся.. их много в ядре, те, что начинаются с PAGE, выгружаемые.
    Но из-за того, что она юзается весьма часто, почти всегда она будет в памяти.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great
    Верно, она в "PAGE"(Characteristics = CODE | EXECUTE | READ, тоесть выгружаемая), почемуто я думал что эта функция в ".text".
    Для кд хэндлер:
    Код (Text):
    1. KdTrapHandler proc uses ebx esi edi TrapFrame:PKTRAP_FRAME,
    2.  ExceptionFrame:PKEXCEPTION_FRAME,
    3.  ExceptionRecord:PEXCEPTION_RECORD,
    4.  ContextRecord:PCONTEXT,
    5.  PreviousMode:KPROCESSOR_MODE,
    6.  SecondChance:BOOLEAN
    7.     assume fs:nothing
    8.     cmp SecondChance,FALSE
    9.     jne chain_
    10.    
    11.     mov ebx,ContextRecord
    12.     assume ebx:PCONTEXT
    13.     mov esi,ExceptionRecord
    14.     assume esi:PEXCEPTION_RECORD
    15.  
    16.     cmp PreviousMode,KernelMode
    17.     jne chain_
    18.  
    19.     cmp [esi].ExceptionCode,STATUS_BREAKPOINT   ; #BP
    20.     jne chain_
    21.  
    22.     cmp [esi].ExceptionFlags,NULL
    23.     mov edx,[ebx].ContextFlags
    24.     jne chain_
    25.    
    26.     and edx,CONTEXT_SEGMENTS or CONTEXT_INTEGER or CONTEXT_CONTROL
    27.     cmp edx,CONTEXT_SEGMENTS or CONTEXT_INTEGER or CONTEXT_CONTROL
    28.     jne chain_
    29.    
    30.     cmp [ebx].regSegCs,KGDT_R0_CODE
    31.     jne chain_
    32.    
    33.     test [ebx].regSegSs,KGDT_R0_CODE
    34.     jne chain_
    35.    
    36.     $LOAD Eax, GL_SeAccessCheck
    37.    
    38.     cmp [esi].ExceptionAddress,eax
    39.     jne chain_
    40.    
    41.     cmp [ebx].regEip,eax
    42.     jne chain_
    43.  
    44.     $GET_REF Edx, SeAccessCheckHandler
    45.     mov [ebx].regEip,edx    ; (mov edi,edi)
    46.    
    47.     mov eax,TRUE
    48.     jmp exit_
    49. chain_:
    50.     xor eax,eax
    51. exit_:
    52.     ret
    53. KdTrapHandler endp
    Возврат на оригинальный хэндлер:
    Код (Text):
    1. TRAP_CONTINUE macro
    2.     $LOAD Eax, GL_SeAccessCheck
    3.     add eax,2   ; (mov edi,edi)
    4.     jmp eax
    5. endm
    Макро извествно. Сам кд ищется так:
    Код (Text):
    1. PiEntry:
    2. db 055h, 08Bh, 0ECh, 083h, 0C4h, 0F0h, 053h, 056h, 057h, 08Bh
    3. db 07Dh, 008h, 055h, 0E8h, 000h, 000h, 000h, 000h, 081h, 004h
    4. db 024h, 00Eh, 001h, 000h, 000h, 0E8h, 000h, 000h, 000h, 000h
    5. db 081h, 004h, 024h, 0EAh, 004h, 000h, 000h, 064h, 0FFh, 035h
    6. db 000h, 000h, 000h, 000h, 064h, 089h, 025h, 000h, 000h, 000h
    7. db 000h, 00Bh, 0FFh, 075h, 015h, 0E8h, 00Ch, 001h, 000h, 000h
    8. db 085h, 0C0h, 08Bh, 0F8h, 075h, 00Ah, 0B8h, 0D1h, 002h, 000h
    9. db 0C0h, 0E9h, 0D3h, 000h, 000h, 000h, 08Dh, 045h, 0FCh, 050h
    10. db 057h, 0E8h, 0C3h, 001h, 000h, 000h, 085h, 0C0h, 08Dh, 05Dh
    11. db 0F8h, 00Fh, 085h, 0BEh, 000h, 000h, 000h, 053h, 06Ah, 001h
    12. db 0E8h, 000h, 000h, 000h, 000h, 081h, 004h, 024h, 0C9h, 000h
    13. db 000h, 000h, 057h, 0E8h, 016h, 002h, 000h, 000h, 085h, 0C0h
    14. db 08Bh, 05Dh, 0F8h, 00Fh, 085h, 09Eh, 000h, 000h, 000h, 08Dh
    15. db 073h, 050h, 08Dh, 045h, 0F4h, 050h, 053h, 0E8h, 0D5h, 002h
    16. db 000h, 000h, 085h, 0C0h, 00Fh, 085h, 089h, 000h, 000h, 000h
    17. db 003h, 05Dh, 0F4h, 080h, 03Bh, 0E8h, 075h, 06Fh, 066h, 081h
    18. db 07Bh, 005h, 06Ah, 005h, 075h, 067h, 080h, 07Bh, 007h, 0E8h
    19. db 075h, 061h, 08Bh, 045h, 0FCh, 003h, 05Bh, 001h, 08Bh, 040h
    20. db 050h, 083h, 0C3h, 005h, 003h, 0C7h, 08Dh, 0B3h, 080h, 000h
    21. db 000h, 000h, 089h, 045h, 0F0h, 03Bh, 0DFh, 076h, 053h, 03Bh
    22. db 0D8h, 073h, 04Fh, 08Dh, 045h, 0F4h, 050h, 053h, 0E8h, 08Eh
    23. db 002h, 000h, 000h, 085h, 0C0h, 075h, 046h, 003h, 05Dh, 0F4h
    24. db 066h, 081h, 03Bh, 0C7h, 005h, 075h, 01Fh, 08Bh, 04Bh, 002h
    25. db 08Bh, 053h, 006h, 08Bh, 05Dh, 00Ch, 03Bh, 0CFh, 076h, 02Ah
    26. db 03Bh, 0D7h, 076h, 026h, 03Bh, 04Dh, 0F0h, 073h, 021h, 03Bh
    27. db 055h, 0F0h, 073h, 01Ch, 089h, 00Bh, 0EBh, 01Dh, 080h, 03Bh
    28. db 0E8h, 074h, 013h, 03Bh, 0DEh, 072h, 0C0h, 0EBh, 00Dh, 080h
    29. db 03Bh, 0C3h, 074h, 008h, 03Bh, 0DEh, 00Fh, 082h, 06Ah, 0FFh
    30. db 0FFh, 0FFh, 0B8h, 025h, 002h, 000h, 0C0h, 0F8h, 064h, 08Fh
    31. db 005h, 000h, 000h, 000h, 000h, 08Dh, 064h, 024h, 00Ch, 05Fh
    32. db 05Eh, 05Bh, 0C9h, 0C2h, 008h, 000h, 04Bh, 065h, 045h, 06Eh
    33. db 074h, 065h, 072h, 04Bh, 065h, 072h, 06Eh, 065h, 06Ch, 044h
    34. db 065h, 062h, 075h, 067h, 067h, 065h, 072h, 000h, 055h, 056h
    35. db 057h, 033h, 0C0h, 0E8h, 000h, 000h, 000h, 000h, 081h, 004h
    36. db 024h, 019h, 000h, 000h, 000h, 064h, 0FFh, 035h, 000h, 000h
    37. db 000h, 000h, 064h, 089h, 025h, 000h, 000h, 000h, 000h, 089h
    38. db 000h, 0EBh, 071h, 08Bh, 004h, 024h, 08Bh, 064h, 024h, 008h
    39. db 064h, 08Fh, 005h, 000h, 000h, 000h, 000h, 025h, 000h, 0F0h
    40. db 0FFh, 0FFh, 083h, 0C4h, 004h, 0E8h, 000h, 000h, 000h, 000h
    41. db 081h, 02Ch, 024h, 09Ch, 0FFh, 0FFh, 0FFh, 064h, 0FFh, 035h
    42. db 000h, 000h, 000h, 000h, 0B9h, 000h, 001h, 000h, 000h, 064h
    43. db 089h, 025h, 000h, 000h, 000h, 000h, 066h, 081h, 038h, 04Dh
    44. db 05Ah, 08Bh, 050h, 03Ch, 075h, 029h, 003h, 0D0h, 081h, 03Ah
    45. db 050h, 045h, 000h, 000h, 075h, 01Fh, 066h, 081h, 07Ah, 014h
    46. db 0E0h, 000h, 075h, 017h, 066h, 081h, 07Ah, 004h, 04Ch, 001h
    47. db 075h, 00Fh, 066h, 0F7h, 042h, 016h, 002h, 001h, 074h, 007h
    48. db 066h, 083h, 07Ah, 05Ch, 001h, 074h, 009h, 02Dh, 000h, 010h
    49. db 000h, 000h, 0E2h, 0C6h, 033h, 0C0h, 064h, 08Fh, 005h, 000h
    50. db 000h, 000h, 000h, 083h, 0C4h, 004h, 05Fh, 05Eh, 05Dh, 0C3h
    51. db 08Bh, 064h, 024h, 008h, 0EBh, 0EAh, 055h, 08Bh, 0ECh, 056h
    52. db 08Bh, 04Dh, 008h, 08Bh, 055h, 00Ch, 033h, 0F6h, 08Ah, 004h
    53. db 00Eh, 03Ah, 004h, 016h, 075h, 00Eh, 046h, 084h, 0C0h, 075h
    54. db 0F3h, 08Dh, 044h, 00Eh, 0FFh, 02Bh, 045h, 008h, 0EBh, 002h
    55. db 033h, 0C0h, 05Eh, 0C9h, 0C2h, 008h, 000h, 055h, 08Bh, 0ECh
    56. db 055h, 0E8h, 000h, 000h, 000h, 000h, 081h, 004h, 024h, 05Bh
    57. db 000h, 000h, 000h, 0E8h, 000h, 000h, 000h, 000h, 081h, 004h
    58. db 024h, 0DAh, 002h, 000h, 000h, 064h, 0FFh, 035h, 000h, 000h
    59. db 000h, 000h, 064h, 089h, 025h, 000h, 000h, 000h, 000h, 08Bh
    60. db 055h, 008h, 0B8h, 07Bh, 000h, 000h, 0C0h, 066h, 081h, 03Ah
    61. db 04Dh, 05Ah, 075h, 02Ah, 003h, 052h, 03Ch, 081h, 03Ah, 050h
    62. db 045h, 000h, 000h, 075h, 01Fh, 066h, 081h, 07Ah, 014h, 0E0h
    63. db 000h, 075h, 017h, 066h, 081h, 07Ah, 004h, 04Ch, 001h, 075h
    64. db 00Fh, 066h, 0F7h, 042h, 016h, 000h, 001h, 074h, 007h, 08Bh
    65. db 04Dh, 00Ch, 033h, 0C0h, 089h, 011h, 0F8h, 064h, 08Fh, 005h
    66. db 000h, 000h, 000h, 000h, 08Dh, 064h, 024h, 00Ch, 0C9h, 0C2h
    67. db 008h, 000h, 055h, 08Bh, 0ECh, 083h, 0C4h, 0F4h, 053h, 056h
    68. db 057h, 055h, 0E8h, 000h, 000h, 000h, 000h, 081h, 004h, 024h
    69. db 0A8h, 000h, 000h, 000h, 0E8h, 000h, 000h, 000h, 000h, 081h
    70. db 004h, 024h, 061h, 002h, 000h, 000h, 064h, 0FFh, 035h, 000h
    71. db 000h, 000h, 000h, 064h, 089h, 025h, 000h, 000h, 000h, 000h
    72. db 08Bh, 05Dh, 008h, 08Dh, 045h, 0F8h, 050h, 053h, 0E8h, 050h
    73. db 0FFh, 0FFh, 0FFh, 085h, 0C0h, 08Bh, 055h, 0F8h, 00Fh, 085h
    74. db 081h, 000h, 000h, 000h, 08Bh, 042h, 078h, 085h, 0C0h, 074h
    75. db 07Ah, 003h, 0C3h, 089h, 045h, 0FCh, 08Bh, 070h, 020h, 085h
    76. db 0F6h, 074h, 075h, 08Bh, 040h, 018h, 085h, 0C0h, 074h, 06Eh
    77. db 089h, 045h, 0F4h, 003h, 0F3h, 033h, 0FFh, 08Bh, 006h, 003h
    78. db 0C3h, 050h, 0FFh, 075h, 00Ch, 0E8h, 0EEh, 0FEh, 0FFh, 0FFh
    79. db 00Bh, 0C0h, 074h, 02Eh, 08Bh, 04Dh, 0FCh, 08Bh, 041h, 024h
    80. db 003h, 0C3h, 00Fh, 0B7h, 03Ch, 078h, 02Bh, 079h, 010h, 047h
    81. db 08Bh, 071h, 01Ch, 003h, 0F3h, 08Bh, 004h, 0BEh, 085h, 0C0h
    82. db 08Bh, 05Dh, 014h, 074h, 030h, 083h, 07Dh, 010h, 001h, 075h
    83. db 003h, 003h, 045h, 008h, 089h, 003h, 033h, 0C0h, 0EBh, 00Eh
    84. db 083h, 0C6h, 004h, 047h, 0FFh, 04Dh, 0F4h, 075h, 0B8h, 0B8h
    85. db 07Ah, 000h, 000h, 0C0h, 0F8h, 064h, 08Fh, 005h, 000h, 000h
    86. db 000h, 000h, 08Dh, 064h, 024h, 00Ch, 05Fh, 05Eh, 05Bh, 0C9h
    87. db 0C2h, 010h, 000h, 0B8h, 07Bh, 000h, 000h, 0C0h, 0EBh, 0E6h
    88. db 0B8h, 0FFh, 000h, 000h, 0C0h, 0EBh, 0DFh, 055h, 08Bh, 0ECh
    89. db 053h, 056h, 057h, 055h, 0E8h, 000h, 000h, 000h, 000h, 081h
    90. db 004h, 024h, 087h, 001h, 000h, 000h, 0E8h, 000h, 000h, 000h
    91. db 000h, 081h, 004h, 024h, 08Dh, 001h, 000h, 000h, 064h, 0FFh
    92. db 035h, 000h, 000h, 000h, 000h, 064h, 089h, 025h, 000h, 000h
    93. db 000h, 000h, 08Bh, 075h, 008h, 060h, 068h, 010h, 015h, 000h
    94. db 000h, 068h, 0FFh, 001h, 001h, 010h, 068h, 055h, 0FFh, 0FFh
    95. db 0FFh, 06Ah, 0F8h, 068h, 0A0h, 07Fh, 0FFh, 0F8h, 068h, 00Dh
    96. db 0C4h, 00Eh, 00Fh, 068h, 004h, 010h, 055h, 007h, 068h, 0FFh
    97. db 005h, 0D0h, 001h, 068h, 055h, 05Dh, 00Dh, 055h, 068h, 088h
    98. db 00Fh, 05Fh, 055h, 068h, 0FFh, 0FFh, 0F3h, 0F3h, 068h, 054h
    99. db 011h, 00Ch, 00Ah, 089h, 0F2h, 089h, 0E6h, 06Ah, 019h, 068h
    100. db 080h, 00Bh, 0ACh, 0B0h, 068h, 03Eh, 0F3h, 0B1h, 0BFh, 068h
    101. db 058h, 0EAh, 011h, 000h, 089h, 0E3h, 083h, 0ECh, 06Eh, 089h
    102. db 0E7h, 0FCh, 06Ah, 064h, 059h, 00Fh, 0A3h, 00Bh, 0D6h, 073h
    103. db 001h, 0ACh, 0AAh, 0E2h, 0F6h, 089h, 0D6h, 06Ah, 002h, 05Bh
    104. db 089h, 0DAh, 0ACh, 050h, 050h, 03Ch, 066h, 00Fh, 044h, 0D9h
    105. db 03Ch, 067h, 00Fh, 044h, 0D1h, 03Ch, 0EAh, 074h, 005h, 03Ch
    106. db 09Ah, 075h, 005h, 046h, 08Dh, 074h, 01Eh, 003h, 03Ch, 0C8h
    107. db 074h, 006h, 024h, 0F7h, 03Ch, 0C2h, 075h, 002h, 046h, 046h
    108. db 024h, 0E7h, 03Ch, 026h, 058h, 074h, 014h, 03Ch, 0F1h, 074h
    109. db 00Eh, 024h, 0FCh, 03Ch, 0A0h, 075h, 004h, 08Dh, 074h, 016h
    110. db 002h, 03Ch, 0F0h, 074h, 002h, 03Ch, 064h, 058h, 074h, 0BCh
    111. db 089h, 0E7h, 052h, 050h, 03Ch, 00Fh, 075h, 001h, 0ACh, 09Ch
    112. db 0D4h, 010h, 086h, 0CCh, 098h, 099h, 031h, 0EDh, 09Dh, 075h
    113. db 016h, 083h, 0C7h, 035h, 0E3h, 00Dh, 00Fh, 0A3h, 02Fh, 073h
    114. db 001h, 042h, 045h, 0E2h, 0F7h, 072h, 002h, 0D6h, 099h, 0D1h
    115. db 0E2h, 0EBh, 018h, 080h, 0E9h, 004h, 079h, 004h, 0B1h, 00Ch
    116. db 024h, 007h, 0E3h, 00Bh, 080h, 0D2h, 001h, 045h, 00Fh, 0A3h
    117. db 02Fh, 0E2h, 0F7h, 072h, 002h, 0D0h, 0E8h, 086h, 0C8h, 08Dh
    118. db 014h, 0D1h, 059h, 05Dh, 00Fh, 0A3h, 057h, 002h, 073h, 03Bh
    119. db 0ACh, 0D4h, 008h, 0C0h, 0E4h, 004h, 073h, 002h, 078h, 01Fh
    120. db 09Ch, 085h, 0EDh, 075h, 006h, 02Ch, 006h, 075h, 009h, 0B0h
    121. db 005h, 03Ch, 004h, 075h, 003h, 0ACh, 024h, 007h, 09Dh, 072h
    122. db 006h, 078h, 007h, 03Ch, 005h, 075h, 004h, 001h, 0EEh, 046h
    123. db 046h, 0F6h, 0C4h, 060h, 075h, 00Dh, 091h, 03Ch, 0F6h, 074h
    124. db 007h, 03Ch, 0F7h, 075h, 004h, 001h, 0DEh, 046h, 046h, 0D1h
    125. db 0E2h, 00Fh, 0A3h, 057h, 013h, 073h, 00Ah, 042h, 00Fh, 0A3h
    126. db 057h, 013h, 073h, 002h, 011h, 0DEh, 046h, 081h, 0C4h, 0AEh
    127. db 000h, 000h, 000h, 02Bh, 074h, 024h, 004h, 089h, 074h, 024h
    128. db 01Ch, 061h, 08Bh, 055h, 00Ch, 089h, 002h, 033h, 0C0h, 0F8h
    129. db 064h, 08Fh, 005h, 000h, 000h, 000h, 000h, 08Dh, 064h, 024h
    130. db 00Ch, 05Fh, 05Eh, 05Bh, 0C9h, 0C2h, 008h, 000h, 08Bh, 064h
    131. db 024h, 008h, 0B8h, 001h, 000h, 000h, 0C0h, 08Bh, 06Ch, 024h
    132. db 00Ch, 0F9h, 0FFh, 064h, 024h, 008h
    Прото:
    Код (Text):
    1. NTSTATUS
    2. iQueryKiDebugRoutinePointer(
    3. IN PVOID NtImageBase,
    4. OUT PVOID *KiDebugRoutine
    5. );
    Установка бряка атомарная. Регистрация атомарная, исли сепшин не обработан следует вернуть управление на оригинальный обработчик(KdpStub etc).
    Больше ничем помочь не могу.)
     
  12. o14189

    o14189 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2009
    Сообщения:
    320
    даже если страница не выгружаемая ее можно пометить чтобы получить исключение при доступе
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну если специально сбросить бит Valid тогда да:)
     
  14. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    Present всмысле
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Наверно повиснет ядро если это сделать.
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Опечатка:
    Код (Text):
    1.     test [ebx].regSegSs,KGDT_R0_DATA
    2.     jne chain_
     
  17. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    вроде не должно, только page fault должен быть
    проверю