Форум: "WinAPI";
Текущий архив: 2017.06.11;
Скачать: [xml.tar.bz2];
ВнизЛовушка на запуск файлов. Hook на CreateProcess Найти похожие ветки
← →
sfary (2010-08-21 00:10) [0]Подскажите. Есть ли готовые решения.
Допустим. Запускаю какой-то файл, нужно до его запуска показать мне, что этот файл пытается запуститься.. даже если его запускает другое приложение по CreateProcess
← →
Rouse_ © (2010-08-21 01:34) [1]Решения есть - антивирусы. Именно они реализуют данный функционал.
Хук в самом простом случае ставить нужно на SDT и теневую SST на NtCreateProcessEx
← →
sfary (2010-08-21 09:42) [2]да. это надо.
← →
Игорь © (2010-08-21 10:03) [3]
> sfary (21.08.10 00:10)
madCodeHook в usermod"е, а kernelmode SDT в сети полно примеров скачай WDK http://club.shelek.ru/viewfiles.php?id=2 и флаг в руки
← →
sfary (2010-08-21 10:53) [4]Что удалось найти. Возможно ли это переделать под CreateProcess
program aHookProc;
uses
Windows,
advApiHook;
var
TrueMessageBoxA: function(hWnd: HWND; lpText, lpCaption:
PAnsiChar; uType: UINT): Integer; stdcall;
function NewMessageBoxA(hWnd: HWND; lpText, lpCaption:
PAnsiChar; uType: UINT): Integer; stdcall;
begin
TrueMessageBoxA(0, "Перехват установлен!", "HookProc", 0);
end;
begin
MessageBoxA(0, "Новый метод API перехвата.", "HookProc", 0);
HookProc("user32.dll", "MessageBoxA", @NewMessageBoxA, @TrueMessageBoxA);
MessageBoxA(0, "Не работает!", "HookProc", 0);
UnhookCode(@TrueMessageBoxA);
MessageBoxA(0, "Перехват снят.", "HookProc", 0);
end.
И конкретно по WindowsSDK CreateProcess \ но собрать не получилось.
http://www.vba90.com/post/vb17/vb17967.htm
для редактирования первого примера понадобится второй.type
TCreateProcess = function(lpApplicationName: PChar; lpCommandLine: PChar;
lpProcessAttributes, lpThreadAttributes: PSecurityAttributes;
bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer;
lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo;
var lpProcessInformation: TProcessInformation): BOOL; stdcall;
TCreateProcessA = function(lpApplicationName: PAnsiChar; lpCommandLine: PAnsiChar;
lpProcessAttributes, lpThreadAttributes: PSecurityAttributes;
bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer;
lpCurrentDirectory: PAnsiChar; const lpStartupInfo: TStartupInfo;
var lpProcessInformation: TProcessInformation): BOOL; stdcall;
TCreateProcessW = function(lpApplicationName: PWideChar; lpCommandLine: PWideChar;
lpProcessAttributes, lpThreadAttributes: PSecurityAttributes;
bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer;
lpCurrentDirectory: PWideChar; const lpStartupInfo: TStartupInfo;
var lpProcessInformation: TProcessInformation): BOOL; stdcall;
Как поймать запускающийся процесс, и вывести его допустим в messagebox или memo
← →
Игорь © (2010-08-21 11:02) [5]
> sfary (21.08.10 10:53) [4]
> Как поймать запускающийся процесс, и вывести его допустим
> в messagebox или memo
А зачем, цель какая?
Вы наверное вирус пишите?
← →
sfary (2010-08-21 11:11) [6]Пишу антивирус. На данный момент у меня определяет запуск процессов из разници кол-ва. по циклу. Сами понимаете, это неудобно. Для антивирусного монитора нужен хук.
Не спрашивайте зачем мне это надо, этот антивирус для конкретных целей.. как дополнение.
← →
sfary (2010-08-21 11:14) [7]http://slil.ru/29578798
в этой версии есть ошибки, так что необходимо заменить мои циклы на хук.
← →
Игорь © (2010-08-21 11:15) [8]И кстати на заметку в Windows Vista и выше NtCreateProcess и NtCreateProcessEx вам не поможет, в этих ОС нужно перехватывать NtCreateUserProcess
← →
sfary (2010-08-21 11:22) [9]Да, в курсе usermod надо, желательно простой apihook, в режиме ядра не требуется, с этим одни проблемы.. да и не требуется.
Размещу вашу рекламу в этот бесплатный проект.
← →
Игорь © (2010-08-21 11:36) [10]
> sfary (21.08.10 11:14) [7]
> http://slil.ru/29578798
> не требует подключения к интернету, не требует обновления
Я уже хочу поставить себе
Вы озвучте $ и мы всем форумом вам напишем HOOK CrateProcess по типу вот этого http://delphisources.ru/pages/sources/system/2010-year/process-protector.html исходника который я написал в радостном угаре ничего не зная о програмирование драйверов, надеюсь меня не сильно будут бить за все BSOD которые он вызвал
← →
sfary (2010-08-21 11:40) [11]http://delphisources.ru/pages/sources/system/2010-year/process-protector.html
хотел применить это к блокированию системных файлов от внедрения writememory но затем понял, что это нарушит работу windows =)
проект бесплатный, так что с него ничего не поиметь. только могу разместить вашу рекламу.
← →
sfary (2010-08-21 11:44) [12]i.websvc[hotdog]gmail.com
Игорь, рановато ставить, косяков много.
← →
Игорь © (2010-08-21 11:49) [13]
> sfary (21.08.10 11:40)
Ваш энтузиазм похвален но даже будь вы МД у вас уйдет на это месяцы, а то и годы...
Забейте у вас ничго не получиться
← →
sfary (2010-08-21 11:58) [14]так я подобные проекты за 3 дня поднимаю, на массы. =)
с хуком было бы грамотнее.
← →
Игорь Шевченко © (2010-08-22 18:27) [15]аудит надо использовать, а не ерундой страдать.
← →
Игорь © (2010-08-22 22:35) [16]
> Игорь Шевченко © (22.08.10 18:27) [15]
Какой то довольно известный антивирус на этом принципе основан, ни каких хуков, забыл название
← →
sfary (2010-08-24 00:51) [17]аудит не работает на компьютерах большинства людей, по умолчанию администратор. Можно конечно перевести человека под юзера с аудитом, но это так же не поможет выполниться шпионскому ПО.
← →
sfary (2010-08-24 01:16) [18]
> но это так же не поможет выполниться шпионскому ПО.
>
:D не то.
Аудит не помешает шпионскому ПО, тем более всегда находились способы выбраться в нулевое кольцо. Процесс не стоит на месте, Rootkits/Bootkit
последние практически не выгружаемы для антивирусов.
В любом случае, предотвратить какую-то часть от исполнения лучше, в моем случае (как мне кажется) не хилую.
Игорь взялся помочь нужным хорошим кодом, так как в действительности мне это не осилить. Постараюсь переписать с начала, минималистский апи интерфейс и оптимизированный код определения и дизасма для доп. анализа.
Проект в любом случае будет достаточно популярен, так как есть база для внедрения. Приму любую информацию касаемо темы.
← →
Сергей М. © (2010-08-24 09:53) [19]
> Приму любую информацию касаемо темы
http://www.google.com/search?hl=ru&client=firefox&hs=KQS&rls=org.mozilla%3Aru%3Aofficial&q=pssetcreateprocessnotifyroutine+msdn&aq=1&aqi=g3&aql=&oq=pssetcreateprocessnoti&gs_rfai=
← →
Игорь © (2010-08-24 12:32) [20]
> sfary
Перехват PsSetCreateProcessNotifyRoutine, пока есть проблемка, не могу получить полный путь запускаемого процесса, из usermode не получаеться, надо получать в драйвере, доработаю позже, щас занет пока, под x64 драйвер подписан, надо только отключить проверку цифровой подписи F8
http://www.onlinedisk.ru/file/501133/
← →
Игорь © (2010-08-24 12:47) [21]Тестировал под Windows XP SP2, Seven, x64 Seven
← →
Сергей М. © (2010-08-24 13:41) [22]
> Игорь © (24.08.10 12:32) [20]
> Перехват PsSetCreateProcessNotifyRoutine
Нафига его перехватывать-то ?
← →
Игорь © (2010-08-24 14:25) [23]
> Сергей М. © (24.08.10 13:41) [22]
Да это я так образно
← →
Сергей М. © (2010-08-24 15:54) [24]
> Игорь © (24.08.10 14:25) [23]
Даже если "образно", то как это поможет цели - "еще до запуска" ?
Никак.
Вот в Висте и 2008-м сервере - там появилась PsSetCreateProcessNotifyRoutineEx, она реально поможет.
← →
Игорь © (2010-08-24 16:14) [25]
> Сергей М. © (24.08.10 15:54) [24]
Процесс еще не инициализировался, не загрузил ни одну dll, что он может?
А мы можем спокойно его замочить если он нам не понравился чем либо
← →
sfary (2010-08-25 19:41) [26]Возможно ли определить, что процесс полностью инициализировался (только с windows dll) после чего поставить его на паузу. Если функция определения на его вирусность дала добро, то его выгружаем, в противном случае убираем с паузы. На данный момент это требуется. Сильно драйвера не требуются, ошибок много будет и лёгкость утеряется.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2017.06.11;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.002 c