Familiaridad con conceptos clave de ingeniería inversa.

A veces, un ingeniero necesita pensar en la dirección opuesta al análisis del producto. Por ejemplo, un ingeniero mecánico puede sacar conclusiones sobre la forma en que se desarrolla un producto en función de su diseño y propiedades físicas. Pueden ser capaces de producir el mismo producto si tiene un conocimiento profundo de lo que es y en qué consiste.

También puede comparar la ingeniería inversa con las pruebas de ecuaciones matemáticas. Entonces, ¿cómo se usa la ingeniería inversa? Verificar ¿Qué es la Fabricación Asistida por Computadora (CAM)?

Familiaridad con los conceptos principales de la ingeniería inversa - explicaciones

¿Qué es la ingeniería inversa?

La ingeniería inversa es el proceso de descubrir los principios técnicos de una máquina o sistema mediante el análisis de su estructura, función y modo de operación. Este proceso a menudo se realiza descomponiendo un sistema (máquina mecánica, aplicación de software, componente electrónico) en varias partes o tratando de volver a fabricar un sistema similar que realice la misma función que el sistema original. Si observa las áreas de trabajo de ingeniería inversa, puede ver que puede usarlo para muchos propósitos diferentes. Si lo mira desde una perspectiva de seguridad cibernética, las siguientes operaciones son posibles con métodos de ingeniería inversa:

  1. Análisis del código fuente del software de código no abierto.
  2. Análisis de vulnerabilidad de seguridad y su causa.
  3. Análisis de malware.
  4. Grietas y parches.

Puedes ver la ingeniería inversa utilizada incluso en los juegos de computadora hoy en día. Por ejemplo, el desarrollador a menudo crea modificaciones para la interfaz y el juego utilizando métodos de ingeniería inversa.

En el campo de la ingeniería inversa, existen dos enfoques diferentes para el análisis: estático y dinámico. Realiza un análisis estático cuando analiza una aplicación sin ejecutarla realmente. Por otro lado, el método de análisis dinámico requiere que la aplicación se ejecute para monitorear su comportamiento y los datos que utiliza.

Pero antes de realizar un análisis de ingeniería inversa, hay algunos términos importantes que debe conocer sobre cómo funciona la ingeniería informática. Verificar Cómo aislar una computadora, altas medidas de seguridad para quienes sufren de frenesí de privacidad.

Principales partes de la ingeniería informática.

La ingeniería inversa es prácticamente imposible a menos que entiendas la ingeniería informática. Necesitas estudiar las cuatro partes principales:

  1. AporteEl conjunto de métodos disponibles para la entrada de datos.
  2. Unidad Central de Procesamiento (CPU): El procesador interpreta las instrucciones, procesa los datos entrantes y los pasa a otros componentes.
  3. memoria: El área que contiene datos temporalmente durante el procesamiento.
  4. producciónEl resultado final que ve el usuario.

Puede ver todos estos detalles clave a través de un ejemplo fácil de entender, cuando presiona la letra A en su teclado. Cuando se presiona, ocurre un evento de entrada. Después de esta etapa, la CPU procesa los datos y utiliza un pequeño espacio en la memoria para almacenarlos. Finalmente, verá la letra A en su pantalla y finalizará el proceso con la salida.

Profundiza en la CPU

Familiaridad con los conceptos principales de la ingeniería inversa - explicaciones

Si realmente quieres convertirte en un experto en ingeniería inversa y profundizar en este tema, necesitas un conocimiento detallado de los componentes, dispositivos y lenguajes de programación de bajo nivel, especialmente la CPU. Los principales temas que necesitará saber sobre la CPU son:

  1. Unidad de control: Es responsable de procesar los datos en la CPU y transferirlos a los campos correspondientes. Puede pensar en esta unidad como un mecanismo de control de dirección.
  2. ALU: Esta abreviatura significa Unidad Lógica Aritmética. Aquí es donde tienen lugar algunas de las operaciones aritméticas y lógicas. Si profundiza en las matemáticas, verá que las cuatro operaciones básicas son esencialmente variables cuando se suman. Entonces ALU se basa en la agrupación. Por ejemplo, restar dos de tres es lo mismo que sumar dos menos tres.
  3. Registros: Estas son las áreas dentro de la CPU que contienen datos procesados. Hay diferentes tipos de registros, al igual que hay diferentes tipos de variables en un lenguaje de programación. El registro es responsable de mantener la clase y características de los datos que le son asignados.
  4. Señales: Si desea que la CPU realice muchas operaciones diferentes al mismo tiempo, es necesaria cierta forma de organizarlas. Los elementos que hacen esto se llaman etiquetas. Cada transacción opera con señales que aseguran que no interfiere con otro proceso.
  5. transportadorLa ruta utilizada por los datos para viajar de una unidad a otra. Observe cómo el nombre sugiere transporte.

Conceptos que a menudo escuchas en ingeniería inversa

Comprender cómo la CPU procesa los datos y los almacena en la memoria, junto con el concepto de registros, puede ser muy útil cuando se realiza ingeniería inversa. En particular, puede usar el siguiente diagrama para comprender mejor el concepto de memoria:

Familiaridad con los conceptos principales de la ingeniería inversa - explicaciones

Finalmente, para el análisis de ingeniería inversa, necesita conocer algunos conceptos básicos sobre registros. Es uno de los temas en los que más te centrarás. Aquí hay algunas explicaciones sobre datos, índices y registros de índice que le serán útiles de la manera más concisa:

1. EAX: Abreviatura de Registro Acumulado. Por lo general, guarda datos que se incluyen en la categoría de operaciones aritméticas aquí.
2. EBX: Abreviatura de Registro Básico. Desempeña un papel en el procesamiento indirecto.
3. EDX: Registro de datos. edx ayuda a otros registros.
4. EIP: acrónimo de Indicador de Instrucción. Lleva la dirección de dominio para arrancar.
5. ESP: lleva la dirección base.
6. ESI: contiene información de índice de fuentes.
7. EDI: Contiene información de índice de destino.

Debe investigar todos estos detalles por separado para comprender los matices. Pero si observa los conceptos básicos y trata de comprender la lógica comercial, sin importar en qué arquitectura de procesador se encuentre, analizar el código para la ingeniería inversa es muy fácil.

La ingeniería inversa a menudo comienza con el código de máquina. Es posible que comprenda muchos de los términos anteriores si está familiarizado con el ensamblaje o tiene conocimiento de las arquitecturas de procesadores de 32 o 64 bits. Si quieres aprender a ensamblar desde cero, te será muy útil para la ingeniería inversa. Verificar ¿Qué es la aceleración de PC y cómo puedo solucionarlo?

¿Qué harás con toda esta información?

Si tiene un buen conocimiento de ingeniería inversa, puede realizar análisis de código independientemente del sistema operativo o la arquitectura del procesador con el que esté trabajando. Por ejemplo, es posible acceder a versiones pirateadas de muchas aplicaciones o juegos de ordenador. Este es un método completamente ilegal.

Sin embargo, si va a convertirse en un profesional de la seguridad cibernética ético, deberá utilizar la ingeniería inversa para comprender por qué se comprometió este software. Si quieres avanzar en la ingeniería inversa o estás empezando, será una buena opción si intentas aprender sobre la relación entre el hardware y el código. Puedes ver ahora Cómo elegir la certificación de TI adecuada y no arrepentirse.

Ir al botón superior