Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

дозагрузочное

0 views
Skip to first unread message

Alexander Zabairatsky

unread,
Jul 30, 2006, 11:32:22 PM7/30/06
to
Hello Alexander!

11 Jul 06 11:57, Alexander Lemenkov wrote to Nickita A Startcev:


NS>> Подменяю MBR своим кодом.
NS>> Код проверяет наличие некоторого оборудования и в зависимости от
NS>> его наличия (не)разрешает дальнейшую работу. все регистры (кроме
NS>> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а
NS>> после восстанавливаю, передаю управление оригинальному МБР,
NS>> загрузив его по оригинальному адресу (0:7c00). Оригинальный МБР
NS>> запускает бутсектор, бутсектор пускает ntloader. ntloader
NS>> показывает меню, но при выборе вин2к (как и любого другого
NS>> пункта) имеем мертвый вис.

NS>> Что я мог запортить кроме регистров процессора? Какого фига оно
NS>> виснет так поздно?

AL> Скорее всего NT-лоадер лезет в MBR, и находит там твой код без таблиц
AL> разметки. Hеплохо еще написать обработчик int 13h, который будет
AL> подставлять сохранённый сектор при чтении 0-0-1

В каких-то подобных делах видел более простую вещь: у нового самодельного 0-0-1
присутствует _точно_ та же таблица разделов. Вряд ли загрузчики "больших" ОС
смотрят на код, а вот таблицу разделов они могут перечитывать не один раз, так,
что и обработчик int 13h может не помочь - оно может перечитываться уже при
запущенных дисковых драйверах ОСи, когда про БИОС давно забыли.

Всего доброго!

А. Забайрацкий.


0 new messages