Знание основных концепций реверс-инжиниринга

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

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

Знакомство с основными понятиями реверс-инжиниринга - пояснения

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

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

  1. Анализ исходного кода программного обеспечения с закрытым исходным кодом.
  2. Анализ уязвимости безопасности и ее причины.
  3. Анализ вредоносных программ.
  4. Взлом и латание.

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

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

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

Основные части вычислительной техники

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

  1. ВходНабор методов, доступных для ввода данных.
  2. центральный процессор (ЦП): Процессор интерпретирует инструкции, обрабатывает входящие данные и передает их другим компонентам.
  3. объем памяти: Область, которая временно содержит данные во время обработки.
  4. выходКонечный результат, который видит пользователь.

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

Углубитесь в процессор

Знакомство с основными понятиями реверс-инжиниринга - пояснения

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

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

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

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

Знакомство с основными понятиями реверс-инжиниринга - пояснения

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

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

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

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

Что вы будете делать со всей этой информацией?

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

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

Перейти к верхней кнопке