E123

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору "(с)Летели два крокодила. Один желтый, другой в Африку..." Второй день складываю паззл из CFW. Взял "лося", SD1A. Разобрался с заголовками, распаковал, склеил. Расчетно получилось два куска: один большой целый, грузится с 0x6031000. И в памяти диска он по этим изначально расчетным адресам есть, но при работе отличается несколькими байтами. Второй кусок маленький - с векторами прерываний, 64 байт, лежит в памяти с 0x1000000. Еще в уме держим сам бут-код, который в этот момент уже загружен в память и всё это сдвигал-распаковывал... А теперь сам вопрос: как имея всю эту мешанину в памяти по трём разным адресам высчитать предпоследнюю КСку в модуле CFW? Ту самую,которая после последнего куска и после которой до конца модуля идёт куча FFFFF... и КС сегмента (ну с этой последней всё просто). После перепаковки при загрузке без неё всё к чертям падает в LED CC... Кому интересно, подробности здесь https://yadi.sk/d/GUV7pBQpoYQIyg |