Не работает данный механизм: Код (Text): mov eax, 0E2h ;ZwRaiseHardError mov edx,esp int 2Eh lea esp,[esp+6*4] Что нетак?
уже.., только ни о чём не говорит.. Код (Text): ZwRaiseHardError proc near mov r10, rcx ; NtRaiseHardError mov eax, 0E2h syscall retn ZwRaiseHardError endp
Flasher server2k8: Код (Text): lkd> !idt Dumping IDT: 00: fffff80001c52e80 nt!KiDivideErrorFault 01: fffff80001c52f40 nt!KiDebugTrapOrFault 02: fffff80001c53080 nt!KiNmiInterrupt Stack = 0xFFFFF80004219000 03: fffff80001c533c0 nt!KiBreakpointTrap 04: fffff80001c53480 nt!KiOverflowTrap 05: fffff80001c53540 nt!KiBoundFault 06: fffff80001c53600 nt!KiInvalidOpcodeFault 07: fffff80001c537c0 nt!KiNpxNotAvailableFault 08: fffff80001c53880 nt!KiDoubleFaultAbort Stack = 0xFFFFF80004217000 09: fffff80001c53940 nt!KiNpxSegmentOverrunAbort 0a: fffff80001c53a00 nt!KiInvalidTssFault 0b: fffff80001c53ac0 nt!KiSegmentNotPresentFault 0c: fffff80001c53bc0 nt!KiStackFault 0d: fffff80001c53cc0 nt!KiGeneralProtectionFault 0e: fffff80001c53dc0 nt!KiPageFault 10: fffff80001c54100 nt!KiFloatingErrorFault 11: fffff80001c54240 nt!KiAlignmentFault 12: fffff80001c54300 nt!KiMcheckAbort Stack = 0xFFFFF8000421B000 13: fffff80001c54640 nt!KiXmmException 1f: fffff80001c82fc0 nt!KiApcInterrupt 2c: fffff80001c547c0 nt!KiRaiseAssertion 2d: fffff80001c54880 nt!KiDebugServiceTrap 2f: fffff80001c9bb60 nt!KiDpcInterrupt 37: fffff80002145090 fffff800021192d0 (KINTERRUPT fffff80002145000) 3f: fffff80002145130 fffff800021192d0 (KINTERRUPT fffff800021450a0) 52: fffffa8001bafb10 fffffa6000ca42b8 (KINTERRUPT fffffa8001bafa80) 62: fffffa8001bafbd0 fffffa6000ca42b8 (KINTERRUPT fffffa8001bafb40) 72: fffffa8001bafe10 fffffa6000ca42b8 (KINTERRUPT fffffa8001bafd80) fffffa6000ca42b8 (KINTERRUPT fffffa8001bafcc0) fffffa6002bbb49c (KINTERRUPT fffffa8001baf780) 82: fffffa8001bafa50 fffffa6000ca42b8 (KINTERRUPT fffffa8001baf9c0) fffffa6000ca42b8 (KINTERRUPT fffffa8001bafe40) fffffa6002bbb49c (KINTERRUPT fffffa8001baf6c0) 92: fffffa8001baf990 fffffa6002b4d07c (KINTERRUPT fffffa8001baf900) 93: fffffa8001baf510 fffffa6002a12388 (KINTERRUPT fffffa8001baf480) a3: fffffa8001baf690 fffffa600097b3d0 (KINTERRUPT fffffa8001baf600) b1: fffffa8001baff90 fffffa6000b81868 (KINTERRUPT fffffa8001baff00) b2: fffffa8001bafc90 fffffa6002b07ba4 (KINTERRUPT fffffa8001bafc00) b3: fffffa8001baf8d0 fffffa6002bbb49c (KINTERRUPT fffffa8001baf840) fffffa6002f59bf8 (KINTERRUPT fffffa8001baf540) c1: fffff80002145310 fffff8000211fd68 (KINTERRUPT fffff80002145280) d1: fffff800021453b0 fffff800021282e8 (KINTERRUPT fffff80002145320) df: fffff80002145270 fffff8000211fd04 (KINTERRUPT fffff800021451e0) e1: fffff80001c5eda0 nt!KiIpiInterrupt e3: fffff800021451d0 fffff8000211fdd4 (KINTERRUPT fffff80002145140) fd: fffff80002145450 fffff8000211ff28 (KINTERRUPT fffff800021453c0) fe: fffff800021454f0 fffff8000211ff70 (KINTERRUPT fffff80002145460) ff: 0000000000000000 Сфокусируем взгляд и посмотрим между строк: Код (Text): 2a: fffff80001d382a0 nt!KxUnexpectedInterrupt0+0x2A0 2b: fffff80001d382b0 nt!KxUnexpectedInterrupt0+0x2B0 2c: fffff80001c547c0 nt!KiRaiseAssertion 2d: fffff80001c54880 nt!KiDebugServiceTrap 2e: fffff80001d382e0 nt!KxUnexpectedInterrupt0+0x2E0 2f: fffff80001c9bb60 nt!KiDpcInterrupt 30: fffff80001d38300 nt!KxUnexpectedInterrupt0+0x300
Вот ntdll_2003_5.2.3790.2825.dll Кстати, еще одна особенность, откуда брал эту либу, везде написано что это XP sp2, а как видно по номеру 5.2 - это 2003
Никак. int 2Eh сохраняли ради совместимости с машинами младше p2, x64 априори поддерживает более удобные механизмы вызова ядра.