День добрый!
Читал статью "- Искусcтво перешивки BIOS -", возник такой вопрос:
можно ли испортить CRC на "Хабовых" флэшах (чтобы принудительно запустить бутблок для перешивки)?
//флэш 4-мбитная (впаяна :( ), какая точно ещё гляну
------------
да, в режиме LPC по 4-х битной шине похоже затруднительно это сделать -(
Короче, все банально. Достаточно лишь одного удачного единичного корочения любого интерфейсного вывода (FWH0-3, коротить можно банально на землю). Наша задача - испортить чексумму ВО ВРЕМЯ распаковки модулей, ПОСЛЕ прохождения первичной инициализации, но ДО зашадовления биоса в основную память (ибо с этого момента все корочения бессмысленны - флэшка не задействуется вообще).
Естественно, "испортить чексумму" понятие случайное, но ничто не мешает повторить операцию несколько раз. Вероятность зависит от конкретной платы, биоса и везучести. :)
Итак, последовательность действия такова. Присоединяем каким-нибудь образом проводок на удобную ножку FWH0/1/2/3 (контакты 13/14/15/17). Включаем компьютер. Отсчитываем 1-3 секунды и делаем одно корочение на корпус). Больше - бессмысленно. В результате корочения "зарано" POST зависнет. Запоздно - зашадовится и корочение проигнорируется. Если удачно - через пару секунд сработает бутблок.
Включаем, отсчитываем какой-то период (перебирать периоды обычно стоит постепенно от секунды до трех - обычно именно в этом промежутке нужный нам момент распаковки). Делаем одно прерывистое корочение и ждем секунд пять. Если бутблок не сработал - делаем ресет либо выключаем-включаем. Десяток попыток на каждый интервал, думаю, вполне хватит. Хотя "стандартные" 2-2.5 секунды могут дать и результат с первого раза.
У кого есть посткарточка - коротим сразу же после появления кода С3 для аварда. Для амишников посмотрю и проверю завтра.
п.с. проверено на FWH i82802AB для чайника на i820, Award-BIOS.
Я понимаю так , что в моём случае всё вышеперечисленное не сработает?
Жижабуте под К7 на ВИА? Тады действительно у Вас параллельная флеша. А методы испортить ее CRC описаны в статье apple_rom'a "Искусство перешивки"
Да, так именно в этом и дело - ошибка из-за замыкания попадает с определённой вероятностью (зависящей напрямую от объёма/времени считывания BIOS и частоты замыканий).
Только я исходил из того, что ошибка попадает именно на время чтения из флэшки, а не на время распаковки. -)
У меня получилось что 4Mbit передаётся примерно за 1/6 секунды (кажется так, исходя из 1 байт за 10 тактов по даташиту),
и соотв. генеря замыкания с такой частотой с вероятностью 0.999
сбиваем блок данных.
Размер выбитого блока зависит от времени замыкания, оно достаточно мало
(опять же считал - у меня вышло порядка 1KB)
вот. -)
Так что у меня было вполне научное обоснование, а вовсе не метод тыка! =)