сам биос во всех трех дампах находится по разным адресам
Я не вижу в этом никакого криминала, думаю, что вопрос решается инструкциями типа JMP. Есть отправная точка, которая располагается по фиксированному адресу, а все остальное можно тасовать как угодно. Я не беру пока во внимание то, как это будет прошиваться, я рассуждаю на тему, как это должно исполняться процессором.
С этой точки зрения оба слитых дампа (ТС и мой) - одинаковы. В них по адресу 102FF0 записана инструкция перехода
EA AAFF00F0, то есть far jmp F000:FFAA. Там находится инструкция
E9 C3 00, то есть jmp 00C3,
причем этот переход уже относительный. Куда он ведет дальше, мне лень смотреть. Прямо в бутблок !
Тот же стартовый код наблюдается в прошивке с сайта, только там он располагается на "правильном месте".
При этом очевидно, что если загрузить непосредственно в память код, слитый с флеши, то по адресу F000:FFF0 окажутся нули. Пропуская эти нули, можно докатиться до странной инструкции
EA DE 14 00 F0, то есть far jmp 000F14DE,
после чего попадаем в поле значений FF. Прокатившись по ним, можно, наверное, докатиться до бутблока. При этом нужно не нарваться прерывание по неправильной команде, ибо "катимся" мы не по nop`ам, а по какому-то мусору типа 00 и FF. Все это "катание" представляется кайне сомнительным в свете наличия "правильной" команды перехода, расположенной по адресу 102FF0.
Следовательно, этот код нужно грузить в память не непосредственно, а пропустив на флешке первые 3000h.
А теперь, что мы имеем еще. Flash в 1 Мегабайт, залитую в нее прошивку с сайта, запуск платы и ее работу до кода E1 с памятью и кода Е0 без памяти. Неужели такое возможно, если с самого начала промахнуться мимо инструкции far jmp F000:FFAA ???
Цитата:
сделали предположения и "смело ринулись менять и писать"
А результаты получились интересные и содержательные. При этом не вытекающие из анализа дампов.
Цитата:
обижаться то на что?
на речевые обороты, не характерные для этого сайта
Я не вижу в этом никакого криминала, думаю, что вопрос решается инструкциями типа JMP. Есть отправная точка, которая располагается по фиксированному адресу, а все остальное можно тасовать как угодно. Я не беру пока во внимание то, как это будет прошиваться, я рассуждаю на тему, как это должно исполняться процессором.
С этой точки зрения оба слитых дампа (ТС и мой) - одинаковы. В них по адресу 102FF0 записана инструкция перехода
EA AAFF00F0, то есть far jmp F000:FFAA. Там находится инструкция
E9 C3 00, то есть jmp 00C3,
причем этот переход уже относительный.
Куда он ведет дальше, мне лень смотреть. Прямо в бутблок !Тот же стартовый код наблюдается в прошивке с сайта, только там он располагается на "правильном месте".
При этом очевидно, что если загрузить непосредственно в память код, слитый с флеши, то по адресу F000:FFF0 окажутся нули. Пропуская эти нули, можно докатиться до странной инструкции
EA DE 14 00 F0, то есть far jmp 000F14DE,
после чего попадаем в поле значений FF. Прокатившись по ним, можно, наверное, докатиться до бутблока. При этом нужно не нарваться прерывание по неправильной команде, ибо "катимся" мы не по nop`ам, а по какому-то мусору типа 00 и FF. Все это "катание" представляется кайне сомнительным в свете наличия "правильной" команды перехода, расположенной по адресу 102FF0.
Следовательно, этот код нужно грузить в память не непосредственно, а пропустив на флешке первые 3000h.
А теперь, что мы имеем еще. Flash в 1 Мегабайт, залитую в нее прошивку с сайта, запуск платы и ее работу до кода E1 с памятью и кода Е0 без памяти. Неужели такое возможно, если с самого начала промахнуться мимо инструкции far jmp F000:FFAA ???
А результаты получились интересные и содержательные. При этом не вытекающие из анализа дампов.