Там сервисы вызываются уже напрямик через sysenter. Например если раньше было так: Код (Text): ZwContinue proc near mov eax, 20h ; NtContinue mov edx, 7FFE0300h call dword ptr [edx] retn 8 ZwContinue endp То теперь так: Код (Text): ZwContinue proc near mov eax, 166h ; NtContinue call sub_6A256445 retn 8 ZwContinue endp sub_6A256445 proc near mov edx, esp sysenter retn sub_6A256445 endp Т.е минуя KiFastSystemCall/KiFastSystemCallRet Вот http://www.multiupload.com/L1ZSW82Z3P ntdll.dll 6.2.8102.0 если кому интересно..
Патчи весь ntdll ))) Тоже увидел данное обстоятельство. И при тесте своей тулзы понял, что вызов через int 0x2E остался.
Как что, некоторые (не будем указывать пальцем) хукали KiFastSystemCall/KiFastSystemCallRet для токо чтобы ловить много разных функций, а сейчас придётся каждую функцию отдельно хукнуть
Flasher Патч не годно, Энди вы же знаете =); в юзермоде делать больше нечего, если конечно вы не особо завёрнуты, как я.. l_inc Да, конечно в ту, куда есчо прыгать то: Код (Text): KiFastCallEntry: mov ecx,KGDT_R3_DATA OR RPL_MASK push KGDT_R0_PCR pop fs mov ds,cx mov es,cx mov ecx,PCR[PcTss] mov esp,[ecx + TssEsp0] push KGDT_R3_DATA or RPL_MASK push edx pushfd push 2 ; EFlags mask. add edx,8 ; Arg's popfd or byte ptr [esp + 1],EFLAGS_INTERRUPT_MASK/100H push KGDT_R3_CODE OR RPL_MASK push KeI386FastSystemCallReturn ; Eip ... А в KeI386FastSystemCallReturn ядро загружае при инициализации как обычно KiFastSystemCallRet(). Тоесть код фактически не изменился, ничо нового в т-процессинге нет почти, баян.
kejcerfcrv Так я ж об этом и говорю, что sysexit вроде должен прыгать в KiFastSystemCallRet, а не в ту же функцию. А уже KiFastSystemCallRet возвращается туда, откуда был вызван sysenter. Иначе пришлось бы сначала из юзермодного стека доставать адрес возврата, что несколько глупо.
l_inc Если бы я ядро пилил, то не использовал бы шлюз для возврата. Зачем, елси можно вернуться прямо в стаб, как это делаетя в KiSystemService(). Это походу какойто отладочный функционал, да и вообще эта кривая инструкция Sysexit негодная, также как и Sysenter. Бажный, кривой функционал. Тоже самое по аналогии что и шлюзы вызова(callgate), которые не робят в нт из за кривой хардварной реализации(IF).