Метка Chk_sum_error Находится вне процедуры Decompress_System_BIOS. ЕСЛИ Результат проверки контрольной суммы оказывается отрицательным, управление дальнейшим исполнением кода передается по этой метке. Код проверки контрольной суммы, приведенный в листинге 5.15, можно имитировать с помощью сценария IDA Pro, показанного в листинге 5.16. Следует отметить, что в Award BIOS версии 6.00PG системная BIOS всегда будет первым упакованным компонентом в копии двоичного файла BIOS, расположенной в области 30_ooooh-37_FFFFh Системной RAM. Также в двоичном файле она всегда находится на границе 64 Кбайт. Переходим к ключевым фрагментам подпрограмм распаковки. Следующая подпрограмма распаковки является версией на языке ассемблера оригинального кода распаковщика LHA, написанного Харухико Окуму — рой на языке С. Начнем с процедуры Decompress, Вызываемой ИЗ Процедуры Decompress_System_BIOS ПО Адресу 2000:FD5Bh. Процедура распаковки, дизассемблированный код которой приведен в листинге 5.19, требует некоторых пояснений: Во время распаковки часть кода распаковщика вычисляет 16-битное значение контрольной суммы упакованного компонента по алгоритму CRC16. При распаковке сегмент в RAM используется процедурой распаковки в качестве сверхоперативной памяти. Область сверхоперативной памяти занимает диапазон адресов от з_ооооь до 3_8000h; ее размер составляет 32 Кбайт. Перед началом распаковки она заполняется нулями. Назначение Адресов этой сверхоперативной памяти описано данном этапе распакована только системная BIOS. Сначала она распаковывается в сегмент Soooh, А затем перемещается в сегменты EOOOh-FOOOh. Остальные упакованные компоненты еще не распакованы, но информация об их первоначальном заголовке была сохранена по адресу 0000:6000h-0000:6xxxh В RAM. Эта информация включает начальные адреса9 упакованных компонентов. Впоследствии, адрес сегментов назначения этих компонентов был изменен на 4000h Процедурой, расположенной в образе двоичного кода BIOS по адресу зо_ооооь-37_ррррь. Это можно делать, так как во время исполнения BIOS эти сегменты будут распаковываться не одновременно, а по одному.
Рубрика: Женский интерес