Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

NtCreateProcessEx какие параметры и их тип?   Найти похожие ветки 

 
wp2 ©   (2006-09-24 22:41) [0]

Нужны параметры для этой функции.

А также как можно узнать по параметрам какая программа вызвала эту функцию.


 
Ketmar ©   (2006-09-24 22:53) [1]

DWORD __stdcall HOOK_NtCreateProcessEx(
 OUT PHANDLE ProcessHandle,
 IN ACCESS_MASK DesiredAccess,
 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
 IN HANDLE ParentProcess,
 IN BOOLEAN InheritObjectTable,
 IN HANDLE SectionHandle OPTIONAL,
 IN HANDLE DebugPort OPTIONAL,
 IN HANDLE ExceptionPort OPTIONAL,
 IN HANDLE Unknown)


>[0] wp2(c) 24-Sep-2006, 22:41
>А также как можно узнать по параметрам какая
>программа вызвала эту функцию.
"по параметрам" -- никак.


 
Орион ©   (2006-09-24 23:42) [2]

> А также как можно узнать по параметрам какая программа вызвала
> эту функцию.


Перехватом?
Но это уже не по параметрам и очень скользкая тема.


 
Ketmar ©   (2006-09-24 23:55) [3]

>[2] Орион(c) 24-Sep-2006, 23:42
>Перехватом?
>Но это уже не по параметрам и очень скользкая
>тема.
а тут и делается, имо, перехват. иначе зачем бы эту функцию применять? особенно учитывая, что в Win2K, например, её нет. %-)


 
Орион ©   (2006-09-24 23:56) [4]

> [3] Ketmar ©   (24.09.06 23:55)


Ааа. Дык зачем тогда по параметрам узнавать? В кого внедрены - тот и вызвал :)


 
Ketmar ©   (2006-09-24 23:58) [5]

>[4] Орион(c) 24-Sep-2006, 23:56
>Ааа. Дык зачем тогда по параметрам узнавать? В
>кого внедрены - тот и вызвал :)
а вдруг это KiST-перехват? драйвер -- он везде один. %-)


 
wp2 ©   (2006-09-25 00:02) [6]

Ketmar
А можно по Паскалевски :-)

С объяснением что такое, например, POBJECT_ATTRIBUTES


 
Орион ©   (2006-09-25 00:02) [7]

> [5] Ketmar ©   (24.09.06 23:58)

Тогда автора ждем :)
Хотя если у него возник такой вопрос, то драйвером тут и не пахнет.
Воть...)


 
Ketmar ©   (2006-09-25 00:06) [8]

>[1] Ketmar(c) 24-Sep-2006, 22:53
function NtCreateProcessEx (
 out ProcessHandle: THandle;
 DesiredAccess: ACCESS_MASK;
 ObjectAttributes: POBJECT_ATTRIBUTES;
 ParentProcess: THandle;
 InheritObjectTable: LongBool;
 SectionHandle: THandle;
 DebugPort: THandle;
 ExceptionPort: THandle;
 Unknown: THandle): DWORD; stdcall;

что-то вроде такого. на остальные вопросы ответит MSDN и гугль, потому как структуры документированы.


 
Орион ©   (2006-09-25 00:07) [9]

Нате))
Нашел в загашниках:

TProcessBasicInformation = record
   ExitStatus: Integer;
   PebBaseAddress: Pointer;
   AffinityMask: Integer;
   BasePriority: Integer;
   UniqueProcessID: Integer;
   InheritedFromUniqueProcessID: Integer;
 end;

function GetPathFromId(Id: DWord): string;
var
ProcessHandle: THandle;
ProcInfo: TProcessBasicInformation;
BytesRead: DWord;
Usr, Buf: DWord;
Len: Word;
Buffer: PWideChar;
begin
Result:="";
ZeroMemory(@ProcInfo, SizeOf(TProcessBasicInformation));
if GetProcessHandle(Id, ProcessHandle, PROCESS_QUERY_INFORMATION or PROCESS_VM_READ) then
begin
 if NT_SUCCESS(NtQueryInformationProcess(ProcessHandle, ProcessBasicInformation, @ProcInfo, SizeOf(TProcessBasicInformation), nil)) then
 begin
  ReadProcessMemory(ProcessHandle, Pointer(DWord(ProcInfo.PebBaseAddress)+$10), @Usr, 4, BytesRead);
  ReadProcessMemory(ProcessHandle, Pointer(Usr+$38), @Len, 2, BytesRead);
  GetMem(Buffer, Len);
  try
   ReadProcessMemory(ProcessHandle, Pointer(Usr+$3C), @Buf, 4, BytesRead);
   ReadProcessMemory(ProcessHandle, Pointer(Buf), Buffer, Len, BytesRead);
   Result:=WideCharToString(Buffer);
  finally
   FreeMem(Buffer);
  end;
  SetLength(Result, Len div 2);
 end;
 NtClose(ProcessHandle);
end;
end;


А параметр IN HANDLE ParentProcess всегда отличен от нуля?
Если да - проблема решена.


 
Ketmar ©   (2006-09-25 00:07) [10]

>[7] Орион(c) 25-Sep-2006, 00:02
>Хотя если у него возник такой вопрос, то
>драйвером тут и не пахнет.
а с чего это? теперь-то понятно, что не драйвер -- автор с сями не дружит. а до этого... я тоже пытался KiST-перехват делать. и драйвер пытался ваять. а параметров этой функции не знаю, потому что в моей Win2K её нет. %-)


 
Ketmar ©   (2006-09-25 00:09) [11]

>[9] Орион(c) 25-Sep-2006, 00:07
>А параметр IN HANDLE ParentProcess всегда отличен
>от нуля?
>Если да - проблема решена.
я сильно подозреваю, что он может быть вовсе не хэндлом процесса, вызвавшего эту функцию. иначе зачем бы его передавать?


 
Орион ©   (2006-09-25 00:09) [12]

ЗЫ функцию надо подредактировать будет, т.к. HANDLE ParentProcess - уже дескриптор процесса, а не ид.


 
Орион ©   (2006-09-25 00:12) [13]

> [11] Ketmar ©   (25.09.06 00:09)

Мне лень в МСДН лезть, тем более оффлайн версии нет :)
Вроде как автору все наводки дали. Если автор не нуб, ему достаточно этой информации. Если нуб - мы не увидим очередного мега-супер руткита с AV при загрузке %)


 
Ketmar ©   (2006-09-25 00:16) [14]

>[13] Орион(c) 25-Sep-2006, 00:12
подозреваю, что нуб. но, вроде бы, вполне адекватный. %-)


 
wp2 ©   (2006-09-25 21:23) [15]

Да не пишу я никакого драйвера!!!


 
wp2 ©   (2006-09-25 21:24) [16]

Спросить просто так что ли нельзя? ;-)

А на С++ программы я могу написать, только не очень сложные...



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
15-1168954980
Piter
2007-01-16 16:43
2007.02.11
Устройство АБС


2-1169665333
rolex
2007-01-24 22:02
2007.02.11
TreeView


2-1169396785
md
2007-01-21 19:26
2007.02.11
динамический массив


4-1159027456
Чапаев
2006-09-23 20:04
2007.02.11
Запись строкового ресурса


2-1169647027
DVM
2007-01-24 16:57
2007.02.11
Директивы условной компиляции





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский