Перехватываю NtOpenProcess путем подмены адреса в SST, пытаюсь определить имя создаваемого процесса и имя создателя потока. Делаю следующие: start_hook: mov eax, [esp+30h] ; - eax - addr ClientID mov eax, [eax] ; - eax - UniqueProcess mov dwProcessId, eax ; - ProcessID создавемого процесса ;получаю указатель на объект "процесс" создаваемого процесса push eax invoke PsLookupProcessByProcessId, dwProcessId, esp pop peProcess ;получаю указатель на объект "процесс" создателя invoke IoGetCurrentProcess Возможно я что-то не так понял, вообщем в некоторых случаях указатели на объекты создоваемого и создателя совпадают при этом поле DesiredAccess содержит одинаковые значения 0410h, т.е. непонятно какой процес является родителем.
PsGetCurrentProcess() - кто открывает PsLookupProcessByProcessId(ClientId->UniqueProcess,..) - кого открывают. А если совпадают значит сам себя открывает ...
MegaZu "А если совпадают значит сам себя открывает ..." хотелось бы знать зачем, я так понимаю для получения инфы о себе или что-то еще? (кстати при этом ClientId->UniqueThread = NULL) И еще вопрос - как узнать с какими параметрами был запущен процес? Скажем запускаем с командной строки far.exe -r, как узнать адрес командной строки?
Скажите, пожалуйста, что находится в esp, если в [esp+30h] находится указатель на структуру ClientID. Boola Оствь если можешь мыло, есть еще пару вопросов.
Denis__ Скажите, пожалуйста, что находится в esp, если в [esp+30h] находится указатель на структуру ClientID. в esp адрес возврата из процедуры, которая вызывала NtOpenProcess ICQ: 306527223
упс извиняйте, я наврал, у меня там такой код pushad mov eax,[esp+30h] mov eax,[eax] в данном случае [esp]=edi