Создаем новый модуль BIOS, который при загрузке в память будет модифицировать ядро. Этот новый модуль BIOS содержит основный код вашего руткита, модифицирующего обработчик прерывания. Модифицированный обработчик будет исполняться вместо «родного» обработчика. Осуществляем вставку кода BIOS в таблицу переходов POST. Зная местоположение кода инициализации обработчика прерывания BIOS в таблице переходов POST, новый элемент таблицы переходов POST должен быть вставлен сразу же после кода инициализации обработчика прерывания BIOS, чтобы Распаковать код вашего обработчика и изменить процедуру обработки прерывания таким образом, чтобы при исполнении»родног0″ обработчика прерывания осуществлялся переход к вашему обработчику Обратите внимание, что может возникнуть необходимость поместить код вашего «расширения» обработчика прерывания в память выше предела в 1 Мбайт, так как свободное пространство ниже этого предела ограничено В таком случае, в ваш код, внедренный в таблицу переходов POST, потребуется вставить код для переключения в плоский режим реального времени
С помощью утилиты Cbrom, применяя опцию /other, интегрируйте новый модуль в двоичный файл BIOS. Тем не менее, необходимо следить за элементом segment:offset заголовка LZH. Этот элемент необходимо обрабатывать таким же образом, как и другие сжатые компоненты BIOS, не являющиеся системной BIOS и ее расширением. В вашей собственной процедуре «расширения» прерывания I3h вы можете делать все, что пожелаете. Например, сюда можно поместить код, модифицирующий ядро. Но, скорее всего, этот код окажется настолько объемистым, что для его внедрения не хватит свободного места, имеющегося в системной BIOS. В таком случае, вы сможете поместить его в отдельный модуль BIOS. Однако эта задача будет уже более сложна в реализации. Теоретически, процедура для достижения этой цели может состоять из следующих шагов:
Рубрика: Женский интерес