И еще вопрос. Прочитал статью Криса Касперски.
В частности, там есть момент про "Волшебную" последовательность 55 AA 7x. (в boot-блоке). Сказано, что в момент попадания на нее, предварительная инициализация ПК уже проведена - поэтому можно вставлять свой код.
У меня 8 AMI BIOS. Провел поиск по сигнатуре - и не нашел. Проверил на другой восьмерке, то же самое. После чего оставил только 55 АА, но такая последовательность присутствует только вне boot-блока и соответственно для данных целей не пригодна. Не знаю, почему данный код:
означает, что начальная инициализация завершена (т.е. что означает 0AA55). Но тем не менее, чтобы воспользоваться способом, описанным в статье, мне также надо найти место, когда инициализация процессора(начальная) и памяти завершена.
Из того что по этому поводу сделал:
1. Загрузил прошивку в IDA.
2. Перенес бут-блок из 0x7-го в f000:xxxx сегмент (чтобы заработали переходы)
3. Походил по переходам (начиная с точки входа F000:FFF0), прошел чекпоинт D0(первоначальная инициализация процессора) и попал в место, где по всей видимости происходит тест клавиатуры:
_F000:10B4 mov ah, 0DDh ; '¦'
_F000:10B6
_F000:10B6 loc_F10B6: ; CODE XREF: _F000:10B2j
_F000:10B6 mov al, 0D1h ; 'T' ;
_F000:10B8 out 64h, al ; AT Keyboard controller 8042.
_F000:10BA
_F000:10BA loc_F10BA: ; CODE XREF: _F000:10C4j
_F000:10BA jcxz $+2
_F000:10BC in al, 64h ; AT Keyboard controller 8042.
_F000:10BE cmp al, 0FFh
_F000:10C0 jz loc_F10C6
_F000:10C2 test al, 2
_F000:10C4 jnz loc_F10BA
_F000:10C6
_F000:10C6 loc_F10C6: ; CODE XREF: _F000:10C0j
_F000:10C6 mov al, ah
_F000:10C8 out 60h, al ; AT Keyboard controller 8042.
_F000:10CA jmp short sub_F10A5
Может, конечно, и ошибаюсь. Но похожее на АА55 не нашел.. Так вот хотелось бы знать сигнатуру (и ее пояснение), наличие которой говорило бы о том, что начальная инициализация уже завершена. Т.е. так, чтобы можно было воспользоваться только hex-редактором.
Если кому интересен биос прикрепил.
И еще вопрос. Прочитал статью Криса Касперски.
В частности, там есть момент про "Волшебную" последовательность 55 AA 7x. (в boot-блоке). Сказано, что в момент попадания на нее, предварительная инициализация ПК уже проведена - поэтому можно вставлять свой код.
У меня 8 AMI BIOS. Провел поиск по сигнатуре - и не нашел. Проверил на другой восьмерке, то же самое. После чего оставил только 55 АА, но такая последовательность присутствует только вне boot-блока и соответственно для данных целей не пригодна. Не знаю, почему данный код:
означает, что начальная инициализация завершена (т.е. что означает 0AA55). Но тем не менее, чтобы воспользоваться способом, описанным в статье, мне также надо найти место, когда инициализация процессора(начальная) и памяти завершена.
Из того что по этому поводу сделал:
1. Загрузил прошивку в IDA.
2. Перенес бут-блок из 0x7-го в f000:xxxx сегмент (чтобы заработали переходы)
3. Походил по переходам (начиная с точки входа F000:FFF0), прошел чекпоинт D0(первоначальная инициализация процессора) и попал в место, где по всей видимости происходит тест клавиатуры:
Может, конечно, и ошибаюсь. Но похожее на АА55 не нашел.. Так вот хотелось бы знать сигнатуру (и ее пояснение), наличие которой говорило бы о том, что начальная инициализация уже завершена. Т.е. так, чтобы можно было воспользоваться только hex-редактором.
Если кому интересен биос прикрепил.