В этом посте продолжение разбора микропрограммы жесткого диска WD21000. Этот жесткий диск выбран для демонстрации повторения платы электроники на современной элементной базе. Чтобы это сделать нужно подробнейшим образом разобрать его программу управления в дизассемблере IDA. Так что продолжаем разбор программ. В прошлый раз мы смотрели команду 0xEC. Вот она: И сейчас интересно вот что посмотреть… У жесткого диска есть микросхема… Read more »
Как обычно, орда/империя хочет похитить секрет бессмертия/магнитной записи у заокеанских и не очень джедаев 🙂 После некоторого перерыва продолжаем разбирать старый WD21000 емкостью аж целый гигабайт! Но теперь мы, кроме как разбирать, будем рядом еще постепенно собирать обратно. Правда, автор еще пока не располагает достаточным количеством дисков из семейства нашего подопытного. Но, думаю, это решится в ближайшие месяц/два. А пока… Read more »
В предыдущих частях мы начали дизассемблирование на основе только документации к процессору. Однако, хорошо бы посмотреть как программа управления связана с остальной аппаратурой. Для этого вооружимся тестером с пищалкой, платой WD21000, документацией на микросхемы и начнем рисовать схему электрических соединений. Так как в данном исследовании мне хотелось бы по максимуму использовать операционную систему Linux, то рисовать схему будем в KiCad…. Read more »
Обмен данными с жестким диском производится через интерфейс IDE, SATA (или какой-либо другой) при помощи стандартизированных команд. Чтобы прочитать данные с диска достаточно использовать всего две команды: идентификации и, собственно, чтения. Первая нужна для получения размера диска и определения типа команды чтения, которая будет работать со всей поверхностью диска. Если помните, то за историю своего существования жесткие диски преодолевали целый… Read more »