Здравствуйте, Вумудщзук, Вы писали:
IID>>выделенное придётся перехватывать во всех процессах, которые _потенциально_ могут запустить новый процесс. Тогда прокатит. И во вновь запущенных опять перехватывать. Замечу, что может иметь смысл перехват ResumeThread — главный поток процесса всегда создаётся в состоянии suspended, после настройки импорта/etc. происходит его старт по ResumeThread. Перехватывая её, мы получаем уже полностью готовый к старту, но ещё не стартовавший поток.
В>при этом ещё неплохо бы учитывать, что
В>1. ранее запущенные проги могут получить поинтеры на ту же CreateProcess до установки хука, тогда им этот хук будет по боку...
В>2. если прога, которая ставит хук, будет запущена из-под экаунта юзера или гостя, то про надёжный перехват функций можно вообще забыть...
В>короче, тот классический трюк по Рихтеру с перехватом функций не кажется совершенством, но как вариант...
по пункту 1: ну получат они и что ? мы же не о подмене импорта говорим, верно ? при подмене импорта даже банальная LoadLibrary/GetProcAddress позволит обойти хук.
по пункту 2: перехват будет надёжным, но перехватить можно будет только ранее запущеные и вновь запускаемые процессы из-под этого же аккаунта. И лучшего решения нет. Либо дырку искать/юзать (очень ненадёжно), либо вообще забить. Перехват в ядре требует администраторских прав. А что вы хотели ? NT имеет неплохую систему безопастности.