Начал изучать данную тему и возникло несколько вопросов. 1) MASM 6.14 может компилить sysenter или только через db 0Fh,34h 2) В WinXP нужно вызывать только sysenter или еще работает int 2E 3) Vista работает с sysenter и int 2E ? Выложите плиз исходники проги на ASM как пример работы с sysenter и int 2E Спасибо !
инт 2е работает для совместимости. так что и то и то катит. int 2e: Код (Text): __declspec(naked) IntSystemCall( ) { __asm { lea edx, dword ptr ss:[esp+8] int 0x2e ret } } __declspec(naked) NTSTATUS WINAPI Int2eZwReadFile(...) { __asm { MOV EAX, 0xB7 CALL IntSystemCall RETN } } sysenter: Код (Text): __declspec(naked) FastSystemCall( ) { __asm { mov edx, esp sysenter // возврат будет в ntdll.KiFastSystemCallRet, там находится только RETN и мы как раз выйдем отсюда в SysenterZwReadFile } } __declspec(naked) NTSTATUS WINAPI SysenterZwReadFile(...) { __asm { MOV EAX, 0xB7 CALL FastSystemCall RETN } }
Это ты к чему ? Лень вообще то двигатель прогресса .... Только ленивый человек начинает что то автоматизировать.