Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.054 c
15-1169092654
brother
2007-01-18 06:57
2007.02.11
для чего вообще нужно программировать под .net?


2-1169705397
>>DEATH<<
2007-01-25 09:09
2007.02.11
отправка на mail


15-1169451377
Rule
2007-01-22 10:36
2007.02.11
Вот наконец и я созрел сделать свой личный сайт :-)


1-1166135792
conless
2006-12-15 01:36
2007.02.11
ScrollBox, помогите разобраться!


2-1169642085
Garacio
2007-01-24 15:34
2007.02.11
два TiniFile.Create = Access violation





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский