Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Речь пойдет об ХР, хотя суть дела не изменится. Приготовьтесь, сказка будет длинная.
Вообще-то цель моих поисков была другая, связанная с данным топиком только словом "загрузка". У меня тут небольшой квест - собираю все данные, касающиеся автозапуска CD. Так сложилось, что в результате исследований реестра я нашел некоторые факты, которые могут быть интересны и Вам.
В своих изысканиях я часто пользуюсь утилитами Марка Руссиновича и Брюса Когсвелла с www.sysinternals.com Смотрел как-то обновления по форуму, наткнулся на данный топик. Сразу вспомнил про утилиту Autoruns (скачайте обязательно), но запостить сообщение поленился, решил, что Вы и без меня разберетесь. Вчера вдруг засомневался, а возможно ли с помощью Autoruns поймать некоторые хитрые программки типа упомянутого Вами "O&O Defrag". Решил опробовать на утилите Regmon, взятой все с того же сайта. Если Вы не в курсе (в чем я сомневаюсь ),  там есть режим записи всех обращений к реестру в процессе загрузки Виндов. То есть, Regmon должен грузиться где-то в начале, при старте Виндов.
Поехали... Сначала запускаем Autoruns и минут пять оfigиваем:  количество всяких-разных автозапусков превышает все наши представления о автозагрузке.
Код: Выделить весь код
 
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit 
+ C:\WINDOWS\system32\userinit.exe 
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell 
+ Explorer.exe 
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\ 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\ 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ 
+ RUNDLL32.EXE C:\WINDOWS\System32\NvCpl.dll,NvStartup 
+ nwiz.exe /install 
+ "C:\Program Files\Winamp\Winampa.exe" 
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ 
+ C:\WINDOWS\System32\ctfmon.exe 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices\ 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce\ 
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices\ 
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce\ 
C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка 
C:\Documents and Settings\hasherfrog\Главное меню\Программы\Автозагрузка 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\ 
+ PostBootReminder -> C:\WINDOWS\system32\shell32.dll 
+ CDBurn -> C:\WINDOWS\system32\shell32.dll 
+ WebCheck -> C:\WINDOWS\system32\webcheck.dll 
+ SysTray -> C:\WINDOWS\system32\stobject.dll 
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run 
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load 
HKCU\Software\Policies\Microsoft\Windows\System\Scripts 
HKLM\Software\Policies\Microsoft\Windows\System\Scripts 
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\ 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\ 
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\ 
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\ 
C:\WINDOWS\win.ini 
Task Scheduler
Примечание: плюсиками обозначены мои подключи, у Вас они могут быть другими или отсутствовать.
Ладно, теперь запускаем Regmon, говорим, что мы хотим "Log boot". Забегая вперед, скажу, что Regmon кое-какие записи в реестр не отслеживает, поэтому мы не видим, как и куда он прописывает свой автозапуск. С нехорошими предчувствиями запускаем Autoruns. Дааа, "предчувствия его не обманули". Никакого упоминания о Regmon нет. С некоторыми надеждами просматриваем список служб в "Управлении компьютером->Службы". Пусто.  Но мы не сдаемся, смотрим реестр через regedit, где натыкаемся на некоторые упоминания о Regmon. Затем часик реального времени "морщим репу", один раз перегружаем машину и приходим вот к каким выводам:
Все нижеследующее является чистой воды ИМХО. К сожалению, исходников Regmon у меня нет.
Когда Regmon запускается, он создает в реестре упоминание о некоем устройстве REGMON. Это устройство является скрытым "не-плаг-энд-плэй" устройством, в чем мы можем убедиться, запустив "Свойства компьютера-> Диспетчер устройств-> Вид-> Показать скрытые устройства-> Действие-> Обновить конфигурацию оборудования". В окошечке проявиться квадратик с надписью Regmon. Упоминание об устройстве Regmon лежит в реестре в субключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_REGMON. Но это, естественно, еще не все. Чтобы протоколирование реестра заработало при старте Виндов, созданное "хитрое устройство" должно обслуживаться драйвером. Смотрим, кто откуда берутся драйверы. Оказывается, при включенном  протоколировании, на выходе из программы, Regmon снес яичко REGSYS.SYS в директории System32/Drivers, а в реестре описал службу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Regmon. Если же при закрытии окна протоколирование загрузки отключено, файл драйвера и его описание в реестре исчезают. Просто приятно посмотреть, как работают  программы профессионалов.
Эх, исходники бы еще глянуть... Хотя, ИМХО, это будет вполне возможно через пару лет. Если Руссинович не скурвится, как Петька Нортон
К чему это я все нагородил? К тому, что обнаружить автозапуск программы, маскирующейся под драйвер можно вышеописанным действием "Свойства компьютера-> Диспетчер устройств-> Вид-> Показать скрытые устройства-> Действие-> Обновить конфигурацию оборудования". Надо только запомнить, что там было "до" и что там стало "после". Ну а в случае неудачи можно потралить реестр в районе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services Конечно, все это следует делать только в случае, если Autoruns ничего не нашел.

Но вообще-то это еще не все. Некоторые программы, типа монструозного PQ Partition Magic действуют, ИМХО, и вовсе круто. Они прописываются в mbr для того, чтобы после перезагрузки сделать свою работу, не оглядываясь на Винды.
К сожалению, я не могу проверить свои мысли, поэтому надеюсь, что Вы делали или собираетесь делать то, о чем я сейчас расскажу, в ближайшем будующем.
Определить, подменяется ли mbr, можно следующим нехитрым образом: Нужна машина, на которой стоит Windows и Linux. Загрузка должна идти через Grub/Lilo. Следует попросить PM выполнить какие-нибудь действия (например, поменять размр) над системным диском. Я подчеркиваю, именно системным. Тогда после маленькой работы под Виндами, PM потребует перезагрузиться, чтобы доделать основную работу в "режиме Дос". Вот тут-то и надо посмотреть, пропадет ли после перезагрузки Grub/Lilo. Если пропадет, - PM точно пишет в mbr.

Ладно, заболтался. Удачи!

Отправлено: 09:06, 06-04-2004 | #5