Как же так ... я помню что я также вызывал выход из программы по "инт" , или вывод в дос консоль , а как же прога под вынь которая перечисляет процессы чистыми сусколами , все это я держал в руках. Да и прогу эту написал кто то с группы толи а29 толи HKC .... ах вот оно что , тогда различие конечно есть , но опять же я подумал впервую очередь про библиотеки на вин32 по работе с сисколами.
=) точно помню , чувак написал GUI приложение на чистых сисколах , так как это зовется ? ...а вин32 ? , вот такие сборники я и ищу , сразу про них подумал. Неее я точно помню , сусколах , написано прога на чистых сусколах. Программа для просмотра скрытых процессов. Для Windows nt/2k/xp/2k3 Программа которая скидывает список процессов в файл ( C:\plist ), прелесть только в том, что в ней не юзаются api в принципе, только сисколы. По идее должна работать под все NT based мастдаи. Перед повторным использованием обязательно грохнуть C:\plist Нужна для просмотра списка процессов, так как современная малварь имеет свойство перехватывать api вызовы антивирусников и различных вьюеров процессов. http://up.spbland.ru/files/080430122/ вот пожалуста. Есть еще с гуи но я ищу пока .. Вот такие либы и инк файлы ищу , для написания таких программ.
calidus Ну путай дос с вин. Сискол в линуксе - это восьмедисятое прерывание, int 80 и не более. В винде можно вызвать sysenter - это кажется тоже что и in 2E - переход в ring0. тебе просто надо искать справочник прерывайний ДОС. Воспользуйся поиском по васму.
=) спсб справочник есть , я думал что есть такие же инк и либ файлы где есть какенить процедуры на основе этого
Терминология не верна в корне. syscall -- это функция ядра, доступная для вызова из user-space. К int 80 syscall'ы имеют лишь косвенное отношение: int 80 -- это лишь один из способов вызвать этот syscall. Можно, также делать это при помощи sysenter -- это другой способ. Не буду ничего утверждать, но есть определённые соображения в пользу того, что тоже самое можно сделать при помощи long jmp. Непонятно, как их может не быть.
Да есть они здесь, есть. Теоретически можно вызывать ядро через int 2E, sysenter и syscall. А вот практически есть две проблемы: во-первых, номера системных вызовов вовсе не фиксированы, а сильно меняются от сервиспака к сервиспаку; во-вторых, многие системные вещи делаются не ядром, а user-mode кодом (kernel32.dll, user32.dll, gdi32.dll, ntdll.dll), и далеко не все функции API представляют собой переходники на NativeAPI. Added: Даже вывести что-нибудь на экран - уже проблема: ни WriteConsole, ни RegisterClass+CreateWindow+DefWindowProc на системных вызовах не делаются, а нужно знать кучу дополнительных структур, которые разруливают kernel32.dll и user32.dll сответственно. В отличие от Linux, где вывод на консоль (точнее, в stdout или stderr) осуществляется вызовом ядра.
В Windows ntos!KiFastCallEntry и есть обработчик сервиса, вызванного через syscall. Но эта инструкция не используется, так как не все процессоры её поддерживают. Даже Preston(P4) не поддерживает эту инструкцию(в CPUID флаг сброшен, а вызов этой инструкции вызывает исключение STATUS_ILLEGAL_INSTRUCTION).