Reverse engineering, Реверс-инжиниринг

#6 Реверс-инжиниринг. Среда операционной системы.

Здравствуйте, дорогие друзья.

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


Файловая система
Файловая система — это место, где данные хранятся непосредственно на физическом диске. Эти файловые системы управляют тем, как файлы и каталоги хранятся на диске. Различные дисковые файловые системы имеют свои собственные варианты эффективного чтения и записи данных.
Существуют различные дисковые файловые системы, такие как FAT, NTFS, ext2, ext3, XFS и AUFS. Наиболее распространенными файловыми системами, используемыми Windows, являются FAT32 и NTFS. В файловой системе хранится информация о путях к каталогам и файлам. Он включает в себя имя файла, размер файла, отметки о дате и разрешения.
На следующем снимке экрана показана информация, хранящаяся в файловой системе о bfsvc.exe:

информация, хранящаяся в файловой системе о bfsvc.exe

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


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

список процессов в диспетчере задач Windows

Система реестра
В Windows реестр представляет собой общую базу данных, содержащую общесистемную конфигурацию и параметры приложений. Ниже приведены примеры хранимой в реестре информации:
• Связанные программы, которые выполняют определенные файлы:
• Файлы DOCX ассоциированы с Microsoft Word
• Файлы PDF ассоциированы с Adobe Reader
• Связанные значки с определенными файлами и папками
Настройки программного обеспечения:
• Конфигурация удаления
• Сайты обновления, используемые порты, идентификаторы продуктов
• Профили пользователей и групп
Настройка принтера:
• Принтер по умолчанию
• Названия драйверов, предназначенные для определенных служб
Реестр хранится в файлах hive. Список файлов hive также находится в самом реестре, как видно на следующем скриншоте:

Список файлов hive также находится в самом реестре

Для записи и чтения информации из реестра требуется использование API-интерфейсов реестра Windows. Реестр можно просмотреть визуально с помощью редактора реестра. Записи в правой панели редактора реестра являются разделами реестра. На левой панели значения реестра находятся в столбце «Имя», как видно на следующем скриншоте:

На левой панели значения реестра находятся в столбце "Имя"

На этом все. Всем хорошего дня!

Цикл статей по реверс-инжинирингу.