как можно получить хендл текущего процесса ??? не просто вызов GetCurrentProcess ,который возвращает константу , а хендл который возвращен createprocess
Эм... А тебе не кажется, что он у каждого владельца РАЗНЫЙ??? Открой свой процесс через OpenProcess. Если это возможно конечно (Лично я таким извратом не занимался)
Это необходимо для получения указателя на свой EPROCESS из юзермода прсредством SystemHandleInformation или SystemObjectInformation. Более необходимости открывать свой процесс вроде как нет.
хорошо .... другой вопрос .... можно ли обратится к процессу (запись ,чтение ) из другого процесса используя ранее созданный хендл .... тоесть получить хендл через NtQueryInformationFile , и обращаться к другому процессу
Процесс определяется его идентификатором, описатель(хэндл) получается посредством открытия обьекта, при открытии задаются необходимые права права доступа к обьекту. Хэндл может копироваться между процессами. Бред.
Вы не про случайно спрашиваете BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesRead ); BOOL WriteProcessMemory( HANDLE hProcess, LPVOID lpBaseAddress, LPCVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesWritten );
так значит использовать есть возможность для выше указанных функций существующие хендлы ... если их получить без опенпроцесс ????
В свой процесс ? Не представляю зачем это нужно, но в таком случае достаточно константы NtCurrentProcess = -1. [Хотя вероятно ты хочешь скопировать свой хэндл в инжектируемый процесс и в нём выполнять какието действия с процессом, который инжектил..]
Clerk Видимо да (совершенно аналогичный вопрос, но только по GetCurrentThread на днях был на другом форуме - похоже из одного места ноги растут Поэтому ответ видимо должен быть таким: использовать в процессе "чужой" хэндл просто так, напрямую нельзя - нужно либо сделать дубликат через DuplicateHandle, либо открыть свой через OpenXXX
кто же сказал что инжект делатся в свой процесс будет .... нет ... не так ... примерно вот что программа должна делать : 1.ищем хендлы процессов через NtQuerySystemInformations (насчет NtQuerySystemFile описалсо ((( ) 2.берем хендл нужного процесса 3.используем по своему усмотрению writeprocessmemory , etc .... такое реально ?
По-моему ответ на первоначальный вопрос где-то уже звучл - OpenProcess (PROCESS_xxx, FALSE, GetCurrentProcessId()) Не понимаю о чем тут дальше дискутируют