Скачал значит *The Undocumented Functions Microsoft Windows NT/2000* и сижу разбираюсь, но никак не получается открыть процесс с помощью NtOpenProcess возвращает 80000002(OUTOFMEMORY) а делаю все как надо: push offset ClientId push offset ObjectAttributes(первый байт=18h) И каков должен быть размер ObjectAttributes? push PROCESS_ALL_ACCESS push offset OUT_PROCESS_HANDLE А должен ли OUT_PROCESS_HANDLE содержать processId? (хотя пробовал и так и так) Подскажите в чем дело(кроме кривых рук).
> push PROCESS_ALL_ACCESS А тебе никто и не обещал с такими правами открытие процесса, возможно система воспротивилась если ты под юзером или ещё там чего... Да и некорректно открывать процесс с такими правами доступа, тем более они все вряд ли тебе нужны
>возможно система воспротивилась если ты под юзером А когда вызываю через OpenProcess то не противиться? А сижу под админом и открываю explorer.exe И забыл:сижу на XP Pro SP1
Я бы грешил на неправильно переданные параметры... Вот тебе пример вызова на С: Код (Text): OBJECT_ATTRIBUTES oa = {sizeof(oa)}; CLIENT_ID cid = {TargetPID, 0}; HANDLE hTarget; NTSTATUS Result = NtOpenProcess(&hTarget, PROCESS_ALL_ACCESS, &oa, &cid);
Для компиляции потребуется KmdKit (лежит на этом сайте). С Windows.inc не совместим. Код (Text): .386 .model flat, stdcall option casemap:none ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: ; I N C L U D E F I L E S ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: include \masm32\include\kernel32.inc include \masm32\include\w2k\ntdll.inc include \masm32\include\w2k\ntddk.inc include \masm32\include\w2k\ntstatus.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\w2k\ntdll.lib include \masm32\Macros\Strings.mac ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: ; C O D E ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: .code ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: ; start ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: start proc local hProcess:HANDLE local oa:OBJECT_ATTRIBUTES local cid:CLIENT_ID InitializeObjectAttributes addr oa, NULL, OBJ_CASE_INSENSITIVE, NULL, NULL mov cid.UniqueProcess, 1100 ; Your process ID. You've got it somehow. mov cid.UniqueThread, 0 invoke ZwOpenProcess, addr hProcess, PROCESS_ALL_ACCESS, addr oa, addr cid .if eax == STATUS_SUCCESS invoke ZwClose, hProcess .endif invoke ExitProcess, 0 ret start endp ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: ; ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::: end start
Все спасибо за оперативную помощью Надо всего было поставить align 4 и правильно поработать с OBJECT_ATTRIBUTES. И не подскажите, а где можно взять инфу об кейлогерре который бы работал через драйвер, и если мне не изменяет память, то там что-то обещал по поводу этой темы Four-F?
Four-F А чем отличается ZwOpenProcess от NtOpenProcess? В импорте kernel32 кажется Nt или я что-то путаю? Мне это нужно для плагина знать
Asterix названием. так думает PeBrowsePro GetProcAddress c NtOpenProcess делаеш а он пишет что eax==ZwOpenProcess И точка входа у них одна,если верит PeBrowsePro
[ Asterix: <font color="indigo]А чем отличается ZwOpenProcess от NtOpenProcess?</font><!--color--> ] Для ntdll ничем. Это синонимы. Для ядра отличаются. Я имею ввиду префиксы Zw и Nt вообще. [ dead_body: <font color="indigo]И не подскажите, а где можно взять инфу об кейлогерре который бы работал через драйвер, и если мне не изменяет память, то там что-то обещал по поводу этой темы Four-F?</font><!--color--> ] Первая часть статьи написана и во вторник отослана Aquila. Если он её получил, то на днях выложит, наверное. Но там пока арт-подготовка. Фильтр будет в следующей статье. Пример готового "кейлогерра, который бы работал через драйвер" можно взять на rootkit.com: проект называется klog.