Понимание концепций обратного проектирования

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

Вы также можете сравнить обратное проектирование с доказательствами математических уравнений. Итак, как используется реверс-инжиниринг?

Что такое обратный инжиниринг?

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

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

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

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

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

Основные части компьютерной архитектуры

Реверс-инжиниринг практически невозможен, если вы не понимаете архитектуру компьютера. Вам необходимо изучить четыре основные части:

  • Ввод: Набор методов для ввода данных.
  • ЦП: ЦП обрабатывает входящие данные и передает их своим владельцам. Это центральный процессор.
  • Память: пространство, в котором временно хранятся данные во время обработки.
  • Выход: результат, который видит конечный пользователь.

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

Погрузитесь в глубины процессора

Крупный план процессора на печатной плате

Если вы действительно хотите стать экспертом в обратном проектировании и глубоко погрузиться в эту тему, вам необходимо иметь подробные знания об оборудовании, низкоуровневых языках и особенно о процессоре. Ключевые темы, которые вам необходимо знать о ЦП:

  1. Блок управления: отвечает за обработку данных в ЦП и их передачу в соответствующие поля. Вы можете думать об этом устройстве как о механизме управления маршрутизацией.
  2. ALU: это расшифровывается как арифметико-логическое устройство. Здесь происходят некоторые арифметические и логические операции. Если вы углубитесь в математику, вы увидите, что основные четыре операции по сути являются вариациями сложения. Таким образом, ALU основан на агрегации. Например, вычитание двух из трех равносильно прибавлению минус два к трем.
  3. Регистры: это области внутри ЦП, в которых хранятся обработанные данные. Существуют различные типы регистров, как и различные типы переменных в языке программирования. Регистр отвечает за поддержание типа и атрибутов назначенных ему данных.
  4. Сигналы: Если вы хотите, чтобы ЦП выполнял множество различных операций одновременно, необходим какой-то метод их организации. Элементы, которые делают это, называются сигналами. Каждая транзакция действует в соответствии с сигналами, которые гарантируют, что она не будет мешать другому процессу.
  5. Шина: путь, используемый данными для перемещения от одного устройства к другому. Обратите внимание, как название предполагает транспорт.

Концепции, которые вы часто будете слышать в реверс-инжиниринге

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

Диаграмма, показывающая различные части памяти, включает стек и кучу.

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

  • 1. EAX: расшифровывается как аккумуляторный регистр. Обычно он сохраняет данные, которые подпадают под категорию арифметических операций.
  • 2. EBX: расшифровывается как базовый регистр. Он играет роль в косвенной адресации.
  • 3. EDX: означает регистр данных. EDX помогает другим регистрам.
  • 4. EIP: обозначает указатель инструкций. Содержит адрес домена для запуска.
  • 5. ESP: содержит базовый адрес.
  • 6. ESI: Содержит информацию об исходном индексе.
  • 7. EDI: сохраняет информацию индекса назначения.

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

Обратное проектирование часто начинается с машинного кода. Вы можете понять многие из вышеперечисленных терминов, если знакомы с ассемблером или владеете 32-битной или 64-битной архитектурой процессора. Если вы хотите изучить ассемблер с нуля, это будет чрезвычайно полезно при реверс-инжиниринге.

Что вы будете делать со всем этим?

Если вы хорошо разбираетесь в реверс-инжиниринге, вы можете выполнять анализ кода независимо от того, с какой операционной системой или архитектурой процессора вы работаете. Например, можно найти взломанные версии многих программ или компьютерных игр. Это совершенно незаконный метод.

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

Похожие записи

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

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

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)