Мне нужно повесить хук на все потоки определенного процесса, включая вновь создаваемые потоки. Что я придумал: вешать хук на все потоки в системе, а в DllMain() определять GetProcessName()'ом имя процесса и если это нужный процесс, то оставаться и следить, если не нужный, то выгружаться из него. Но я не знаю как корректно осуществить процесс выгрузки. Может быть у кого-то есть более практичный план реализации?
мб стоит перебирать все процессы в системе, если это нужный нам процесс, то внедряем нужный нам код и т.д.?
А как перебрать все процессы в системе? И как получить хэндл потока этого процесса, у которого есть очередь сообщений? Может быть перебрать все окна в системе и у каждого получить хэндл процесса? Но это, вроде бы, не сработает, если программа свернута в систрей. А можно как-нибудь запускать мой exe'шник при запуске определенного exe'шник? Только без слежений, но чтобы работало с любым exe'шником 100%. Изменять таблицу импорта нельзя.
NtQuerySystemInformation не поддерживается win9x. IAT нельзя изменять потому, что задание такое. А за ToolHelp функции спасибо, правда я уже сам до них докопал. А не подскажете, как сделать запуск своего exe'шника, сразу после запуска определенного exe'шника? Определенный exe'шник изменять нельзя, работать должно в 9x, 2000 и XP.
Вот еще какая проблема. Все потоки нужного процесса я могу перебрать, а как определить какой из потоков имеет окно? Чтобы повесить хук надо окно или нет? Или можно на любой поток вешать?