Делаю прогу, скрывающуюся от Ctrl-Alt-Del в Win2000. Все это через перехват функций. Вроде все работает, DLL'ка мэпится во все процессы, запущенные в системе, вроде успешно. Во вновь создаваемые тоже (перехват NtCreateThread и еще одной функции). Делаю проге привилегии отладчика - все ОК! Не сказал о самом главном - перехват осуществляю посредством изменения таблиц импорта во всех модулях процесса. Перехватываю даже LdrGetProcedureAddress. Но при запуске TaskManager'а вываливается exception и баста. Я знаю, что еще надо перехватить LdrLoadDll, но не знаю как реализовать тело перехватчика. Может быть после этого все заработает и TaskManager не будет материться?!
Коокго рода ошибка? На какой адрес? Пробовал смотреть через отладчик, например SoftICE? Не проще было создать свой поток в системном процессе или оформить всю прогу как системную dll или сервис.
А что я выиграю от создания потока в системном процессе? Если у меня будет тело перехватчика LdrLoadDll, то мне кажется, что все будет работать. Может я не прав? Мне нужны описания структур, с которыми работает LdrLoadDll. HELP!!!
А каких структур то? там вроде peb,teb - они известны. Может PLDR_DATA_TABLE_ENTRY, так вот: http://club.shelek.com/viewart.php?id=135. Иль не то? P.S.: А зачем сректуры то. Наверное достаточно знать адрес модуля на диске, который передаётся ввиде параметра...
Например, структура IN_INITIALIZATION_ORDER_MODULE_LIST и остальные, так или иначе связанные с LdrLoadDll. Мне нужно как-то слобать тело перехватчика.