Восстановление информации и география. Часть 4.

В этой части речь пойдет об исследовании дампов информации, также вашему вниманию будет предоставлена практически полностью переделанная программа из прошлых статей. Предыдущий пост: часть 3.

Новая версия программы открывает файл с расширением img (имеджи дисков) и отображает его содержимое в виде блоков. Сразу после запуска вы увидите вот такое окно:

QBarMap

QBarMap

Нажав на «дискету» в левом верхнем углу программы, нужно указать исследуемый файл с расширением «.img». Далее, программа отображает процесс загрузки, который разделит указанный файл на блоки по 512 байт и проверит каждый из них на содержание: состоит ли он только из нулей или в блоке есть хотя бы один байт отличный от нуля.

Загрузка данных QBarMap

Загрузка данных QBarMap

По завершении загрузки покажутся блоки в начале файла. Зеленым цветом обозначены блоки, где есть хотя бы один не нулевой бит, а синим блоки состоящие только из нулей. Когда вы проводите курсором мыши по блокам — появляются их номера в виде всплывающих подсказок.

QBarMap

QBarMap

Справа вместо традиционной полосы прокрутки карты отображается как бы вид сверху на весь файл/диск. Такое решение автор подсмотрел в дизассемблере IDA, где можно по такому виду сверху окинуть взглядом весь загруженный для разбора кода файл.

Навигация в дизассемблере IDA

Навигация в дизассемблере IDA

Если навести курсор мыши на вид сверху, то будет показан порядковый номер блока на который указывает курсор.

Номер блока

Номер блока

Если кликнуть, то номер блока будет отображен в тулбаре в текущей позиции и карта загрузится с этой позиции. Так же в тулбаре можно ввести номер блока и нажать «решетку», чтобы введенный блок начала участка карты отобразился.

Навигация QBarMap

Навигация QBarMap

Можно еще листать карту при помощи кнопок «прокрутка вперед» и «прокрутка назад» на количество блоков умещающееся в текущий момент на экране.

Немного о конструкции программы. Операции с загруженной картой производятся в отдельном потоке, а в основном потоке идет рисование графики. Таким образом, обработка массива с картой и рисование карты происходят параллельно. В момент загрузки карты, отображается пустой экран. В будущем такое разделение позволит на ходу упаковывать и распаковывать карту в моменты, пока её часть еще рисуется на экране.

Ограничения: большие файлы отображаться либо не будут, либо все будет очень медленно. В будущих оптимизациях программы это ограничение будет преодолено.

В таком виде, программа уже больше подходит, как инструмент для исследования дампов и устройств хранения информации. В следующих сериях подключим к программе возможность рассматривать реальный жесткий диск. Но перед этим нужно оптимизировать формат хранения данных самой карты.

А еще, один и тот же исходный код можно собрать как под Windows, так и под Linux:

QBarMap в Linux на фоне среды разработки Qt.

QBarMap в Linux на фоне среды разработки Qt.

Исходный код программы на GitHub’е: https://github.com/rlabru/QBarMap/tree/master/042_QBarMap

До новых программных встреч. Да хранит ваши данные бэкап!

Поделиться ссылкой на пост в соц. сетях

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *