n0name: Peb.ImageBaseAddress равен 0x100000, то бишь не нулевой. Значение верное (посмотрел, у запускаемого файла действительно это значение базы)...
CommandLine смотрел, также пустой. Вот мой код: PROCESS_BASIC_INFORMATION ProcBasicInfo; DWORD RetLen, BytesCount; PEB Peb;...
Попробовал. Та же самая фигня, возвращается пустая строка :(. Блин, че ж делать то? Должно же существовать какое-то решение...
Ну в общем сделал как ты сказал, для других, уже созданных процессов работает, нормально показывает их полный путь, для создаваемых же, то бишь...
В смысле? Там же не PUNICODE_STRING а UNICODE_STRING, откуда читать тогда?
Сейчас проверил - всегда получаю этот результат. Проблема оказывается еще глубже чем я предполагал: всегда, для какого бы процесса не вызывал...
Продолжаю серию своих вопросов :). Ну просто что-то никак не получается до конца доделать, только немного продвигаюсь, тут же возникают новые...
DarkWanderer, имхо, особо уменьшить размер потребляемой памяти не получится, так как там резервируется куча, а также различные системные...
n0name, cresta, благодарю за структуры, вроде помогли. :) cresta: может и проще, да только реализовать мне это надо в третьем кольце, а...
Ага, вроде понял. А можете дать описание PEB? Или хотя бы ссылку? А то у меня описания PEB из различных источников и сильно различаются.
Пишется что-то вроде системы защиты. Одним из аспектов безопасности является запрет запуска процессов, запуск которых явно не разрешен :). То бишь...
ну да, CLIENT_ID так определена. Почему tbi.ClientId.UniqueProcess? Там же PCLIENT_ID? Или я что-то путаю?
Ну приблизительно так: #define THREAD_BASIC_INFO 0 NTSTATUS __stdcall xZwResumeThread(HANDLE ThreadHandle, DWORD PrevSuspendCount) {...
В общем, проблема такая: я перехватываю в процессе ZwResumeThread, у него как известно передается ThreadHandle. Вот мне нужно по этому хэндлу...
Имена участников (разделяйте запятой).