Метка chk_sum_error

Метка 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 эти сегменты будут распаковываться не одновременно, а по одному.



Рубрика: Женский интерес