Introducción a la ingeniería inversa

La ingeniería inversa es un método para restaurar un producto a partir de una evaluación de su estructura de software, requisitos de funcionalidad y funciones. Esto crea una lista del software y extrae el conocimiento del mismo. Esta tecnología está destinada a promover el trabajo de mantenimiento al mejorar la comprensión de los sistemas y generar los documentos necesarios para un sistema heredado.

¿Cuáles son algunos usos comunes de la ingeniería inversa?

1. Hacer nuevos productos compatibles más baratos que los disponibles actualmente en el mercado.

2. Hacer que el código sea más potente para interoperar o vincular diferentes sistemas operativos o bases de datos.

3. Descubrir características comerciales descoordinadas del producto.

4. Esta forma de investigación involucra a individuos en un proceso productivo de aprendizaje sobre la operación de programas y servicios. El método para identificar algo y explicar cómo funciona es una forma importante de aprender y desarrollar cómo crear un sistema. La ingeniería inversa permite duplicar un componente existente al recopilar las dimensiones físicas, características y propiedades del componente. Se debe llevar a cabo un análisis del ciclo de vida bien planificado y un análisis de costo o beneficio para justificar los proyectos de ingeniería inversa antes de intentar la ingeniería inversa.

Consta de los siguientes pasos, de acuerdo con la Metodología:

  • Compare sus observaciones con el dispositivo real y sugiera una mejora.
  • Observar y analizar los mecanismos operativos del sistema.
  • Diseccionar y estudiar el funcionamiento interno de un dispositivo mecánico.

Un investigador puede recopilar los datos técnicos necesarios para registrar la función del software o parte de un proceso mediante ingeniería inversa. Los investigadores pueden examinar la fortaleza de los sistemas y pueden identificar sus debilidades en términos de rendimiento, interoperabilidad y seguridad cuando utilizan software de ingeniería inversa. El método de ingeniería inversa ayuda a los investigadores a comprender cómo funciona un sistema y qué elementos del software conducen a que no funcione. Los productores independientes pueden estar interesados ​​en un mercado competitivo que reconozca las mejoras realizadas a los bienes dominantes. Por ejemplo, es necesario para auditorías de seguridad que permitan a los usuarios de código proteger mejor sus sistemas y redes al descubrir fallas de seguridad. A menudo comienza con la creación de mejores diseños y la interoperabilidad de los productos existentes.

Los pasos a seguir para la ingeniería inversa se dan de la siguiente manera:

  1. Información de colección
  2. Grabar la funcionalidad
  3. Examinando la información
  4. Control de flujo de grabación
  5. Extrayendo la estructura
  6. Registro de flujo de datos
  7. Revisar diseño extraído
  8. Generar documentación

¿Cuáles son algunos casos legales o cuestiones éticas?

Las nuevas decisiones judiciales muestran que la existencia legal y ética de las técnicas de ingeniería inversa se utiliza para lograr la interoperabilidad con un programa informático desarrollado de forma independiente. Lexmark presentó una demanda contra SCC en diciembre de 2002, acusándolo de violar tanto la ley de derechos de autor como la DMCA. El código utilizado en el cartucho de impresora Lexmark fue diseñado por SCC para crear cartuchos compatibles. Según el mundo de las computadoras, la afirmación de Lexmark de que los chips Smartek de SCC contienen tecnología Lexmark protegida por derechos de autor. El programa gestiona la interacción entre las impresoras Lexmark y los cartuchos de tóner; sin él, los cartuchos de tóner rehabilitados no funcionarán con las impresoras de Lexmark. “El tribunal dictaminó que 'la ley de derechos de autor no debe usarse para evitar la interoperabilidad entre los productos de una empresa y los de sus competidores. En una decisión de los Estados Unidos. "La DMCA no prohíbe a los desarrolladores de código usar ingeniería inversa para acceder a material electrónico protegido por derechos de autor si lo hacen para lograr la interoperabilidad con un programa informático desarrollado de forma independiente", dijo la Oficina de Derechos de Autor en octubre de 2003.

¿Qué es la implementación legal?

  • Protección de patente: protege el concepto detrás de la operación de un nuevo producto.
  • La protección de derechos de autor solo cubre la forma y el diseño de un producto.

Una patente no es más que una señal de advertencia a un rival para desalentar la competencia, según NPD-solutions. Solo NPD-solutions dice que un rival puede hacer una de las siguientes cosas si hay interés en una idea: RE generalmente se realiza utilizando la pared china o de sala limpia. Sala limpia, se realiza de forma secuencial.

¿No es ético hacer ingeniería inversa?

Este problema es ampliamente discutido y aparentemente no hay una respuesta exacta a la división. El de la propiedad intelectual es el reclamo número uno contra la ingeniería inversa. Debido a que Lexmark y las empresas como ellos gastan tiempo y dinero desarrollando productos, les resulta poco ético que otros puedan aplicar ingeniería inversa a sus productos. También hay elementos que se han visto perjudicados por estas actividades, como Bit Keeper. ¿Por qué las empresas y los individuos deberían gastar grandes cantidades de recursos en la adquisición de propiedad intelectual que sus rivales podrían revertir a una fracción del costo?

Artículos recomendados

Esta es una guía de ingeniería inversa. Aquí discutimos los usos, los casos legales, los problemas éticos y la implementación legal de la ingeniería inversa. También puede consultar el siguiente artículo para obtener más información:

  1. Ingeniería inversa con Python
  2. Preguntas de la entrevista de ingeniería de software
  3. Carreras como ingeniero de software
  4. Preguntas de entrevista de ingeniería eléctrica