Опыт ковыряния в AMI BIOS

Замобилил недавно атлон и rom.by был как раз не доступен. Нужен был BP, для изменения КУ при старте.
При очередном ковырянии в BIOSе заметил интересное место в Runtime:

:0001.48E9 6660                   pushad
:0001.48EB 66B807000080           mov eax, 80000007
:0001.48F1 0FA2                   cpuid
:0001.48F3 F6C202                 test dl, 02
:0001.48F6 743C                   je 4934
:0001.48F8 66B9420001C0           mov ecx, C0010042
:0001.48FE 0F32                   rdmsr
:0001.4900 8AD8                   mov bl , al
:0001.4902 80E31F                 and bl, 1F
:0001.4905 66C1E810               shr eax, 10
:0001.4909 6683E01F               and eax, 0000001F
:0001.490D 38D8                   cmp al , bl
:0001.490F 7406                   je 4917
:0001.4911 2EC606FAAF01           mov byte ptr cs:[AFFA], 01

:0001.4917 66C1EA08               shr edx, 08
:0001.491B 6681E2001F0000         and edx, 00001F00
:0001.4922 660BC2                 or eax, edx
:0001.4925 660D00001300           or eax, 00130000
:0001.492B 66BA10270000           mov edx, 00002710
:0001.4931 49                     dec cx
:0001.4932 0F30                   wrmsr

:0001.4934 E80400                 call 493B
:0001.4937 6661                   popad
:0001.4939 C3                     ret 

Пояснение:
cpuid определяет CPU, у XP-M читает msr 0xC0010042 и ставит максимальный КУ.
Короче заменил wrmsr на 2 "nop" и CPU стартует со штатным КУ. И только после этого разблокировал максимальный КУ 24х.

Если заменить
shr eax, 10
на

mov ax, xxyy
nop

то можно в принципе поставить любой КУ.
Позже проверенно лично.
Практическое применение:

BCP760.EXE bios.bin /l

(Список и номера модулей)
bcp760 bios.bin /e runtime.bin 2 

Получаем модуль runtime (у меня 2-ой)
В runtime.bin ищем 66B9420001C0 и меняем не далеко 0F30 на 9090.
BCP760.EXE bios.bin /r runtime.bin 2 /m F000 66C0
Вставляем обратно модуль runtime.
F000 66C0 соответствует RunLoc в оригинальном BIOSe.
Biospatcher конечно остаётся Biospatcherом. wink
На fab51 увидел, что есть AWARDы которые ведут себя как AMI. Скачал, посмотрел, код похожий.
Из принципа попробовал BP 6A13.
Результаты:
Один раз говорит, что мало места. На этом закончил, пока ...
Другой BIOS. Пропатчил, прошил, чёрный экран. Вроде бутблок не записывает. Но это другой разговор.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей