вообщем у меня тут такая задача по работе - надо определить где находится флаг в системе, который при загрузке определяет, отображать ли меню выбора режимов загрузки Save Mode - Normal Mode. Понятно что где-то в реестре, но где?! Сейчас ковыряю нтлоадер, т.к. именно он и выводит это меню. Проблема в том что его не подебажиш и что меню выводится уже в защищенном режиме (а он сначала в реальном находится). Я подпачиваю его так чтобы выводить и дампить в нужные моменты значения регистров на экран и т.д. Вообщем может кто об этом что знает?! Винда - XP, 2000
В сорцах винды нтлоадера нет - хотя есть, как ни странно, код бутлоадера (первый сектор в партиции, загружается до нтлоадера). Хотя может я плохо искал - да вроде нормально.
Не понял какое меню? У меня при загрузке можно что-то выбрать только если вовремя нажать F8, да и реестр в то время может быть ещё не собран
ну что не понятно? а если система упала во время работы, то при загрузке она автоматически предлагает выбрать Save Mode - ну что ты как маленький
Ну не падала у меня так система синий экран делал иногда, но никакого меню не выскакивало, загружалась как обычно Это понятно, но смотря на каком этапе, он и с boot.ini работает В винде есть ветка [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl] (но это похоже не то), меню выскакивает какое, то что по F8 с большим кол-вом пунктов или вообще другое?
Смотри обращения к экспортируемой переменной InitSafeBootMode в функции Phase1Initialization модуля ntoskrnl.exe. Принимаемые ею значения такие: Код (Text): NORMALBOOT equ 0 SAFEBOOT_MINIMAL equ 1 SAFEBOOT_NETWORK equ 2 SAFEBOOT_DSREPAIR equ 3 И ещё поищи эти строки и посмотри, что с ними делают. 'SAFEBOOT:' 'MINIMAL' 'NETWORK' 'DSREPAIR' 'BOOTLOG' Это имена ключей прописываемых в boot.ini. Похоже, что при падении система прописывает туда соотв. ключ. И бутлоадер по F8 тоже. http://www.sysinternals.com/information/bootini.html
Проблема в том что его не подебажиш и что меню выводится уже в защищенном режиме Неправда, даже ntdetect.com - исполняется в реале. В защиту комп переводится уже после выполнения ntdetect: зачем для работы с железом такой геморой, как защищенный режим? А ntloader (предполагаю) определяет предыдущую неудачную загрузку по неустановленому флагу успешного завершения работы гдето в partition table загрузочного раздела и с реестром он ВООБЩЕ НЕ РАБОТАЕТ, будь уверен. Кстати ntloader тупо можно отдизасмить - это код и, почти наверняка, не упакованый...
Я подпачиваю его так чтобы выводить и дампить в нужные моменты значения регистров на экран и т.д. Лол. Да не патч ны ничего . Сделай тупой com файл, который регистры тебе на экран будет выводить, назови его ntdetect.com, замени настоящий и будет тебе счастье
LevaGil ntdetect.com тут вообще не причем - я о ntloader'е тупо можно отдизасмить - это код об этом речь и идет почти наверняка, не упакованый а с чего ему быть упакованым? Four-F пасиба! посмотрю