Pull to refresh

Comments 10

Давненько я не брал в руки шашек не писал длинных русских текстов, если найдете очепятку — пишите в Л/С, постараюсь исправить.
Спасибо за познавательную статью. А очепяток не заметил;)

Кстати, а структуры просто для наглядности или это реальные куски кода? Если реальные, то как обстоят дела с выравниванием и паковкой полей?


А за статью — спасибо! Всегда интересно почитать про форматы на железе — подучивает нейронную сеть в мозгу, потом помогает при анализе каких-то данных или просто отладки. Но из статьи я не понял: как была построен сам процесс разбора? Т.е. результат вижу: такой-то формат, такие-то данные, а как происходило понимание какие поля чему соответствуют, какие флаги ставятся в полях флагов и так далее.

Совершенно реальные, а по суффиксам в именах даже можно догадаться, с каких систем взяты.
Про выравнивание переменных я упоминал, там его нет во всех случаях, кроме гипотетического IA64, но я реальных образов с таких машине не видел, только сборки QEMU + TianoCore, там выравнивание есть и оно по восьмибайтовой границе. По упаковке — все пакуется наиболее плотно.
Разбор происходит следующим образом: если есть доступ к машине, то можно получить имена, GUIDы, аттрибуты и данные переменных, просто читая их последовательным вызовом UEFI runtime — функций GetNextVariableName и GetVariable. В итоге половина данных уже есть и их можно затем найти в дампе, остается угадать формат заголовков и значения некоторых аттрибутов, тут помогает открытый код проектов TianoCore, CHIPSEC, плюс некоторые добрый люди в сообществе, вроде тов. xvilka, иногда делятся своими соображениями или даже кодом.
Если же доступа нет, то либо стоит им разжиться, либо просишь дампы прошивки и вывод команды dmpstore и играешь в угадайку по ним.
Отличная статья.
P.S. По поводу опечаток заметил в начале:«я написал ПАРУ статей о форматах данных», правильно будет «написал НЕСКОЛЬКО статей», так как ПАРА применяется преимущественно «Две штуки чего-либо», а 3 — уже «несколько».
Это такой каламбур неудачный про то, что там были части первая, полуторная, и вторая. Я согласен с тем, что «три — это куча, а два — это не куча», но оставлю так.
Спасибо. Было время, умудрился пару раз убить материнскую плату своего ноута с прошивкой на основе Insyde. Зато разобрался во всей этой теме, собрал нужный инструментарий и добился желаемого эффекта (разлочки скрытых меню setup utility и изменения таблицы температур задающих скорость вращения кулера в прошивке EC). Кажется был 2009-2010 год и прошивку приходилось потрошить с помощью скриптов на python и slic tool, т.к. нормальный инструментарий отсутствовал в паблике или еще не был написан. Ну и скриншоты из Hex Dump (или как называется этот софт?) навевают ностальгию, тоже визуализировал структуры с помощью цветных областей.
Всегда пожалуйста.
У меня тоже мое увлечение (переросшее потом в работу) началось со сломанной материнской платы, прошивка которой просто перестала стартовать после очередного обновления. Пришлось покупать прошитый чип на Ебее, но оказалось, что в этом чипе нет данных SMBIOS, и некоторый достаточно дорогой софт после замены отказался признать систему своей. Пришлось разбираться с восстановлением данных, по результату была написана утилита FD44Editor, потом пришлось соорудить комплект для прошивания (FTK), т.к. стандартные утилиты ASUS меня не устраивали, потом я устал от сложностей с PhoenixToot и сел писать собственный велосипед, и все заверте…
Софт этот называется HxD, это один из самых простых и маленьких хекс-редакторов для Windows с GUI. Есть гораздо более продвинутые редакторы вроде 010 Editor или WinHex, но мне хватало и этого всегда.
Only those users with full accounts are able to leave comments. Log in, please.