Проблема с вызовом сервиса из x64

Тема в разделе "WASM.X64", создана пользователем Flasher, 24 апр 2009.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Не работает данный механизм:

    Код (Text):
    1. mov eax, 0E2h ;ZwRaiseHardError
    2. mov edx,esp
    3. int 2Eh
    4. lea esp,[esp+6*4]
    Что нетак?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    дизасмь ntdll.dll )
     
  3. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Достаточно отладчиком пройтись
     
  4. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    уже.., только ни о чём не говорит..
    Код (Text):
    1. ZwRaiseHardError proc near
    2.         mov r10, rcx    ; NtRaiseHardError
    3.         mov eax, 0E2h
    4.         syscall
    5.         retn
    6. ZwRaiseHardError endp
     
  5. only

    only New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2008
    Сообщения:
    147
    так ведь там нет возможности сделать системного вызов через int 0x2e
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Залейте пожалусто ntdll.dll от x64 и ядро.
     
  7. only

    only New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2008
    Сообщения:
    147
    wvx64sp1ru
    http://www.sendspace.com/file/p7w6lc
     
  8. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Flasher
    server2k8:
    Код (Text):
    1. lkd> !idt
    2.  
    3. Dumping IDT:
    4.  
    5. 00: fffff80001c52e80 nt!KiDivideErrorFault
    6. 01: fffff80001c52f40 nt!KiDebugTrapOrFault
    7. 02: fffff80001c53080 nt!KiNmiInterrupt  Stack = 0xFFFFF80004219000
    8.  
    9. 03: fffff80001c533c0 nt!KiBreakpointTrap
    10. 04: fffff80001c53480 nt!KiOverflowTrap
    11. 05: fffff80001c53540 nt!KiBoundFault
    12. 06: fffff80001c53600 nt!KiInvalidOpcodeFault
    13. 07: fffff80001c537c0 nt!KiNpxNotAvailableFault
    14. 08: fffff80001c53880 nt!KiDoubleFaultAbort  Stack = 0xFFFFF80004217000
    15.  
    16. 09: fffff80001c53940 nt!KiNpxSegmentOverrunAbort
    17. 0a: fffff80001c53a00 nt!KiInvalidTssFault
    18. 0b: fffff80001c53ac0 nt!KiSegmentNotPresentFault
    19. 0c: fffff80001c53bc0 nt!KiStackFault
    20. 0d: fffff80001c53cc0 nt!KiGeneralProtectionFault
    21. 0e: fffff80001c53dc0 nt!KiPageFault
    22. 10: fffff80001c54100 nt!KiFloatingErrorFault
    23. 11: fffff80001c54240 nt!KiAlignmentFault
    24. 12: fffff80001c54300 nt!KiMcheckAbort   Stack = 0xFFFFF8000421B000
    25.  
    26. 13: fffff80001c54640 nt!KiXmmException
    27. 1f: fffff80001c82fc0 nt!KiApcInterrupt
    28. 2c: fffff80001c547c0 nt!KiRaiseAssertion
    29. 2d: fffff80001c54880 nt!KiDebugServiceTrap
    30. 2f: fffff80001c9bb60 nt!KiDpcInterrupt
    31. 37: fffff80002145090 fffff800021192d0 (KINTERRUPT fffff80002145000)
    32. 3f: fffff80002145130 fffff800021192d0 (KINTERRUPT fffff800021450a0)
    33. 52: fffffa8001bafb10 fffffa6000ca42b8 (KINTERRUPT fffffa8001bafa80)
    34. 62: fffffa8001bafbd0 fffffa6000ca42b8 (KINTERRUPT fffffa8001bafb40)
    35. 72: fffffa8001bafe10 fffffa6000ca42b8 (KINTERRUPT fffffa8001bafd80)
    36.                      fffffa6000ca42b8 (KINTERRUPT fffffa8001bafcc0)
    37.                      fffffa6002bbb49c (KINTERRUPT fffffa8001baf780)
    38. 82: fffffa8001bafa50 fffffa6000ca42b8 (KINTERRUPT fffffa8001baf9c0)
    39.                      fffffa6000ca42b8 (KINTERRUPT fffffa8001bafe40)
    40.                      fffffa6002bbb49c (KINTERRUPT fffffa8001baf6c0)
    41. 92: fffffa8001baf990 fffffa6002b4d07c (KINTERRUPT fffffa8001baf900)
    42. 93: fffffa8001baf510 fffffa6002a12388 (KINTERRUPT fffffa8001baf480)
    43. a3: fffffa8001baf690 fffffa600097b3d0 (KINTERRUPT fffffa8001baf600)
    44. b1: fffffa8001baff90 fffffa6000b81868 (KINTERRUPT fffffa8001baff00)
    45. b2: fffffa8001bafc90 fffffa6002b07ba4 (KINTERRUPT fffffa8001bafc00)
    46. b3: fffffa8001baf8d0 fffffa6002bbb49c (KINTERRUPT fffffa8001baf840)
    47.                      fffffa6002f59bf8 (KINTERRUPT fffffa8001baf540)
    48. c1: fffff80002145310 fffff8000211fd68 (KINTERRUPT fffff80002145280)
    49. d1: fffff800021453b0 fffff800021282e8 (KINTERRUPT fffff80002145320)
    50. df: fffff80002145270 fffff8000211fd04 (KINTERRUPT fffff800021451e0)
    51. e1: fffff80001c5eda0 nt!KiIpiInterrupt
    52. e3: fffff800021451d0 fffff8000211fdd4 (KINTERRUPT fffff80002145140)
    53. fd: fffff80002145450 fffff8000211ff28 (KINTERRUPT fffff800021453c0)
    54. fe: fffff800021454f0 fffff8000211ff70 (KINTERRUPT fffff80002145460)
    55. ff: 0000000000000000
     
    Сфокусируем взгляд и посмотрим между строк:
    Код (Text):
    1. 2a: fffff80001d382a0 nt!KxUnexpectedInterrupt0+0x2A0
    2. 2b: fffff80001d382b0 nt!KxUnexpectedInterrupt0+0x2B0
    3. 2c: fffff80001c547c0 nt!KiRaiseAssertion
    4. 2d: fffff80001c54880 nt!KiDebugServiceTrap
    5. 2e: fffff80001d382e0 nt!KxUnexpectedInterrupt0+0x2E0
    6. 2f: fffff80001c9bb60 nt!KiDpcInterrupt
    7. 30: fffff80001d38300 nt!KxUnexpectedInterrupt0+0x300
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    only
    Спасибо.
    Sol_Ksacap
    Реально винда порченая :dntknw:
    Впрочем как и ваш дебуггер.
     
  10. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Вот ntdll_2003_5.2.3790.2825.dll
    Кстати, еще одна особенность, откуда брал эту либу, везде написано что это XP sp2, а как видно по номеру 5.2 - это 2003 :)
     
  11. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Flasher
    xp x64 маркируется так же как и win2k3
     
  13. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Какой оригинальный логический вывод :))
     
  14. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Flasher
    Это не вывод, это факт.
     
  15. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Не обижайся, шучу :)
    Так никто так и не подскажет как на 64 битке через int сервисы вызывать?
     
  16. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Никак.
    int 2Eh сохраняли ради совместимости с машинами младше p2, x64 априори поддерживает более удобные механизмы вызова ядра.
     
  17. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Например ? :)
     
  18. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Flasher
    наверное sysenter или syscall
     
  19. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Обе мне низя юзать, ибо проходят через KiFastSystemCall.
    Нужен третий способ.