Diferencia entre revisiones de «Ingeniería inversa»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 189.234.57.167 a la última edición de Matdrodes
Línea 1: Línea 1:
El objetivo de la '''ingeniería inversa''' es obtener [[información]] a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado. Los productos más comunes que son sometidos a la ingeniería inversa son los [[software|programas de computadoras]] y los [[componente electrónico|componentes electrónicos]], pero básicamente casi cualquier proceso puede ser sometido a un análisis de Ingeniería Inversa.
La ingeniería inversa
De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
La ingeniería inversa (RE) es el proceso de descubrir de los principios tecnológicos de un dispositivo, objeto o sistema por análisis de su estructura, función y operación. A menudo consiste en tomar algo (por ejemplo, un dispositivo mecánico, componentes electrónicosO software programa) de distancia y analizar su funcionamiento en detalle para ser utilizados en el mantenimiento, o para tratar de hacer un nuevo dispositivo o programa que hace lo mismo sin copiar nada de la original.


Este método es denominado ingeniería inversa porque avanza en dirección opuesta a las tareas habituales de [[ingeniería]], que consisten en utilizar datos técnicos para elaborar un producto determinado. En general si el producto u otro material que fue sometido a la ingeniería inversa fue obtenido en forma apropiada, entonces el proceso es legítimo y legal. De la misma forma, pueden fabricarse y distribuirse, legalmente, los productos genéricos creados apartir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de [[Software libre]] ampliamente conocidos.
La ingeniería inversa tiene sus orígenes en el análisis del hardware para obtener una ventaja comercial o militar [1]. El objetivo es deducir las decisiones de diseño de productos finales con el conocimiento adicional poco o nada acerca de los procedimientos involucrados en la producción original. Las mismas técnicas que se están investigando actualmente para su aplicación a sistemas de software de legado, no para fines industriales o de defensa, sino más bien para sustituir incorrecta, incompleta o no disponible, la documentación[2].


El [[samba (programa)|programa Samba]] es un claro ejemplo de ingeniería inversa, dado que permite a [[sistema operativo|sistemas operativos]] [[UNIX]] compartir [[archivo informático|archivos]] con sistemas [[Microsoft Windows]]. El proyecto Samba tuvo que investigar información confidencial (no liberada al público en general por Microsoft) sobre los aspectos técnicos relacionado con el [[sistema de archivos]] [[Windows]]. Lo mismo realiza el proyecto [[WINE]] para el conjunto de [[API de Windows]] y [[OpenOffice.org]] con los formatos propios de [[Microsoft Office]], o se hace para entender la estructura del sistema de archivos [[NTFS]] y así poder desarrollar [[driver]]s para la lectura-escritura del mismo (principalmente para sistemas basados en [[Linux]]).
Contenidos [ocultar]
1 Motivación
2 La ingeniería inversa de los dispositivos mecánicos
3 La ingeniería inversa de software de
3,1 De software binario
3.1.1 Las técnicas de software binario
4 El código fuente
5 La ingeniería inversa de las tarjetas de circuitos integrados inteligentes
6 La ingeniería inversa para aplicaciones militares
7 Legalidad
8 Ver también
9 Para leer más
10 Referencias
11 Enlaces externos


La ingeniería inversa es un método de resolución. Aplicar ingeniería inversa a algo supone profundizar en el estudio de su funcionamiento, hasta el punto de que podemos llegar a entender, modificar, y mejorar dicho modo de funcionamiento.


Pero este término no sólo se aplica al software de protección. Así pues se considera ingeniería inversa también al estudio de todo tipo de elementos, por ejemplo equipos electrónicos, microcontroladores, etc., siempre y cuando el resultado de dicho estudio repercuta en el entendimiento de su funcionamiento.
[editar] Motivación
Razones para la ingeniería inversa:


Se denomina ingeniería inversa del [[software]] a la actividad que se ocupa de descubrir cómo funciona un programa, función o característica de cuyo código fuente no se dispone, hasta el punto de poder modificar ese código o generar código propio que cumpla las mismas funciones. La gran mayoría del [[software de pago]] incluye en su licencia una prohibición expresa de aplicar ingeniería inversa a su código, con el intento de evitar que se pueda modificar su código y que así los usuarios tengan que pagar si quieren usarlo.La ingeniería inversa nace en el transcurso de la segunda guerra mundial, cuando los ejércitos enemigos incautaban insumos de guerra como aviones u otra maquinaria de guerra para mejorar las suyas mediante un exhaustivo análisis.
Interoperabilidad.
Recuperar la documentación: la ingeniería inversa a menudo se hace porque la documentación de un dispositivo en particular que se ha perdido (o nunca se escribió), y la persona que lo construyó ya no está disponible. Los circuitos integrados a menudo parecen haber sido diseñadas en obsoletos, sistemas propietarios, lo que significa que la única manera de incorporar la funcionalidad en la nueva tecnología es la ingeniería inversa de los chips existentes y volver a diseñarlo.
Análisis de productos. Para examinar cómo funciona un producto, qué componentes se compone de calcular los costos, e identificar posibles de infracción de patentes.
Actualización Digital / corrección. Para actualizar la versión digital (por ejemplo, CAD modelo) de un objeto para que coincida con un "as-built" condición.
De auditoría de seguridad.
Militares o comerciales espionaje. Aprender acerca de un enemigo o competidor más recientes investigaciones por el robo o la captura de un prototipo y su desmantelamiento.
La eliminación de la protección de copia, La elusión de las restricciones de acceso.
Creación de licencia / duplicados no aprobados.
Académico / aprendizaje.
Curiosidad
Técnicas de inteligencia competitiva (entender lo que su competidor está haciendo frente a lo que dicen que están haciendo)
De aprendizaje: aprender de los errores de otros. No cometamos los mismos errores que otros ya han hecho y, posteriormente, corrigió


== Véase también ==
[editar] La ingeniería inversa de los dispositivos mecánicos
{{Portal|Ingeniería}}
Ya que diseño asistido por ordenador (CAD) se ha convertido en más popular, la ingeniería inversa se ha convertido en un método viable para crear un modelo virtual en 3D de una pieza física existente para su uso en 3D CAD, CAM, CAE y demás software[3]. El proceso de ingeniería inversa consiste en la medición de un objeto y luego la reconstrucción como un modelo 3D. El objeto físico se puede medir utilizando Escaneo 3D tecnologías como CMM, escáneres láser, digitalizadores de luz estructurada o tomografía computarizada. Los datos medidos solos, por lo general representado como un nube de puntos, Carece de información topológica y por lo tanto a menudo transformados y modelados en un formato más fácil de usar como una malla triangular frente, un conjunto de NURBS superficies o de un modelo CAD.
*[[Wikiproyecto:Ingeniería]]
*[[Emulador]]


[[Categoría:Ingeniería]]
El punto de nubes producidas por los escáneres 3D no suelen utilizarse directamente, ya que son muy difíciles de manejar grandes conjuntos de datos, aunque por simple inspección y medición en la arquitectura y el mundo de la construcción, los puntos puede ser suficiente. La mayoría de las aplicaciones utilizar en su lugar los modelos poligonales en 3D, modelos de superficies NURBS, o la característica editable basado en modelos CAD (alias modelado de sólidos). El proceso de conversión de una nube de puntos en un modelo 3D utilizable en cualquiera de las formas descritas arriba se llama "modelado".


[[ar:هندسة عكسية]]
POLIGONO DE MALLA MODELOS: En una representación poligonal de una forma, una superficie curva se modela como muchas pequeñas facetas superficies planas (pensar en una esfera de modelado como una bola de discoteca). Modelos de polígonos - también llamados modelos de malla, son útiles para la visualización, es decir, para algunos CAM (, mecanizado), pero en general son "pesados" (es decir, conjuntos de datos muy grandes), y son relativamente poco modificable en esta forma. Reconstrucción del modelo poligonal consiste en encontrar y conectar los puntos adyacentes con líneas rectas con el fin de crear una superficie continua. Muchas aplicaciones están disponibles para este fin (por ejemplo, kubit NubeDePuntos para AutoCAD, Photomodeler, imagemodel)
[[ca:Enginyeria inversa]]
MODELOS SUPERFICIE: El siguiente nivel de sofisticación en el modelado implica el uso de una colcha de parches de superficie curva a nuestro modelo de forma. Estos pueden ser NURBS, TSplines u otras representaciones de la topología de curvas mediante polinomios de orden superior (es decir, curvo, no recto). Uso NURBS, nuestra esfera es una esfera matemática verdadera. Algunas solicitudes de revisión de diseño ofrecen a mano, pero la mejor clase, tanto en la oferta de diseño automatizada de revisiones y el diseño manual. Estos parches tienen la ventaja de ser más ligero y más manipulable, que se exportan a CAD. Los modelos de superficie son poco modificables, pero sólo en un sentido escultórico de empujar y tirar para deformar la superficie. Esta representación se presta bien para el modelado orgánico y formas artísticas. Los proveedores de los modeladores de superficie incluyen NX, ImageWare, Rapidform, Geomagic, Rhino, Maya, T Splines, etc
[[cs:Zpětné inženýrství]]
Modelos CAD SOLID: De una ingeniería y la perspectiva de la fabricación, la máxima representación de una forma digitalizada es editable, modelo CAD paramétricas. Después de todo, el CAD es el "lenguaje común" de la industria para describir, editar y mantener la forma de los activos de la empresa. En CAD, nuestro ámbito es descrito por las características de los parámetros que son fácilmente editado por el cambio de un valor (por ejemplo, punto central y radio).
[[da:Reverse engineering]]
Estos modelos CAD no sólo describir el sobre o la forma del objeto, pero los modelos CAD también portan la "intención del diseño" (es decir, características esenciales y su relación con otras características). Un ejemplo de la intención del diseño que no son evidentes en la forma por sí sola puede ser un freno de tambor tornillos Lug, que debe ser concéntrica con el agujero en el centro del tambor. Este conocimiento nos permite conducir la secuencia y el método de creación del modelo CAD, un diseñador con una toma de conciencia de esta relación no sería el diseño de la pernos LUG hace referencia al diámetro externo, pero en cambio, en el centro. Un modelador de la creación de un modelo CAD se desea incluir la forma y la intención de diseño en el modelo CAD completo.
[[de:Reverse Engineering]]

[[en:Reverse engineering]]
Los vendedores ofrecen diferentes enfoques para llegar a el modelo CAD paramétricas. Algunos de exportación de la superficies NURBS y dejar que el diseñador de CAD para completar el modelo en CAD (por ejemplo, Geomagic, Imageware, Rhino). Otros usan el análisis de datos para crear una característica editable y verificable basado en el modelo que se importa en CAD con el árbol completo de características intactas, dando un completo modelo CAD nativos, la captura de la forma y la intención de diseño (Rapidform por ejemplo). Sin embargo otras aplicaciones de CAD son lo suficientemente robustos para manipular puntos limitada o modelos de polígonos en el entorno de CAD (por ejemplo, Catia).
[[fa:مهندسی معکوس]]

[[fi:Takaisinmallinnus]]
La ingeniería inversa también es utilizado por las empresas existentes para que la geometría física en los entornos de desarrollo digital del producto, para hacer un registro digital en 3D de sus productos o para evaluar los productos de los competidores. Se utiliza para analizar, por ejemplo, cómo funciona un producto, lo que hace, y qué componentes se compone de calcular los costos, e identificar posibles patentes de infracción, etc
[[fr:Rétro-ingénierie]]

[[he:הנדסה הפוכה]]
La ingeniería de valor es una actividad relacionada también es utilizado por las empresas. Se trata de la deconstrucción y el análisis de los productos, pero el objetivo es encontrar oportunidades para la reducción de costes.
[[it:Reingegnerizzazione]]

[[ja:リバースエンジニアリング]]

[[ko:리버스 엔지니어링]]
[editar] La ingeniería inversa de software de
[[ml:റിവേഴ്സ്‌ എഞ്ചിനീയറിംഗ്‌]]
Wikilibros tiene más información sobre el tema de la
[[ms:Kejuruteraan undur]]
La ingeniería inversa
[[nl:Reverse engineering]]
El término ingeniería inversa Como en los programas significa cosas diferentes para personas diferentes, lo que provocó Chikofsky y de la Cruz para escribir un documento de investigación de los diversos usos y la definición de un taxonomía. De su papel, afirman, "la ingeniería inversa es el proceso de análisis de un sistema sujeto a crear representaciones del sistema en un nivel más alto de abstracción".[4] También puede ser visto como "ir hacia atrás a través del ciclo de desarrollo".[5] En este modelo, la salida de la fase de ejecución (en forma de código fuente) es ingeniería inversa de nuevo a la fase de análisis, en una inversión de la tradicional modelo en cascada. La ingeniería inversa es un proceso de examen sólo: el sistema de software bajo consideración no se modifica (lo que haría reingeniería). Software anti-manipulación la tecnología se utiliza para determinar tanto la ingeniería inversa y reingeniería de software propietario y el software de los sistemas de potencia. En la práctica, dos tipos principales de ingeniería inversa surgir. En el primer caso, el código fuente ya está disponible para el software, pero de más alto nivel los aspectos del programa, tal vez poco documentados o documentado, pero ya no es válida, se descubren. En el segundo caso, no hay código fuente disponible para el software, y cualquier esfuerzo hacia el descubrimiento de un código fuente posible para el software son considerados como la ingeniería inversa. Este segundo uso del término es la mayoría de las personas están familiarizados. La ingeniería inversa de software puede hacer uso de la Ingeniería de Software para salas blancas técnica para evitar infringir los derechos de autor.
[[pl:Inżynieria odwrotna]]

[[pt:Engenharia reversa]]
En una nota relacionada, pruebas de caja negro en de ingeniería de software tiene mucho en común con la ingeniería inversa. El probador por lo general tiene la API, Pero sus objetivos son encontrar bugs y características de indocumentados por los ataques a los productos desde el exterior.
[[ro:Inginerie inversă]]

[[ru:Обратная разработка]]
Otros propósitos de la ingeniería inversa incluyen la auditoría de seguridad, la eliminación de la protección de copia ( "craqueo"), La elusión de las restricciones de acceso a menudo presente en la electrónica de consumo, La personalización de la sistemas integrados (tales como los sistemas de gestión del motor), en reparaciones de casa o modernizaciones, permitiendo de características adicionales de bajo costo "lisiada" de hardware (como algunos chipsets de tarjeta gráfica), o incluso la mera satisfacción de la curiosidad.
[[sv:Reverse engineering]]

[[th:วิศวกรรมผันกลับ]]

[[tr:Tersine mühendislik]]
[editar] De software binario
[[uk:Зворотна розробка]]
Este proceso a veces se denomina Ingeniería reversa de código, O CRE.[6] Como ejemplo, la descompilación de binarios para la Plataforma Java se puede lograr usando Jad. Un caso famoso de la ingeniería inversa fue el primer no -IBM la aplicación de la PC BIOS que lanzó el histórico PC compatible con IBM de la industria que ha sido abrumadoramente dominante plataforma de hardware del equipo durante muchos años. Un ejemplo de un grupo que-invertir para el disfrute de los ingenieros de software es CORE que significa "el desafío de ingeniería inversa". En el Estados Unidos, La Digital Millennium Copyright Act (DMCA) exime de la prohibición de elusión de algunos actos de ingeniería inversa destinados a la interoperabilidad de los formatos de archivo y protocolos, pero los jueces en casos clave han hecho caso omiso de esta ley, ya que es aceptable para eludir las restricciones para su uso, pero no para el acceso.[7] Aparte de las restricciones a la elusión, la ingeniería inversa de software está protegido en los EE.UU. por la el uso justo excepción en derecho de autor.[8] El Software Samba, Que permite a los sistemas que no se están ejecutando Microsoft Windows los sistemas para compartir archivos con sistemas que son, es un ejemplo clásico de la ingeniería inversa de software[9], Ya que el proyecto Samba tuvo que la ingeniería inversa de información inédita acerca de cómo compartir archivos de Windows funciona, de manera que los ordenadores que no sean de Windows podría emularlo. El Vino proyecto hace lo mismo para el API de Windows, Y OpenOffice.org es una de las partes haciendo esto por el Microsoft Office formatos de archivo. El ReactOS proyecto aún más ambicioso en sus objetivos, ya que se esfuerza por proporcionar binaria (ABI y API) compatibilidad con los sistemas operativos actuales de Windows de la rama NT, permitiendo que el software y los controladores escritos para Windows para ejecutarse en un revés de limpieza de habitación de ingeniería GPL abierto contraparte de origen.
[[vi:Kỹ nghệ đảo ngược]]

[[zh:逆向工程]]

[editar] Las técnicas de software binario
La ingeniería inversa de software se puede lograr por diversos métodos. Los tres principales grupos de software de ingeniería inversa son

Análisis a través de la observación de intercambio de información, más frecuente en la ingeniería inversa del protocolo, que implica el uso de Analizadores de autobús y rastreadores de paquetes, Por ejemplo, para acceder a una bus de ordenador o red informática de conexión y revelador al respecto al tráfico de datos. Autobús o comportamiento de la red pueden ser analizados para producir una aplicación independiente que reproduce ese comportamiento. Esto es especialmente útil para la ingeniería inversa los controladores de dispositivo. A veces, la ingeniería inversa en la sistemas integrados es de gran ayuda para las herramientas de la introducción deliberada por el fabricante, tales como JTAG los puertos o la depuración de otros medios. En Microsoft Windows, Depuradores de bajo nivel, tales como SoftICE son populares.
Desmontaje utilizando un desensamblador, Es decir, la prima lenguaje de máquina del programa es leído y comprendido en sus propios términos, sólo con la ayuda de la máquina en idioma mnemónicos. Esto funciona en cualquier programa de ordenador, pero puede tomar bastante tiempo, especialmente para alguien que no está acostumbrado a código de máquina. El Interactive Disassembler es una herramienta muy popular.
Descompilación con una decompiler, Un proceso que intenta, con resultados diversos, para recrear el código fuente en algún lenguaje de alto nivel para un programa sólo está disponible en código máquina o código de bytes.

[editar] El código fuente
Una serie de UML herramientas se refieren al proceso de importación de código fuente para generar diagramas UML como "ingeniería inversa". Ver Lista de las herramientas UML.


[editar] La ingeniería inversa de las tarjetas de circuitos integrados inteligentes
La ingeniería inversa es una forma invasiva y destructiva de análisis de una tarjeta inteligente. El atacante muele lejos capa por capa de la tarjeta inteligente y toma fotos con un microscopio electrónico. Con esta técnica, es posible revelar el paquete completo y la parte de software de la tarjeta inteligente. El principal problema para el atacante es poner todo en el orden correcto para descubrir cómo funciona todo. Los ingenieros tratan de ocultar las teclas y las operaciones mediante la mezcla de posiciones de memoria, por ejemplo, busscrambling[10][11]. En algunos casos, incluso es posible conectar una sonda para medir el voltaje, mientras que la tarjeta inteligente sigue funcionando. Ingenieros emplean sensores para detectar y prevenir este ataque. [12] Se requiere un esfuerzo muy alto para romper una tarjeta inteligente utilizado para el pago, y el equipo técnico sólo está disponible para los productores de chips de gran tamaño. Además, la ganancia es baja, debido a otros mecanismos de seguridad, como las cuentas de la sombra.


[editar] La ingeniería inversa para aplicaciones militares
La ingeniería inversa es a menudo utilizado por los militares con el fin de copiar las tecnologías de otras naciones, los dispositivos o la información que se han obtenido por las tropas regulares en los campos o por los inteligencia operaciones. Se utiliza a menudo durante la Segunda Guerra Mundial y el La Guerra Fría. Ejemplos bien conocidos de la Segunda Guerra Mundial y posteriores incluyen

Bidón: Las fuerzas británicas y estadounidenses dado cuenta de que los alemanes habían latas de gasolina con un diseño excelente. Se ingeniería inversa copias de esas latas. Las latas fueron popularmente conocidos como "latas de Jerry".
Tupolev Tu-4: Tres estadounidenses B-29 terroristas en misiones sobre Japón se vieron obligados a aterrizar en el URSS. Los soviéticos, que no tienen un bombardero estratégico similar, decidió copiar la B-29. Dentro de pocos años, se había desarrollado el Tu-4, una copia casi perfecta.
Cohete V2: Documentos técnicos para la V2 y tecnologías conexas fueron capturados por los aliados occidentales al final de la guerra. Soviética y capturaron a los ingenieros alemanes tuvieron que reproducir los documentos técnicos y planes de trabajo de hardware de captura, a fin de que su clon del cohete, el R-1, Que comenzó el programa de cohetes soviéticos de la posguerra que llevó a la R-7 y el comienzo de la carrera espacial.
K-13/R-3S misiles (Código de la OTAN AA-2 'Atoll), Un revés soviético copia de ingeniería de la AIM-9 Sidewinder, Hizo posible después de un taiwanés AIM-9B alcanzó un chino MiG-17 sin explotar, sorprendentemente, el misil fue presentada dentro de la estructura del avión, el piloto regresar a la base con lo que los científicos rusos, que describiría como un curso universitario en el desarrollo de misiles.
BGM-71 TOW De Misiles: En mayo de 1975, las negociaciones entre Irán y los sistemas de misiles de Hughes en la co-producción de los cables y los misiles Maverick estancadas por desacuerdos en la estructura de precios, la posterior Revolución de 1979 poner fin a todos los planes para dicha producción. Irán fue más exitosa en hacer ingeniería inversa de los misiles y actualmente producen su propio ejemplar: la Toophan.
China ha invertido muchos ejemplos de equipos occidentales y de Rusia, desde aviones de combate para los misiles y HMMWV coches.

[editar] Legalidad
Esta sección es en necesidad de atención de un experto en el tema. Wikipedistas de la Ley o Portal de la Ley de puede ser capaz de ayudar a un recluta. (Abril 2009)

En los Estados Unidos y muchos otros países, aun cuando un artefacto o proceso está protegido por secretos comerciales, Ingeniería inversa el artefacto o proceso a menudo es lícito, siempre que se haya obtenido legítimamente. Patentes, Por el contrario, necesitan una divulgación pública de una invención, Y, por tanto, los elementos de una patente no necesariamente tienen que someter a ingeniería reversa para ser estudiados. Una motivación común de ingeniería inversa es determinar si el producto de un competidor contiene las infracciones de patentes o infracciones de derechos de autor.

Software de ingeniería inversa o de sistemas de hardware que se realiza a los efectos de interoperabilidad (por ejemplo, para apoyar a indocumentados formatos de archivo o periféricos de hardware sin papeles) es en su mayoría cree que es legal, aunque con frecuencia los titulares de patentes y el concurso de este intento de silenciar cualquier ingeniería inversa de sus productos por cualquier motivo.

Revisión del 23:04 7 sep 2009

El objetivo de la ingeniería inversa es obtener información a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado. Los productos más comunes que son sometidos a la ingeniería inversa son los programas de computadoras y los componentes electrónicos, pero básicamente casi cualquier proceso puede ser sometido a un análisis de Ingeniería Inversa.

Este método es denominado ingeniería inversa porque avanza en dirección opuesta a las tareas habituales de ingeniería, que consisten en utilizar datos técnicos para elaborar un producto determinado. En general si el producto u otro material que fue sometido a la ingeniería inversa fue obtenido en forma apropiada, entonces el proceso es legítimo y legal. De la misma forma, pueden fabricarse y distribuirse, legalmente, los productos genéricos creados apartir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de Software libre ampliamente conocidos.

El programa Samba es un claro ejemplo de ingeniería inversa, dado que permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows. El proyecto Samba tuvo que investigar información confidencial (no liberada al público en general por Microsoft) sobre los aspectos técnicos relacionado con el sistema de archivos Windows. Lo mismo realiza el proyecto WINE para el conjunto de API de Windows y OpenOffice.org con los formatos propios de Microsoft Office, o se hace para entender la estructura del sistema de archivos NTFS y así poder desarrollar drivers para la lectura-escritura del mismo (principalmente para sistemas basados en Linux).

La ingeniería inversa es un método de resolución. Aplicar ingeniería inversa a algo supone profundizar en el estudio de su funcionamiento, hasta el punto de que podemos llegar a entender, modificar, y mejorar dicho modo de funcionamiento.

Pero este término no sólo se aplica al software de protección. Así pues se considera ingeniería inversa también al estudio de todo tipo de elementos, por ejemplo equipos electrónicos, microcontroladores, etc., siempre y cuando el resultado de dicho estudio repercuta en el entendimiento de su funcionamiento.

Se denomina ingeniería inversa del software a la actividad que se ocupa de descubrir cómo funciona un programa, función o característica de cuyo código fuente no se dispone, hasta el punto de poder modificar ese código o generar código propio que cumpla las mismas funciones. La gran mayoría del software de pago incluye en su licencia una prohibición expresa de aplicar ingeniería inversa a su código, con el intento de evitar que se pueda modificar su código y que así los usuarios tengan que pagar si quieren usarlo.La ingeniería inversa nace en el transcurso de la segunda guerra mundial, cuando los ejércitos enemigos incautaban insumos de guerra como aviones u otra maquinaria de guerra para mejorar las suyas mediante un exhaustivo análisis.

Véase también