La ingeniería inversa ( ingeniería inversa, ingeniería inversa , ingeniería inversa ; ingeniería inversa en inglés ) es el estudio de algún dispositivo o programa terminado, así como la documentación del mismo para comprender el principio de su funcionamiento; por ejemplo, para descubrir características no documentadas (incluidos los marcadores de software ), realizar un cambio o reproducir un dispositivo, programa u otro objeto con una funcionalidad similar, pero sin copia directa.
Por lo general, se usa si el creador del objeto original no proporcionó información sobre la estructura y el método de creación (producción) del objeto. Los propietarios de los derechos de autor de dichos objetos pueden alegar que la ingeniería inversa o el uso de sus resultados viola su derecho exclusivo bajo la ley de derechos de autor y patentes [1] [2] .
En 2016, en una reunión de la Comisión Gubernamental sobre Sustitución de Importaciones, el Ministro de Industria y Comercio de la Federación Rusa, D.V. Manturov , anunció planes para crear un centro de ingeniería inversa sobre la base del Fondo de Desarrollo de la Industria [3] .
Copia de varios mecanismos y máquinas sin desarrollo real. Le permite reproducir un diseño exitoso a un costo mínimo, pero hay casos de copiado y máquinas fallidas.
Ejemplos:
La ingeniería inversa de dispositivos electrónicos apareció en los albores de la ingeniería de radio. En las décadas de 1920 y 1930, varias empresas copiaron tubos de radio y soluciones de circuitos para su uso mutuo . Es con ingeniería inversa, y no con producción con licencia, que los tubos de radio del mismo propósito de casi todos los fabricantes resultaron ser unificados e intercambiables. Por ejemplo, la lámpara europea EL95 es un clon de la anterior lámpara americana 6KA5. También hay ejemplos inversos: las americanas 6CA5 y KT88 son clones de la lámpara europea EL34 . Lo mismo se aplica a los tubos de radio soviéticos, muchos de los cuales son clones de tubos estadounidenses obtenidos bajo Lend-Lease (por ejemplo, 6Zh4, 6P9) o tubos alemanes de equipos capturados (6G2, GU50). Junto con las lámparas, también se copiaron esquemas típicos para su inclusión, es decir, de hecho, diagramas de bloques de equipos de radio. Por lo tanto, fue gracias a la ingeniería inversa que la era de las lámparas se caracterizó, de hecho, por la transición al diseño estándar en la electrónica. En particular, todos los receptores superheterodinos domésticos producidos en el mundo en realidad se construyeron de acuerdo con tres esquemas, que fue determinado por la lámpara de la unidad de mezcla heterodina: triodo doble , triodo heptodo o pentagrid . Lo mismo ocurría con los amplificadores de baja frecuencia. No había más de una docena de esquemas típicos para su construcción, dependiendo de la potencia de salida: ciclo simple de baja potencia en una lámpara combinada del tipo 6F3P, ciclo simple de baja potencia con un bloque de timbre en un triodo doble (tipo 6N1P) y un pentodo de salida (6P14P, EL84) o un tetrodo de haz (6P3S, EL34), push-pull con triodo inversor de fase (6N1P + 2x6P14P), push-pull multietapa (6N8P + 2x6P6S + GU50). Los televisores en blanco y negro de las décadas de 1960 y 1970 se construyeron de hecho en dos esquemas: uno para dispositivos muy simples con tamaños de pantalla pequeños sin escaneo horizontal APCG y APCHIF (similar a los televisores soviéticos UNT-35), el segundo esquema estaba destinado a dispositivos en cinescopios con una desviación del haz angular de 110°, APCG, APCHiF (UNT-59 soviético, la mayoría de los televisores europeos) .
La investigación y la ingeniería inversa de programas generalmente se llevan a cabo con el objetivo de modificarlos, copiarlos o, por ejemplo, escribir generadores de claves , cuyo algoritmo se obtiene a partir del análisis del algoritmo para verificarlos. Además, la investigación del programa se utiliza para obtener información confidencial sobre la estructura interna del programa, sobre el protocolo de intercambio de red con el servidor, el hardware, la clave de seguridad o la interacción con otro programa. Otra área de aplicación es la obtención de información sobre formas de exportar datos desde numerosos formatos de archivo propietarios [5] .
Con el desarrollo de Internet , los sistemas operativos y programas populares se están investigando cada vez más para encontrar vulnerabilidades en ellos , o las llamadas. "agujeros". En el futuro, los agujeros encontrados pueden usarse para obtener acceso no autorizado a una computadora o red informática remota. Por otro lado, la ingeniería inversa se utiliza cuando las empresas de antivirus investigan malware para agregar sus firmas a las bases de datos de sus productos.
Un ejemplo bien conocido de ingeniería inversa es la investigación del BIOS de la computadora personal de IBM , que fue un paso importante hacia el desarrollo de la producción de terceros de computadoras compatibles con IBM. [6] [7] La creación del servidor Samba [8] [9] (incluido con el sistema operativo GNU/Linux y trabajando con servidores basados en Windows ) también requirió la ingeniería inversa del protocolo SMB de Microsoft . La creación de muchos clientes ICQ también requirió ingeniería inversa del protocolo ICQ .
El desarrollo de software inverso se realiza utilizando las siguientes técnicas.
Actualmente, las palabras "ingeniería inversa" se entienden con mayor frecuencia como las llamadas. ingeniería inversa de sala limpia , es decir, un proceso en el que un grupo de desarrolladores analiza el código de máquina de un programa , compila un algoritmo para un programa dado en pseudocódigo o, si el programa es un controlador de dispositivo , compila especificaciones exhaustivas para el dispositivo de interés. Después de recibir las especificaciones, otro grupo de desarrolladores escribe su propio controlador en función de las especificaciones o algoritmos recibidos . Este enfoque le permite evitar acusaciones de infracción de derechos de autor sobre el programa fuente, ya que según las leyes, por ejemplo en los EE . UU ., cae bajo el concepto de " uso justo ", es decir, el uso justo del programa original. El resultado de la ingeniería inversa rara vez es idéntico al original, lo que evita la responsabilidad legal, especialmente si el primer equipo de desarrolladores controla la ausencia de esta identidad y la ausencia de infracción de marca y patente.
Bases de datosSe puede utilizar al crear un modelo de base de datos relacional .
Ingeniería inversa del producto de un competidor para descubrir su dispositivo, principio de funcionamiento y evaluar las posibilidades de crear un análogo.
Por ejemplo, varios fabricantes de equipos fotográficos, como Sigma , Tamron , Tokina y Carl Zeiss , producen lentes con montura tipo EF de Canon . Tienen ingeniería inversa y sus fabricantes no tienen acceso a las especificaciones de Canon. .
por la mayoría hechos conocidos de ingeniería inversa fueron:
diccionarios y enciclopedias | |
---|---|
En catálogos bibliográficos |
|