<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adrianrp1988</id>
	<title>EcuRed - Contribuciones del colaborador [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adrianrp1988"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/Especial:Contribuciones/Adrianrp1988"/>
	<updated>2026-04-21T12:18:38Z</updated>
	<subtitle>Contribuciones del colaborador</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Portable_Executable&amp;diff=3268399</id>
		<title>Portable Executable</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Portable_Executable&amp;diff=3268399"/>
		<updated>2018-12-11T14:04:55Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: remover error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;El formato '''Portable Executable''' (PE) es un formato de archivo para archivos ejecutables, de código objeto, bibliotecas de enlace dinámico (DLL), archivos de fuentes FON,&amp;lt;ref&amp;gt;{{cita web|url=http://www.chiark.greenend.org.uk/~sgtatham/fonts/|título=mkwinfont|apellido=Tatham|nombre=Simon|fechaacceso=31 de octubre de 2012|idioma=inglés}}&amp;lt;/ref&amp;gt; y otros usados en versiones de 32 bit y 64 bit del sistema operativo [[Microsoft Windows]]. El término «portable» refiere a la versatilidad del formato en numerosos ambientes de arquitecturas de software de sistema operativo.&amp;lt;ref name=&amp;quot;MSOfficialDocAboutPE&amp;quot;&amp;gt;{{cita web|url=http://support.microsoft.com/?id=121460|título=Formato Common Object File (Format COFF)|editor=[[Microsoft]]|obra=Microsoft Support|fecha=1º de noviembre de 2006|fechaacceso=5 de abril de 2013}}&amp;lt;/ref&amp;gt; El formato PE es una estructura de datos que encapsula la información necesaria para el cargador de Windows para administrar el código ejecutable que le envuelve. Esto incluye las referencias hacia las bibliotecas de enlace dinámico para el enlazado, la importación y exportación de las tablas de la [[Application programming interface|API]], gestión de los datos de los recursos y los datos de almacenamiento local de subprocesos (datos de TLS). En sistemas operativos basados en [[Windows NT]], el formato PE es usado para [[EXE]], [[DLL]], [[.sys|SYS]] ([[controladores de dispositivo]]), y otros tipos de archivo. La especificación [[Extensible Firmware Interface]] (EFI) indica que PE es el formato estándar para ejecutables en entornos EFI.&lt;br /&gt;
&lt;br /&gt;
PE es una versión modificada de el formato [[COFF]] de Unix. Además, '''PE/COFF''' es un nombre alternativo en el desarrollo de Windows.&lt;br /&gt;
&lt;br /&gt;
En sistemas operativos Windows NT, actualmente PE soporta los [[Conjunto de instrucciones|conjuntos de instrucciones (ISA)]] de [[IA-32]], [[IA-64]], y [[x86-64]] (AMD/Intel64). Previo a [[Windows 2000]], Windows NT (y por tanto PE) soportaban los conjuntos de instrucciones [[MIPS]], [[DEC Alpha]] y [[PowerPC]]. Ya que PE es usado en [[Windows CE]], este continua soportando diversas variantes de las arquitecturas MIPS, [[Arquitectura ARM|ARM]] (incluyendo a Thumb), y [[SuperH]].&lt;br /&gt;
&lt;br /&gt;
Los principales competidores de PE son [[Executable and Linkable Format|ELF]] (usado en [[Linux]] y muchos otros sistemas [[Unix-like|tipo Unix]]) y [[Mach-O]] (usado en [[Mac OS X]]).&lt;br /&gt;
&lt;br /&gt;
== Historia ==&lt;br /&gt;
Microsoft migró al formato PE con la introducción del sistema operativo [[Windows NT 3.1]]. Todas las versiones posteriores de Windows, incluyendo Windows 95, 98, y ME, soportan la estructura de archivo PE. El formato conservó un soporte limitado heredado para cerrar la brecha entre los sistemas basados en DOS y sistemas basados en NT. Por ejemplo, las cabeceras de PE/COFF todavía incluyen un programa ejecutable MS-DOS, que por defecto es un trozo que muestra el sencillo mensaje «This program cannot be run in DOS mode» (o similar).&amp;lt;ref name=&amp;quot;MSOfficialDocAboutPE&amp;quot; /&amp;gt; También PE sigue atendiendo a la cambiante plataforma Windows. Entre las extensiones se encuentra el formato PE .NET ([[#.NET, metadatos y el formato PE|véase más abajo]]), una versión para binarios de 64 bits llamada PE32+ (o a veces PE+), y una especificación para Windows CE.&lt;br /&gt;
&lt;br /&gt;
== Detalles técnicos ==&lt;br /&gt;
[[File:Diagram PE (es).png|right|thumb|145px|&amp;lt;!-- Estructura interna de un archivo en formato PE. --&amp;gt;]]&lt;br /&gt;
=== Diseño ===&lt;br /&gt;
Un archivo PE consiste de una serie de cabeceras y secciones que indican al enlazador dinámico cómo asignar el archivo en memoria. Una imagen ejecutable consta de varias zonas diferentes, cada una de las cuales requieren diferente protección de memoria, por lo que el inicio de cada sección debe estar alineado a un límite de página. Por ejemplo, generalmente la sección &amp;lt;tt&amp;gt;.text&amp;lt;/tt&amp;gt; (que contiene código de programa) es mapeado como «ejecutar/sólo lectura», y la sección &amp;lt;tt&amp;gt;.data&amp;lt;/tt&amp;gt; (que contiene las variables globales) es mapeado como «no-ejecutar/lectura-escritura». Sin embargo, para evitar el desperdicio de espacio, las diferentes secciones no son alineadas en página en disco. Parte del trabajo del enlazador dinámico es mapear cada sección en memoria de manera individual y asignar los permisos correctos para las regiones resultantes, de acuerdo con las instrucciones que se encuentran en las cabeceras.&lt;br /&gt;
&lt;br /&gt;
=== Tabla de secciones ===&lt;br /&gt;
La tabla de secciones se encuentra justo detrás de la cabecera PE. Esta es una tabla que contiene varias estructuras '''IMAGE_SECTION_HEADER'''. Estas estructuras contienen información sobre las secciones de los binarios para ser cargados en la memoria.&lt;br /&gt;
&lt;br /&gt;
El campo '''NumberOfSections''' de la estructura '''IMAGE_FILE_HEADER''' indica cuantas entradas hay en la tabla. El máximo soportado por Windows es de 96 secciones.&lt;br /&gt;
&lt;br /&gt;
Un prototipo de una tabla de secciones se ve de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
typedef struct _IMAGE_SECTION_HEADER {&lt;br /&gt;
  BYTE  Name[IMAGE_SIZEOF_SHORT_NAME];&lt;br /&gt;
  union {&lt;br /&gt;
      DWORD PhysicalAddress;&lt;br /&gt;
      DWORD VirtualSize;&lt;br /&gt;
  } Misc;&lt;br /&gt;
  DWORD VirtualAddress;&lt;br /&gt;
  DWORD SizeOfRawData;&lt;br /&gt;
  DWORD PointerToRawData;&lt;br /&gt;
  DWORD PointerToRelocations;&lt;br /&gt;
  DWORD PointerToLinenumbers;&lt;br /&gt;
  WORD  NumberOfRelocations;&lt;br /&gt;
  WORD  NumberOfLinenumbers;&lt;br /&gt;
  DWORD Characteristics;&lt;br /&gt;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cada sección tiene un nombre de 8 caracteres; este nombre no es significativo, pero normalmente se puede encontrar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:65%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| .text&lt;br /&gt;
| El código (instrucciones) del programa&lt;br /&gt;
|-&lt;br /&gt;
| .bss&lt;br /&gt;
| Las variables no inicializadas&lt;br /&gt;
|-&lt;br /&gt;
| .reloc&lt;br /&gt;
| La tabla de relocalizaciones &lt;br /&gt;
|-&lt;br /&gt;
| .data&lt;br /&gt;
| Las variables inicializadas&lt;br /&gt;
|-&lt;br /&gt;
| .rsrc&lt;br /&gt;
| Los recursos del archivo (cursores, sonidos, menús...)&lt;br /&gt;
|-&lt;br /&gt;
| .rdata&lt;br /&gt;
| Los datos de solo lectura&lt;br /&gt;
|-&lt;br /&gt;
| .idata&lt;br /&gt;
| La tabla de importación&lt;br /&gt;
|-&lt;br /&gt;
| .upx&lt;br /&gt;
| Firma de una compresión UPX, propio de software UPX&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| .aspack&lt;br /&gt;
| Firma de un paquete ASPACK, propio de software ASPACK&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| .adata&lt;br /&gt;
| Firma de un paquete ASPACK, propio de software ASPACK&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tabla IMPORT ===&lt;br /&gt;
Una sección a mencionar es la tabla de importación de direcciones (en inglés ''import address table'' o IAT), que se usa como una tabla de búsqueda cuando la aplicación llama una función en un módulo diferente. Esto puede darse en forma de importación por ordinal o importación por nombre. Debido a que un programa compilado no puede conocer la ubicación en memoria de las bibliotecas de las que depende directamente, cada vez que se hace una llamada a la API es necesario un salto indirecto. Como el enlazador dinámico carga los módulos y los une, este escribe la dirección actuales en las ranuras IAT, de manera que apuntan a las ubicaciones de memoria correspondientes de la biblioteca de funciones. Aunque esto agrega un salto adicional en el costo de una llamada intra-módulo que resulta en una reducción del rendimiento, ofrece una ventaja clave: se reduce al mínimo el número de páginas de memoria que necesitan ser cambiados [[copy-on-write]] por el cargador, ahorrando memoria y tiempo de I/O de disco. Si el compilador conoce de antemano que será una llamada inter-módulo (mediante el atributo &amp;lt;tt&amp;gt;dllimport&amp;lt;/tt&amp;gt;) puede producir código más optimizado que simplemente se traduce en una llamada indirecta [[opcode]].&lt;br /&gt;
&lt;br /&gt;
=== Relocalizaciones ===&lt;br /&gt;
Los archivos PE no contienen [[código independiente de la posición]]. En su lugar son compilados a una ''dirección base'' preferida, y todas las direcciones emitidas por el compilador/enlazador se fijan previamente. Si un archivo PE no puede ser cargado en su dirección preferida (porque ya fue tomada por algo más), el sistema operativo lo reajustará. Esto implica recalcular cada dirección absoluta y modificar el código para utilizar los nuevos valores. El cargador lo realiza comparando las direcciones de carga actual y preferida, y calculando un valor [[Delta encoding|delta]]. Esto se añade a continuación a la dirección preferida para llegar a la nueva dirección de la localización de memoria. Las relocalizaciones base son almacenadas en una lista y añadidas, cuando sea necesario, a una posición de memoria existente. El código resultante ahora es privado al proceso y no es más compartido, por lo que muchos de los beneficios de ahorro de memoria de las DLLs se pierden en este escenario. También retrasa la carga del módulo de manera significativa. Por esta razón, el reajuste es evitado siempre que sea posible, y las DLL proporcionadas por Microsoft tienen direcciones base pre-calculadas de manera que no se superpongan. Por lo tanto, en el caso de no reajuste, PE ofrece la ventaja de un código muy eficiente, pero en presencia de reajuste, el éxito en el uso de memoria puede ser costoso. Esto contrasta con ELF, que utiliza código totalmente independiente de la posición y una tabla de desplazamiento global, que abandona tiempo en ejecución contra el uso de memoria en favor de estos últimos.&lt;br /&gt;
&lt;br /&gt;
== .NET, metadatos y el formato PE ==&lt;br /&gt;
{{VT|Metadatos .NET}}&lt;br /&gt;
[[.NET Framework]] de Microsoft ha ampliado el formato PE con características que soportan el [[Common Language Runtime]] (CLR). Entre las características añadidas se encuentra las secciones de cabecera CLR y datos CLR. Al cargar un binario, el cargador del sistema operativo cede la ejecución a CLR mediante una referencia en la tabla IMPORT de PE/COFF. Entonces CLR carga las secciones CLR cabecera y datos.&lt;br /&gt;
&lt;br /&gt;
La sección de datos de {{abreviación|CLR|Common Language Runtime}} contiene dos segmentos importantes, código de metadatos y código de Intermediate Language (IL):&lt;br /&gt;
* Los metadatos contienen información relevante para el ensamblado, incluyendo el manifiesto de ensamblado. Un manifiesto describe el ensamblado en detalle, incluyendo la identificación única (mediante un ''hash'', número de versión, etc.), datos en componentes exportados, información de tipo extensivo (soportado por el Common Type System (CTS)), referencias externas, y una lista de archivos dentro del ensamblado. El entorno CLR hace un uso amplio de los metadatos.&amp;lt;ref name=&amp;quot;MSDN_MetadataAndPEStruct&amp;quot;&amp;gt;{{cita web|url=http://msdn.microsoft.com/es-es/library/8dkk3ek4.aspx|título=Metadatos y la estructura del archivo PE|editor=[[Microsoft]]|obra=[[MSDN Library]]|fechaacceso=5 de abril de 2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* El código {{abreviación|IL|Intermediate Language}} es un código abstracto e independiente del lenguaje que satisface los requisitos del [[Common Intermediate Languge]] (CIL) del {{abreviación|CLR|Common Language Runtime}}. El término «''intermediate''» (en español «intermedio») se refiere a la naturaleza compatible entre lenguajes y entre plataformas del código {{abreviación|IL|Intermediate Language}}. Este ''lenguaje intermedio'', similar a [[Java bytecode]], permite a las plataformas y a los lenguajes soportar el {{abreviación|CLR|Common Language Runtime}} común. {{abreviación|IL|Intermediate Language}} soporta la [[programación orientada a objetos]] (polimorfismo, herencia, tipos abstractos, etc.), excepciones, eventos, y varias estructuras de datos.&lt;br /&gt;
&lt;br /&gt;
== Uso en otros sistemas operativos ==&lt;br /&gt;
El formato PE también es usado por [[ReactOS]], ya que este sistema operativo tiene la intención de ser compatible a nivel binario con Windows. El formato PE también ha sido utilizado históricamente por unos cuantos sistemas operativos, entre ellos [[SkyOS]] y [[BeOS]] R3. Sin embargo tanto SkyOS como BeOS se trasladaron al formato [[Executable and Linkable Format|ELF]].&lt;br /&gt;
&lt;br /&gt;
Como la [[Proyecto Mono|plataforma de desarrollo Mono]] está diseñado para ser compatible a nivel binario con [[Microsoft .NET]], usa el mismo formato PE de la implementación de Microsoft.&lt;br /&gt;
&lt;br /&gt;
En sistemas operativos [[Unix-like|similares a Unix]] de [[x86|32 bits]], algunos binarios de Windows (en formato PE) pueden ser ejecutados con [[Wine]]. [[HX DOS Extender]] también usa el formato PE para los binarios nativos de 32 bit de DOS, además de que se puede, hasta cierto grado, ejecutar binarios de Windows existentes en DOS, así actuando como si fuera un [[Wine]] para DOS.&lt;br /&gt;
&lt;br /&gt;
Mac OS X 10.5 tiene la capacidad de cargar y analizar archivos PE, pero no es compatible a nivel binario con Windows.&amp;lt;ref name=&amp;quot;chartier&amp;quot;&amp;gt;{{cita web|apellido=Chartier |nombre=David |título=Uncovered: Evidence that Mac OS X could run Windows apps soon |obra=Ars Technica |url=http://arstechnica.com/journals/apple.ars/2007/11/30/uncovered-evidence-that-mac-os-x-could-run-windows-apps-soon |fecha=30 de noviembre de 2007 |fechaacceso=3 de diciembre de 2007 |cita=...&amp;amp;nbsp;Steven Edwards describes the discovery that Leopard apparently contains an undocumented loader for Portable Executables, a type of file used in 32-bit and 64-bit versions of Windows. More poking around revealed that Leopard's own loader tries to find Windows DLL files when attempting to load a Windows binary.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{listaref}}&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[Anexo:Comparación de formatos de archivos ejecutables]]&lt;br /&gt;
* [[EXE]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [http://go.microsoft.com/fwlink/?LinkId=93292 Microsoft Portable Executable and Common Object File Format Specification] (en inglés). Microsoft Development Network.&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ms809762 Peering Inside the PE: A Tour of the Win32 Portable Executable File Format] (en inglés). Microsoft Development Network.&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Formatos de archivos informáticos]]&lt;br /&gt;
[[Categoría:Formatos de archivos ejecutables]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Portable_Executable&amp;diff=3268393</id>
		<title>Portable Executable</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Portable_Executable&amp;diff=3268393"/>
		<updated>2018-12-11T14:04:10Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: Página creada con «{{Infobox file format | name = Portable Executable | icon =  | extension = &amp;lt;tt&amp;gt;.cpl&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.exe&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.dll&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.ocx&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.sys&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.scr&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.dr…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox file format&lt;br /&gt;
| name = Portable Executable&lt;br /&gt;
| icon = &lt;br /&gt;
| extension = &amp;lt;tt&amp;gt;.cpl&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.exe&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.dll&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.ocx&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.sys&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.scr&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;.drv&amp;lt;/tt&amp;gt;&lt;br /&gt;
| mime = &lt;br /&gt;
| owner = [[Microsoft]]&lt;br /&gt;
| genre = [[Archivo binario|Binario]], [[ejecutable]], [[código objeto]], [[bibliotecas compartidas]]&lt;br /&gt;
| extendido_de = [[DOS MZ executable]],&amp;lt;br /&amp;gt;[[COFF]]&lt;br /&gt;
| containerfor = &lt;br /&gt;
| containedby = &lt;br /&gt;
| standard = [http://msdn.microsoft.com/library/windows/hardware/gg463125 Microsoft PE and COFF Specification (ver. 8)]&lt;br /&gt;
| número_mágico = MZ&lt;br /&gt;
}}&lt;br /&gt;
El formato '''Portable Executable''' (PE) es un formato de archivo para archivos ejecutables, de código objeto, bibliotecas de enlace dinámico (DLL), archivos de fuentes FON,&amp;lt;ref&amp;gt;{{cita web|url=http://www.chiark.greenend.org.uk/~sgtatham/fonts/|título=mkwinfont|apellido=Tatham|nombre=Simon|fechaacceso=31 de octubre de 2012|idioma=inglés}}&amp;lt;/ref&amp;gt; y otros usados en versiones de 32 bit y 64 bit del sistema operativo [[Microsoft Windows]]. El término «portable» refiere a la versatilidad del formato en numerosos ambientes de arquitecturas de software de sistema operativo.&amp;lt;ref name=MSOfficialDocAboutPE&amp;gt;{{cita web|url=http://support.microsoft.com/?id=121460|título=Formato Common Object File (Format COFF)|editor=[[Microsoft]]|obra=Microsoft Support|fecha=1º de noviembre de 2006|fechaacceso=5 de abril de 2013}}&amp;lt;/ref&amp;gt; El formato PE es una estructura de datos que encapsula la información necesaria para el cargador de Windows para administrar el código ejecutable que le envuelve. Esto incluye las referencias hacia las bibliotecas de enlace dinámico para el enlazado, la importación y exportación de las tablas de la [[Application programming interface|API]], gestión de los datos de los recursos y los datos de almacenamiento local de subprocesos (datos de TLS). En sistemas operativos basados en [[Windows NT]], el formato PE es usado para [[EXE]], [[DLL]], [[.sys|SYS]] ([[controladores de dispositivo]]), y otros tipos de archivo. La especificación [[Extensible Firmware Interface]] (EFI) indica que PE es el formato estándar para ejecutables en entornos EFI.&lt;br /&gt;
&lt;br /&gt;
PE es una versión modificada de el formato [[COFF]] de Unix. Además, '''PE/COFF''' es un nombre alternativo en el desarrollo de Windows.&lt;br /&gt;
&lt;br /&gt;
En sistemas operativos Windows NT, actualmente PE soporta los [[Conjunto de instrucciones|conjuntos de instrucciones (ISA)]] de [[IA-32]], [[IA-64]], y [[x86-64]] (AMD/Intel64). Previo a [[Windows 2000]], Windows NT (y por tanto PE) soportaban los conjuntos de instrucciones [[MIPS]], [[DEC Alpha]] y [[PowerPC]]. Ya que PE es usado en [[Windows CE]], este continua soportando diversas variantes de las arquitecturas MIPS, [[Arquitectura ARM|ARM]] (incluyendo a Thumb), y [[SuperH]].&lt;br /&gt;
&lt;br /&gt;
Los principales competidores de PE son [[Executable and Linkable Format|ELF]] (usado en [[Linux]] y muchos otros sistemas [[Unix-like|tipo Unix]]) y [[Mach-O]] (usado en [[Mac OS X]]).&lt;br /&gt;
&lt;br /&gt;
== Historia ==&lt;br /&gt;
Microsoft migró al formato PE con la introducción del sistema operativo [[Windows NT 3.1]]. Todas las versiones posteriores de Windows, incluyendo Windows 95, 98, y ME, soportan la estructura de archivo PE. El formato conservó un soporte limitado heredado para cerrar la brecha entre los sistemas basados en DOS y sistemas basados en NT. Por ejemplo, las cabeceras de PE/COFF todavía incluyen un programa ejecutable MS-DOS, que por defecto es un trozo que muestra el sencillo mensaje «This program cannot be run in DOS mode» (o similar).&amp;lt;ref name=MSOfficialDocAboutPE/&amp;gt; También PE sigue atendiendo a la cambiante plataforma Windows. Entre las extensiones se encuentra el formato PE .NET ([[#.NET, metadatos y el formato PE|véase más abajo]]), una versión para binarios de 64 bits llamada PE32+ (o a veces PE+), y una especificación para Windows CE.&lt;br /&gt;
&lt;br /&gt;
== Detalles técnicos ==&lt;br /&gt;
[[File:Diagram PE (es).png|right|thumb|145px|&amp;lt;!-- Estructura interna de un archivo en formato PE. --&amp;gt;]]&lt;br /&gt;
=== Diseño ===&lt;br /&gt;
Un archivo PE consiste de una serie de cabeceras y secciones que indican al enlazador dinámico cómo asignar el archivo en memoria. Una imagen ejecutable consta de varias zonas diferentes, cada una de las cuales requieren diferente protección de memoria, por lo que el inicio de cada sección debe estar alineado a un límite de página. Por ejemplo, generalmente la sección &amp;lt;tt&amp;gt;.text&amp;lt;/tt&amp;gt; (que contiene código de programa) es mapeado como «ejecutar/sólo lectura», y la sección &amp;lt;tt&amp;gt;.data&amp;lt;/tt&amp;gt; (que contiene las variables globales) es mapeado como «no-ejecutar/lectura-escritura». Sin embargo, para evitar el desperdicio de espacio, las diferentes secciones no son alineadas en página en disco. Parte del trabajo del enlazador dinámico es mapear cada sección en memoria de manera individual y asignar los permisos correctos para las regiones resultantes, de acuerdo con las instrucciones que se encuentran en las cabeceras.&lt;br /&gt;
&lt;br /&gt;
=== Tabla de secciones ===&lt;br /&gt;
La tabla de secciones se encuentra justo detrás de la cabecera PE. Esta es una tabla que contiene varias estructuras '''IMAGE_SECTION_HEADER'''. Estas estructuras contienen información sobre las secciones de los binarios para ser cargados en la memoria.&lt;br /&gt;
&lt;br /&gt;
El campo '''NumberOfSections''' de la estructura '''IMAGE_FILE_HEADER''' indica cuantas entradas hay en la tabla. El máximo soportado por Windows es de 96 secciones.&lt;br /&gt;
&lt;br /&gt;
Un prototipo de una tabla de secciones se ve de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=C&amp;gt;&lt;br /&gt;
typedef struct _IMAGE_SECTION_HEADER {&lt;br /&gt;
  BYTE  Name[IMAGE_SIZEOF_SHORT_NAME];&lt;br /&gt;
  union {&lt;br /&gt;
      DWORD PhysicalAddress;&lt;br /&gt;
      DWORD VirtualSize;&lt;br /&gt;
  } Misc;&lt;br /&gt;
  DWORD VirtualAddress;&lt;br /&gt;
  DWORD SizeOfRawData;&lt;br /&gt;
  DWORD PointerToRawData;&lt;br /&gt;
  DWORD PointerToRelocations;&lt;br /&gt;
  DWORD PointerToLinenumbers;&lt;br /&gt;
  WORD  NumberOfRelocations;&lt;br /&gt;
  WORD  NumberOfLinenumbers;&lt;br /&gt;
  DWORD Characteristics;&lt;br /&gt;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cada sección tiene un nombre de 8 caracteres; este nombre no es significativo, pero normalmente se puede encontrar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; width:65%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| .text&lt;br /&gt;
| El código (instrucciones) del programa&lt;br /&gt;
|-&lt;br /&gt;
| .bss&lt;br /&gt;
| Las variables no inicializadas&lt;br /&gt;
|-&lt;br /&gt;
| .reloc&lt;br /&gt;
| La tabla de relocalizaciones &lt;br /&gt;
|-&lt;br /&gt;
| .data&lt;br /&gt;
| Las variables inicializadas&lt;br /&gt;
|-&lt;br /&gt;
| .rsrc&lt;br /&gt;
| Los recursos del archivo (cursores, sonidos, menús...)&lt;br /&gt;
|-&lt;br /&gt;
| .rdata&lt;br /&gt;
| Los datos de solo lectura&lt;br /&gt;
|-&lt;br /&gt;
| .idata&lt;br /&gt;
| La tabla de importación&lt;br /&gt;
|-&lt;br /&gt;
| .upx&lt;br /&gt;
| Firma de una compresión UPX, propio de software UPX&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| .aspack&lt;br /&gt;
| Firma de un paquete ASPACK, propio de software ASPACK&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| .adata&lt;br /&gt;
| Firma de un paquete ASPACK, propio de software ASPACK&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tabla IMPORT ===&lt;br /&gt;
Una sección a mencionar es la tabla de importación de direcciones (en inglés ''import address table'' o IAT), que se usa como una tabla de búsqueda cuando la aplicación llama una función en un módulo diferente. Esto puede darse en forma de importación por ordinal o importación por nombre. Debido a que un programa compilado no puede conocer la ubicación en memoria de las bibliotecas de las que depende directamente, cada vez que se hace una llamada a la API es necesario un salto indirecto. Como el enlazador dinámico carga los módulos y los une, este escribe la dirección actuales en las ranuras IAT, de manera que apuntan a las ubicaciones de memoria correspondientes de la biblioteca de funciones. Aunque esto agrega un salto adicional en el costo de una llamada intra-módulo que resulta en una reducción del rendimiento, ofrece una ventaja clave: se reduce al mínimo el número de páginas de memoria que necesitan ser cambiados [[copy-on-write]] por el cargador, ahorrando memoria y tiempo de I/O de disco. Si el compilador conoce de antemano que será una llamada inter-módulo (mediante el atributo &amp;lt;tt&amp;gt;dllimport&amp;lt;/tt&amp;gt;) puede producir código más optimizado que simplemente se traduce en una llamada indirecta [[opcode]].&lt;br /&gt;
&lt;br /&gt;
=== Relocalizaciones ===&lt;br /&gt;
Los archivos PE no contienen [[código independiente de la posición]]. En su lugar son compilados a una ''dirección base'' preferida, y todas las direcciones emitidas por el compilador/enlazador se fijan previamente. Si un archivo PE no puede ser cargado en su dirección preferida (porque ya fue tomada por algo más), el sistema operativo lo reajustará. Esto implica recalcular cada dirección absoluta y modificar el código para utilizar los nuevos valores. El cargador lo realiza comparando las direcciones de carga actual y preferida, y calculando un valor [[Delta encoding|delta]]. Esto se añade a continuación a la dirección preferida para llegar a la nueva dirección de la localización de memoria. Las relocalizaciones base son almacenadas en una lista y añadidas, cuando sea necesario, a una posición de memoria existente. El código resultante ahora es privado al proceso y no es más compartido, por lo que muchos de los beneficios de ahorro de memoria de las DLLs se pierden en este escenario. También retrasa la carga del módulo de manera significativa. Por esta razón, el reajuste es evitado siempre que sea posible, y las DLL proporcionadas por Microsoft tienen direcciones base pre-calculadas de manera que no se superpongan. Por lo tanto, en el caso de no reajuste, PE ofrece la ventaja de un código muy eficiente, pero en presencia de reajuste, el éxito en el uso de memoria puede ser costoso. Esto contrasta con ELF, que utiliza código totalmente independiente de la posición y una tabla de desplazamiento global, que abandona tiempo en ejecución contra el uso de memoria en favor de estos últimos.&lt;br /&gt;
&lt;br /&gt;
== .NET, metadatos y el formato PE ==&lt;br /&gt;
{{VT|Metadatos .NET}}&lt;br /&gt;
[[.NET Framework]] de Microsoft ha ampliado el formato PE con características que soportan el [[Common Language Runtime]] (CLR). Entre las características añadidas se encuentra las secciones de cabecera CLR y datos CLR. Al cargar un binario, el cargador del sistema operativo cede la ejecución a CLR mediante una referencia en la tabla IMPORT de PE/COFF. Entonces CLR carga las secciones CLR cabecera y datos.&lt;br /&gt;
&lt;br /&gt;
La sección de datos de {{abreviación|CLR|Common Language Runtime}} contiene dos segmentos importantes, código de metadatos y código de Intermediate Language (IL):&lt;br /&gt;
* Los metadatos contienen información relevante para el ensamblado, incluyendo el manifiesto de ensamblado. Un manifiesto describe el ensamblado en detalle, incluyendo la identificación única (mediante un ''hash'', número de versión, etc.), datos en componentes exportados, información de tipo extensivo (soportado por el Common Type System (CTS)), referencias externas, y una lista de archivos dentro del ensamblado. El entorno CLR hace un uso amplio de los metadatos.&amp;lt;ref name=MSDN_MetadataAndPEStruct&amp;gt;{{cita web|url=http://msdn.microsoft.com/es-es/library/8dkk3ek4.aspx|título=Metadatos y la estructura del archivo PE|editor=[[Microsoft]]|obra=[[MSDN Library]]|fechaacceso=5 de abril de 2013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* El código {{abreviación|IL|Intermediate Language}} es un código abstracto e independiente del lenguaje que satisface los requisitos del [[Common Intermediate Languge]] (CIL) del {{abreviación|CLR|Common Language Runtime}}. El término «''intermediate''» (en español «intermedio») se refiere a la naturaleza compatible entre lenguajes y entre plataformas del código {{abreviación|IL|Intermediate Language}}. Este ''lenguaje intermedio'', similar a [[Java bytecode]], permite a las plataformas y a los lenguajes soportar el {{abreviación|CLR|Common Language Runtime}} común. {{abreviación|IL|Intermediate Language}} soporta la [[programación orientada a objetos]] (polimorfismo, herencia, tipos abstractos, etc.), excepciones, eventos, y varias estructuras de datos.&lt;br /&gt;
&lt;br /&gt;
== Uso en otros sistemas operativos ==&lt;br /&gt;
El formato PE también es usado por [[ReactOS]], ya que este sistema operativo tiene la intención de ser compatible a nivel binario con Windows. El formato PE también ha sido utilizado históricamente por unos cuantos sistemas operativos, entre ellos [[SkyOS]] y [[BeOS]] R3. Sin embargo tanto SkyOS como BeOS se trasladaron al formato [[Executable and Linkable Format|ELF]].&lt;br /&gt;
&lt;br /&gt;
Como la [[Proyecto Mono|plataforma de desarrollo Mono]] está diseñado para ser compatible a nivel binario con [[Microsoft .NET]], usa el mismo formato PE de la implementación de Microsoft.&lt;br /&gt;
&lt;br /&gt;
En sistemas operativos [[Unix-like|similares a Unix]] de [[x86|32 bits]], algunos binarios de Windows (en formato PE) pueden ser ejecutados con [[Wine]]. [[HX DOS Extender]] también usa el formato PE para los binarios nativos de 32 bit de DOS, además de que se puede, hasta cierto grado, ejecutar binarios de Windows existentes en DOS, así actuando como si fuera un [[Wine]] para DOS.&lt;br /&gt;
&lt;br /&gt;
Mac OS X 10.5 tiene la capacidad de cargar y analizar archivos PE, pero no es compatible a nivel binario con Windows.&amp;lt;ref name=&amp;quot;chartier&amp;quot;&amp;gt;{{cita web|apellido=Chartier |nombre=David |título=Uncovered: Evidence that Mac OS X could run Windows apps soon |obra=Ars Technica |url=http://arstechnica.com/journals/apple.ars/2007/11/30/uncovered-evidence-that-mac-os-x-could-run-windows-apps-soon |fecha=30 de noviembre de 2007 |fechaacceso=3 de diciembre de 2007 |cita=...&amp;amp;nbsp;Steven Edwards describes the discovery that Leopard apparently contains an undocumented loader for Portable Executables, a type of file used in 32-bit and 64-bit versions of Windows. More poking around revealed that Leopard's own loader tries to find Windows DLL files when attempting to load a Windows binary.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{listaref}}&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[Anexo:Comparación de formatos de archivos ejecutables]]&lt;br /&gt;
* [[EXE]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [http://go.microsoft.com/fwlink/?LinkId=93292 Microsoft Portable Executable and Common Object File Format Specification] (en inglés). Microsoft Development Network.&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ms809762 Peering Inside the PE: A Tour of the Win32 Portable Executable File Format] (en inglés). Microsoft Development Network.&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Formatos de archivos informáticos]]&lt;br /&gt;
[[Categoría:Formatos de archivos ejecutables]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Desensamblador_Interactivo&amp;diff=3268381</id>
		<title>Desensamblador Interactivo</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Desensamblador_Interactivo&amp;diff=3268381"/>
		<updated>2018-12-11T14:01:21Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En [[informática]], '''Interactive Disassembler''' ('''Desensamblador Interactivo'''), más conocido por su [[acrónimo]] '''IDA''', es un [[desensamblador]] empleado para [[Ingenieria inversa|ingeniería inversa]]. Soporta una variedad de [[Ejecutable|formatos ejecutables]] para diferentes [[CPU|procesadores]] y [[Sistema operativo|sistemas operativos]]. También puede ser usado como un [[depurador]] para ejecutables [[Portable Executable|Windows PE]], [[Mac OS X]], [[Mach-O]] y [[Linux]] [[Executable and Linkable Format|ELF]]. Un [[plugin]] de [[decompilador]] para programas compilados con [[lenguaje C|C]]/[[C++]] está disponible a un costo extra. La última versión completa del IDA Pro es un software comercial; una versión anterior y menos capaz está disponible para descarga gratuita (la versión 7.0 de septiembre de 2017).&amp;lt;ref&amp;gt;[http://www.hex-rays.com/idapro/idadownfreeware.htm IDA Pro 5.0 Freeware Version download]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El IDA realiza mucho análisis automático del código, usando referencias cruzadas entre las secciones del código, conocimiento de parámetros de las llamadas del [[API]], y otra información. Sin embargo, la naturaleza del desensamblado imposibilita una exactitud total, y una gran parte de intervención humana es necesariamente requerida; El IDA tiene funcionalidad interactiva para ayudar en la mejora del desensamblado. Un usuario típico del IDA comenzará con un listado de desensamblado automáticamente generado y después convertirá secciones de código a datos y viceversa, renombrará, anotará, y de otra manera agregará información al listado, hasta que se vuelve claro lo que lo hace.&lt;br /&gt;
&lt;br /&gt;
Creado como [[shareware]] por [[Ilfak Guilfanov]], IDA fue posteriormente vendido a DataRescue, una compañía belga, que lo mejoró y lo vendió bajo el nombre de IDA Pro. En 2007, Guilfanov fundó [[Hex-Rays]] para seguir el desarrollo de la extensión Hex-Rays Decompiler del IDA. En enero de 2008, Hex-Rays asumió el desarrollo y el soporte del IDA Pro de DataRescue.&lt;br /&gt;
&lt;br /&gt;
Guilfanov es el autor principal del IDA (Interactive Disassembler Pro).&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
Los &amp;quot;scripts IDA&amp;quot; hacen posible extender la operación del desensamblador. Son proporcionados Algunos útiles [[script]]s, que pueden servir como la base para scripts escritos por el usuario. Los más frecuentes scripts son usados para la modificación adicional del código generado. Por ejemplo, pueden ser cargadas [[tabla de símbolos (compilador)|tablas de símbolos]] externas de tal modo que se puedan usar los nombres de función del [[código fuente]] original. Hay sitios web dedicados a scripts IDA y ofrecen asistencia para problemas que surgen con frecuencia.&lt;br /&gt;
&lt;br /&gt;
Los usuarios han creado plugins que permita que otros [[lenguaje de scripting|lenguajes de scripting]] comunes puedan ser usados o agregados al del IDC. [https://web.archive.org/web/20110209082017/http://www.metasploit.com/users/spoonm/idarub/ IdaRUB] soporta [[Ruby]] e [https://web.archive.org/web/20150506023607/http://d-dome.net/idapython IDAPython] agrega soporte para [[Python]]. Desde la versión 5.4, IDAPython (dependiente del Python 2.5) viene preinstalado con el IDA Pro.&lt;br /&gt;
&lt;br /&gt;
== Sistemas, procesadores y compiladores soportados ==&lt;br /&gt;
&lt;br /&gt;
* [[Sistema operativo|Sistemas operativos]]&lt;br /&gt;
** [[x86]] [[GUI]] [[Microsoft Windows|Windows]]&lt;br /&gt;
** x86 [[Línea de comandos|Consola]] Windows&lt;br /&gt;
** x86 GUI [[Linux]]&lt;br /&gt;
** x86 Consola Linux&lt;br /&gt;
** x86 GUI [[Mac OS X]]&lt;br /&gt;
** x86 Consola Mac OS X&lt;br /&gt;
** [[Arquitectura ARM|ARM]] [[Windows CE]]&lt;br /&gt;
* Formatos de archivos ejecutables&lt;br /&gt;
** [[Windows PE|PE]] (Windows)&lt;br /&gt;
** [[Executable and Linkable Format|ELF]] (Linux, la mayoría de *BSD)&lt;br /&gt;
** [[Mach-O]] (Mac OS X)&lt;br /&gt;
** Formato ''.[[exe]]'' de [[Netware]]&lt;br /&gt;
** Formato ''.exe'' de [[OS/2]]&lt;br /&gt;
** Formato ''.exe'' de [[GEOS]]&lt;br /&gt;
** [[DOS]]/[[Watcom]] ejecutable LE (sin [[DOS extender]] empotrado)&lt;br /&gt;
** raw binary, como con una imagen [[ROM]]&lt;br /&gt;
&lt;br /&gt;
* [[CPU|Procesadores]]&lt;br /&gt;
** Familia [[Intel]] 80x86&lt;br /&gt;
** ARM, incluyendo Thumb code&lt;br /&gt;
** [[Motorola]] 68xxx/h8&lt;br /&gt;
** [[Zilog]] [[Z80]]&lt;br /&gt;
** [[MOS Technology 6502]]&lt;br /&gt;
** [[Intel i860]]&lt;br /&gt;
** [[DEC Alpha]]&lt;br /&gt;
** [[Analog Devices]] ADSP218x&lt;br /&gt;
** Angstrem KR1878&lt;br /&gt;
** Atmel AVR series&lt;br /&gt;
** DEC series PDP11&lt;br /&gt;
** Fujitsu F2MC16L/F2MC16LX&lt;br /&gt;
** Familia de 32 bits de Fujitsu FR&lt;br /&gt;
** Hitachi SH3/SH3B/SH4/SH4B&lt;br /&gt;
** Hitachi H8: h8300/h8300a/h8s300/h8500&lt;br /&gt;
** Intel 196 series: 80196/80196NP&lt;br /&gt;
** Intel 51 series: 8051/80251b/80251s/80930b/80930s&lt;br /&gt;
** Intel i960 series&lt;br /&gt;
** Intel Itanium (ia64) series&lt;br /&gt;
** [[Java virtual machine]]&lt;br /&gt;
** [[MIPS]]: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l&lt;br /&gt;
** [[Microchip PIC]]: PIC12Cxx/PIC16Cxx/PIC18Cxx&lt;br /&gt;
** [[MSIL]]&lt;br /&gt;
** Familia Mitsubishi 7700: m7700/m7750&lt;br /&gt;
** Mitsubishi m32/m32rx&lt;br /&gt;
** Mitsubishi m740&lt;br /&gt;
** Mitsubishi m7900&lt;br /&gt;
** Familia Motorola DSP 5600x: dsp561xx/dsp5663xx/dsp566xx/dsp56k&lt;br /&gt;
** Motorola ColdFire&lt;br /&gt;
** Motorola HCS12&lt;br /&gt;
** NEC 78K0/78K0S&lt;br /&gt;
** [[PA-RISC]]&lt;br /&gt;
** [[PowerPC]]&lt;br /&gt;
** SGS-Thomson ST20/ST20c4/ST7&lt;br /&gt;
** Familia [[SPARC]]&lt;br /&gt;
** Samsung SAM8&lt;br /&gt;
** Siemens C166 series&lt;br /&gt;
** TMS320Cxxx series&lt;br /&gt;
&lt;br /&gt;
* [[Compilador]]/[[Biblioteca (informática)|Bibliotecas]] (para reconocimiento automático de funciones de biblioteca)&amp;lt;ref&amp;gt;{{cita web | url=http://www.hex-rays.com/idapro/idaflirtcomp.htm | título=FLIRT Compiler Support | editorial= Hex-Rays}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Borland C++ 5.x para DOS/Windows&lt;br /&gt;
** Borland C++ 3.1&lt;br /&gt;
** Borland C Builder v4 para DOS/Windows&lt;br /&gt;
** GNU C++ para Cygwin&lt;br /&gt;
** [[Microsoft C]]&lt;br /&gt;
** Microsoft [[QuickC]]&lt;br /&gt;
** Microsoft [[Visual C++]]&lt;br /&gt;
** Watcom C++ (16/32 bit) para DOS/OS2&lt;br /&gt;
** ARM C v1.2&lt;br /&gt;
** GNU C++ para Unix/common&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{listaref}}&lt;br /&gt;
&lt;br /&gt;
* {{cita libro |título=[[Reversing: Secrets of Reverse Engineering]] |apellidos=Eilam |nombre=Eldad |año=2005 |editorial=[[Wiley Publishing]] |isbn=0764574817 |páginas=595 }}&lt;br /&gt;
* {{cita libro|título= [http://www.idabook.com/ The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler ]|apellidos=Eagle |nombre=Chris|año=2008|editorial=[[No Starch Press]]|isbn=9781593271787}}&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[Lenguaje ensamblador]]&lt;br /&gt;
* [[Lenguaje ensamblador x86]]&lt;br /&gt;
* [[Ensamblador]]&lt;br /&gt;
* [[Desensamblador]]&lt;br /&gt;
* [[Compilador]]&lt;br /&gt;
* [[Decompilador]]&lt;br /&gt;
* [[Depurador]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [http://www.hex-rays.com/idapro/ English-language IDA Pro home page]&lt;br /&gt;
* [http://www.idapro.ru/ Russian-language IDA Pro home page]&lt;br /&gt;
* [http://www.openrce.org OpenRCE.org: Large collection of IDA plug-ins and scripts]&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Depuradores]]&lt;br /&gt;
[[Categoría:Desensambladores]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Desensamblador_Interactivo&amp;diff=3268375</id>
		<title>Desensamblador Interactivo</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Desensamblador_Interactivo&amp;diff=3268375"/>
		<updated>2018-12-11T13:59:49Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: remover error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En [[informática]], '''Interactive Disassembler''' ('''Desensamblador Interactivo'''), más conocido por su [[acrónimo]] '''IDA''', es un [[desensamblador]] empleado para [[ingeniería inversa]]. Soporta una variedad de [[Ejecutable|formatos ejecutables]] para diferentes [[CPU|procesadores]] y [[Sistema operativo|sistemas operativos]]. También puede ser usado como un [[depurador]] para ejecutables [[Portable Executable|Windows PE]], [[Mac OS X]], [[Mach-O]] y [[Linux]] [[Executable and Linkable Format|ELF]]. Un [[plugin]] de [[decompilador]] para programas compilados con [[lenguaje C|C]]/[[C++]] está disponible a un costo extra. La última versión completa del IDA Pro es un software comercial; una versión anterior y menos capaz está disponible para descarga gratuita (la versión 7.0 de septiembre de 2017).&amp;lt;ref&amp;gt;[http://www.hex-rays.com/idapro/idadownfreeware.htm IDA Pro 5.0 Freeware Version download]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El IDA realiza mucho análisis automático del código, usando referencias cruzadas entre las secciones del código, conocimiento de parámetros de las llamadas del [[API]], y otra información. Sin embargo, la naturaleza del desensamblado imposibilita una exactitud total, y una gran parte de intervención humana es necesariamente requerida; El IDA tiene funcionalidad interactiva para ayudar en la mejora del desensamblado. Un usuario típico del IDA comenzará con un listado de desensamblado automáticamente generado y después convertirá secciones de código a datos y viceversa, renombrará, anotará, y de otra manera agregará información al listado, hasta que se vuelve claro lo que lo hace.&lt;br /&gt;
&lt;br /&gt;
Creado como [[shareware]] por [[Ilfak Guilfanov]], IDA fue posteriormente vendido a DataRescue, una compañía belga, que lo mejoró y lo vendió bajo el nombre de IDA Pro. En 2007, Guilfanov fundó [[Hex-Rays]] para seguir el desarrollo de la extensión Hex-Rays Decompiler del IDA. En enero de 2008, Hex-Rays asumió el desarrollo y el soporte del IDA Pro de DataRescue.&lt;br /&gt;
&lt;br /&gt;
Guilfanov es el autor principal del IDA (Interactive Disassembler Pro).&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
Los &amp;quot;scripts IDA&amp;quot; hacen posible extender la operación del desensamblador. Son proporcionados Algunos útiles [[script]]s, que pueden servir como la base para scripts escritos por el usuario. Los más frecuentes scripts son usados para la modificación adicional del código generado. Por ejemplo, pueden ser cargadas [[tabla de símbolos (compilador)|tablas de símbolos]] externas de tal modo que se puedan usar los nombres de función del [[código fuente]] original. Hay sitios web dedicados a scripts IDA y ofrecen asistencia para problemas que surgen con frecuencia.&lt;br /&gt;
&lt;br /&gt;
Los usuarios han creado plugins que permita que otros [[lenguaje de scripting|lenguajes de scripting]] comunes puedan ser usados o agregados al del IDC. [https://web.archive.org/web/20110209082017/http://www.metasploit.com/users/spoonm/idarub/ IdaRUB] soporta [[Ruby]] e [https://web.archive.org/web/20150506023607/http://d-dome.net/idapython IDAPython] agrega soporte para [[Python]]. Desde la versión 5.4, IDAPython (dependiente del Python 2.5) viene preinstalado con el IDA Pro.&lt;br /&gt;
&lt;br /&gt;
== Sistemas, procesadores y compiladores soportados ==&lt;br /&gt;
&lt;br /&gt;
* [[Sistema operativo|Sistemas operativos]]&lt;br /&gt;
** [[x86]] [[GUI]] [[Microsoft Windows|Windows]]&lt;br /&gt;
** x86 [[Línea de comandos|Consola]] Windows&lt;br /&gt;
** x86 GUI [[Linux]]&lt;br /&gt;
** x86 Consola Linux&lt;br /&gt;
** x86 GUI [[Mac OS X]]&lt;br /&gt;
** x86 Consola Mac OS X&lt;br /&gt;
** [[Arquitectura ARM|ARM]] [[Windows CE]]&lt;br /&gt;
* Formatos de archivos ejecutables&lt;br /&gt;
** [[Windows PE|PE]] (Windows)&lt;br /&gt;
** [[Executable and Linkable Format|ELF]] (Linux, la mayoría de *BSD)&lt;br /&gt;
** [[Mach-O]] (Mac OS X)&lt;br /&gt;
** Formato ''.[[exe]]'' de [[Netware]]&lt;br /&gt;
** Formato ''.exe'' de [[OS/2]]&lt;br /&gt;
** Formato ''.exe'' de [[GEOS]]&lt;br /&gt;
** [[DOS]]/[[Watcom]] ejecutable LE (sin [[DOS extender]] empotrado)&lt;br /&gt;
** raw binary, como con una imagen [[ROM]]&lt;br /&gt;
&lt;br /&gt;
* [[CPU|Procesadores]]&lt;br /&gt;
** Familia [[Intel]] 80x86&lt;br /&gt;
** ARM, incluyendo Thumb code&lt;br /&gt;
** [[Motorola]] 68xxx/h8&lt;br /&gt;
** [[Zilog]] [[Z80]]&lt;br /&gt;
** [[MOS Technology 6502]]&lt;br /&gt;
** [[Intel i860]]&lt;br /&gt;
** [[DEC Alpha]]&lt;br /&gt;
** [[Analog Devices]] ADSP218x&lt;br /&gt;
** Angstrem KR1878&lt;br /&gt;
** Atmel AVR series&lt;br /&gt;
** DEC series PDP11&lt;br /&gt;
** Fujitsu F2MC16L/F2MC16LX&lt;br /&gt;
** Familia de 32 bits de Fujitsu FR&lt;br /&gt;
** Hitachi SH3/SH3B/SH4/SH4B&lt;br /&gt;
** Hitachi H8: h8300/h8300a/h8s300/h8500&lt;br /&gt;
** Intel 196 series: 80196/80196NP&lt;br /&gt;
** Intel 51 series: 8051/80251b/80251s/80930b/80930s&lt;br /&gt;
** Intel i960 series&lt;br /&gt;
** Intel Itanium (ia64) series&lt;br /&gt;
** [[Java virtual machine]]&lt;br /&gt;
** [[MIPS]]: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l&lt;br /&gt;
** [[Microchip PIC]]: PIC12Cxx/PIC16Cxx/PIC18Cxx&lt;br /&gt;
** [[MSIL]]&lt;br /&gt;
** Familia Mitsubishi 7700: m7700/m7750&lt;br /&gt;
** Mitsubishi m32/m32rx&lt;br /&gt;
** Mitsubishi m740&lt;br /&gt;
** Mitsubishi m7900&lt;br /&gt;
** Familia Motorola DSP 5600x: dsp561xx/dsp5663xx/dsp566xx/dsp56k&lt;br /&gt;
** Motorola ColdFire&lt;br /&gt;
** Motorola HCS12&lt;br /&gt;
** NEC 78K0/78K0S&lt;br /&gt;
** [[PA-RISC]]&lt;br /&gt;
** [[PowerPC]]&lt;br /&gt;
** SGS-Thomson ST20/ST20c4/ST7&lt;br /&gt;
** Familia [[SPARC]]&lt;br /&gt;
** Samsung SAM8&lt;br /&gt;
** Siemens C166 series&lt;br /&gt;
** TMS320Cxxx series&lt;br /&gt;
&lt;br /&gt;
* [[Compilador]]/[[Biblioteca (informática)|Bibliotecas]] (para reconocimiento automático de funciones de biblioteca)&amp;lt;ref&amp;gt;{{cita web | url=http://www.hex-rays.com/idapro/idaflirtcomp.htm | título=FLIRT Compiler Support | editorial= Hex-Rays}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Borland C++ 5.x para DOS/Windows&lt;br /&gt;
** Borland C++ 3.1&lt;br /&gt;
** Borland C Builder v4 para DOS/Windows&lt;br /&gt;
** GNU C++ para Cygwin&lt;br /&gt;
** [[Microsoft C]]&lt;br /&gt;
** Microsoft [[QuickC]]&lt;br /&gt;
** Microsoft [[Visual C++]]&lt;br /&gt;
** Watcom C++ (16/32 bit) para DOS/OS2&lt;br /&gt;
** ARM C v1.2&lt;br /&gt;
** GNU C++ para Unix/common&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{listaref}}&lt;br /&gt;
&lt;br /&gt;
* {{cita libro |título=[[Reversing: Secrets of Reverse Engineering]] |apellidos=Eilam |nombre=Eldad |año=2005 |editorial=[[Wiley Publishing]] |isbn=0764574817 |páginas=595 }}&lt;br /&gt;
* {{cita libro|título= [http://www.idabook.com/ The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler ]|apellidos=Eagle |nombre=Chris|año=2008|editorial=[[No Starch Press]]|isbn=9781593271787}}&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[Lenguaje ensamblador]]&lt;br /&gt;
* [[Lenguaje ensamblador x86]]&lt;br /&gt;
* [[Ensamblador]]&lt;br /&gt;
* [[Desensamblador]]&lt;br /&gt;
* [[Compilador]]&lt;br /&gt;
* [[Decompilador]]&lt;br /&gt;
* [[Depurador]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [http://www.hex-rays.com/idapro/ English-language IDA Pro home page]&lt;br /&gt;
* [http://www.idapro.ru/ Russian-language IDA Pro home page]&lt;br /&gt;
* [http://www.openrce.org OpenRCE.org: Large collection of IDA plug-ins and scripts]&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Depuradores]]&lt;br /&gt;
[[Categoría:Desensambladores]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Desensamblador_Interactivo&amp;diff=3268372</id>
		<title>Desensamblador Interactivo</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Desensamblador_Interactivo&amp;diff=3268372"/>
		<updated>2018-12-11T13:59:00Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: Página creada con «{{Ficha de software |nombre                      = Interactive Disassembler |logo                        =  |captura                     =  |pie                         =…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ficha de software&lt;br /&gt;
|nombre                      = Interactive Disassembler&lt;br /&gt;
|logo                        = &lt;br /&gt;
|captura                     = &lt;br /&gt;
|pie                         = &lt;br /&gt;
|desarrollador               = Ilfak Guilfanov&lt;br /&gt;
|última_versión              = 7.1&lt;br /&gt;
|web_última_versión          = https://www.hex-rays.com/products/ida/7.1/index.shtml&lt;br /&gt;
|fecha_última_versión        = {{fecha de lanzamiento|27|02|2018}}&lt;br /&gt;
|género                      = [[Desensamblador]]&lt;br /&gt;
|sistema_operativo           = [[Multiplataforma]]&lt;br /&gt;
|licencia                    = [[Software propietario|Propietaria]]&lt;br /&gt;
|sitio_web                   = http://www.hex-rays.com/products/ida/index.shtml&lt;br /&gt;
|soporte                     = &lt;br /&gt;
|versiones                   = &lt;br /&gt;
}}&lt;br /&gt;
En [[informática]], '''Interactive Disassembler''' ('''Desensamblador Interactivo'''), más conocido por su [[acrónimo]] '''IDA''', es un [[desensamblador]] empleado para [[ingeniería inversa]]. Soporta una variedad de [[Ejecutable|formatos ejecutables]] para diferentes [[CPU|procesadores]] y [[Sistema operativo|sistemas operativos]]. También puede ser usado como un [[depurador]] para ejecutables [[Portable Executable|Windows PE]], [[Mac OS X]], [[Mach-O]] y [[Linux]] [[Executable and Linkable Format|ELF]]. Un [[plugin]] de [[decompilador]] para programas compilados con [[lenguaje C|C]]/[[C++]] está disponible a un costo extra. La última versión completa del IDA Pro es un software comercial; una versión anterior y menos capaz está disponible para descarga gratuita (la versión 7.0 de septiembre de 2017).&amp;lt;ref&amp;gt;[http://www.hex-rays.com/idapro/idadownfreeware.htm IDA Pro 5.0 Freeware Version download]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El IDA realiza mucho análisis automático del código, usando referencias cruzadas entre las secciones del código, conocimiento de parámetros de las llamadas del [[API]], y otra información. Sin embargo, la naturaleza del desensamblado imposibilita una exactitud total, y una gran parte de intervención humana es necesariamente requerida; El IDA tiene funcionalidad interactiva para ayudar en la mejora del desensamblado. Un usuario típico del IDA comenzará con un listado de desensamblado automáticamente generado y después convertirá secciones de código a datos y viceversa, renombrará, anotará, y de otra manera agregará información al listado, hasta que se vuelve claro lo que lo hace.&lt;br /&gt;
&lt;br /&gt;
Creado como [[shareware]] por [[Ilfak Guilfanov]], IDA fue posteriormente vendido a DataRescue, una compañía belga, que lo mejoró y lo vendió bajo el nombre de IDA Pro. En 2007, Guilfanov fundó [[Hex-Rays]] para seguir el desarrollo de la extensión Hex-Rays Decompiler del IDA. En enero de 2008, Hex-Rays asumió el desarrollo y el soporte del IDA Pro de DataRescue.&lt;br /&gt;
&lt;br /&gt;
Guilfanov es el autor principal del IDA (Interactive Disassembler Pro).&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
Los &amp;quot;scripts IDA&amp;quot; hacen posible extender la operación del desensamblador. Son proporcionados Algunos útiles [[script]]s, que pueden servir como la base para scripts escritos por el usuario. Los más frecuentes scripts son usados para la modificación adicional del código generado. Por ejemplo, pueden ser cargadas [[tabla de símbolos (compilador)|tablas de símbolos]] externas de tal modo que se puedan usar los nombres de función del [[código fuente]] original. Hay sitios web dedicados a scripts IDA y ofrecen asistencia para problemas que surgen con frecuencia.&lt;br /&gt;
&lt;br /&gt;
Los usuarios han creado plugins que permita que otros [[lenguaje de scripting|lenguajes de scripting]] comunes puedan ser usados o agregados al del IDC. [https://web.archive.org/web/20110209082017/http://www.metasploit.com/users/spoonm/idarub/ IdaRUB] soporta [[Ruby]] e [https://web.archive.org/web/20150506023607/http://d-dome.net/idapython IDAPython] agrega soporte para [[Python]]. Desde la versión 5.4, IDAPython (dependiente del Python 2.5) viene preinstalado con el IDA Pro.&lt;br /&gt;
&lt;br /&gt;
== Sistemas, procesadores y compiladores soportados ==&lt;br /&gt;
&lt;br /&gt;
* [[Sistema operativo|Sistemas operativos]]&lt;br /&gt;
** [[x86]] [[GUI]] [[Microsoft Windows|Windows]]&lt;br /&gt;
** x86 [[Línea de comandos|Consola]] Windows&lt;br /&gt;
** x86 GUI [[Linux]]&lt;br /&gt;
** x86 Consola Linux&lt;br /&gt;
** x86 GUI [[Mac OS X]]&lt;br /&gt;
** x86 Consola Mac OS X&lt;br /&gt;
** [[Arquitectura ARM|ARM]] [[Windows CE]]&lt;br /&gt;
* Formatos de archivos ejecutables&lt;br /&gt;
** [[Windows PE|PE]] (Windows)&lt;br /&gt;
** [[Executable and Linkable Format|ELF]] (Linux, la mayoría de *BSD)&lt;br /&gt;
** [[Mach-O]] (Mac OS X)&lt;br /&gt;
** Formato ''.[[exe]]'' de [[Netware]]&lt;br /&gt;
** Formato ''.exe'' de [[OS/2]]&lt;br /&gt;
** Formato ''.exe'' de [[GEOS]]&lt;br /&gt;
** [[DOS]]/[[Watcom]] ejecutable LE (sin [[DOS extender]] empotrado)&lt;br /&gt;
** raw binary, como con una imagen [[ROM]]&lt;br /&gt;
&lt;br /&gt;
* [[CPU|Procesadores]]&lt;br /&gt;
** Familia [[Intel]] 80x86&lt;br /&gt;
** ARM, incluyendo Thumb code&lt;br /&gt;
** [[Motorola]] 68xxx/h8&lt;br /&gt;
** [[Zilog]] [[Z80]]&lt;br /&gt;
** [[MOS Technology 6502]]&lt;br /&gt;
** [[Intel i860]]&lt;br /&gt;
** [[DEC Alpha]]&lt;br /&gt;
** [[Analog Devices]] ADSP218x&lt;br /&gt;
** Angstrem KR1878&lt;br /&gt;
** Atmel AVR series&lt;br /&gt;
** DEC series PDP11&lt;br /&gt;
** Fujitsu F2MC16L/F2MC16LX&lt;br /&gt;
** Familia de 32 bits de Fujitsu FR&lt;br /&gt;
** Hitachi SH3/SH3B/SH4/SH4B&lt;br /&gt;
** Hitachi H8: h8300/h8300a/h8s300/h8500&lt;br /&gt;
** Intel 196 series: 80196/80196NP&lt;br /&gt;
** Intel 51 series: 8051/80251b/80251s/80930b/80930s&lt;br /&gt;
** Intel i960 series&lt;br /&gt;
** Intel Itanium (ia64) series&lt;br /&gt;
** [[Java virtual machine]]&lt;br /&gt;
** [[MIPS]]: mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l&lt;br /&gt;
** [[Microchip PIC]]: PIC12Cxx/PIC16Cxx/PIC18Cxx&lt;br /&gt;
** [[MSIL]]&lt;br /&gt;
** Familia Mitsubishi 7700: m7700/m7750&lt;br /&gt;
** Mitsubishi m32/m32rx&lt;br /&gt;
** Mitsubishi m740&lt;br /&gt;
** Mitsubishi m7900&lt;br /&gt;
** Familia Motorola DSP 5600x: dsp561xx/dsp5663xx/dsp566xx/dsp56k&lt;br /&gt;
** Motorola ColdFire&lt;br /&gt;
** Motorola HCS12&lt;br /&gt;
** NEC 78K0/78K0S&lt;br /&gt;
** [[PA-RISC]]&lt;br /&gt;
** [[PowerPC]]&lt;br /&gt;
** SGS-Thomson ST20/ST20c4/ST7&lt;br /&gt;
** Familia [[SPARC]]&lt;br /&gt;
** Samsung SAM8&lt;br /&gt;
** Siemens C166 series&lt;br /&gt;
** TMS320Cxxx series&lt;br /&gt;
&lt;br /&gt;
* [[Compilador]]/[[Biblioteca (informática)|Bibliotecas]] (para reconocimiento automático de funciones de biblioteca)&amp;lt;ref&amp;gt;{{cita web | url=http://www.hex-rays.com/idapro/idaflirtcomp.htm | título=FLIRT Compiler Support | editorial= Hex-Rays}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
** Borland C++ 5.x para DOS/Windows&lt;br /&gt;
** Borland C++ 3.1&lt;br /&gt;
** Borland C Builder v4 para DOS/Windows&lt;br /&gt;
** GNU C++ para Cygwin&lt;br /&gt;
** [[Microsoft C]]&lt;br /&gt;
** Microsoft [[QuickC]]&lt;br /&gt;
** Microsoft [[Visual C++]]&lt;br /&gt;
** Watcom C++ (16/32 bit) para DOS/OS2&lt;br /&gt;
** ARM C v1.2&lt;br /&gt;
** GNU C++ para Unix/common&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{listaref}}&lt;br /&gt;
&lt;br /&gt;
* {{cita libro |título=[[Reversing: Secrets of Reverse Engineering]] |apellidos=Eilam |nombre=Eldad |año=2005 |editorial=[[Wiley Publishing]] |isbn=0764574817 |páginas=595 }}&lt;br /&gt;
* {{cita libro|título= [http://www.idabook.com/ The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler ]|apellidos=Eagle |nombre=Chris|año=2008|editorial=[[No Starch Press]]|isbn=9781593271787}}&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[Lenguaje ensamblador]]&lt;br /&gt;
* [[Lenguaje ensamblador x86]]&lt;br /&gt;
* [[Ensamblador]]&lt;br /&gt;
* [[Desensamblador]]&lt;br /&gt;
* [[Compilador]]&lt;br /&gt;
* [[Decompilador]]&lt;br /&gt;
* [[Depurador]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [http://www.hex-rays.com/idapro/ English-language IDA Pro home page]&lt;br /&gt;
* [http://www.idapro.ru/ Russian-language IDA Pro home page]&lt;br /&gt;
* [http://www.openrce.org OpenRCE.org: Large collection of IDA plug-ins and scripts]&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Depuradores]]&lt;br /&gt;
[[Categoría:Desensambladores]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=API_de_Windows&amp;diff=3268351</id>
		<title>API de Windows</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=API_de_Windows&amp;diff=3268351"/>
		<updated>2018-12-11T13:54:08Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: Página creada con «La '''interfaz de programación de aplicaciones de Windows''', cuyo nombre en inglés es '''Windows API''' (''Windows application programming interface''…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La '''interfaz de programación de aplicaciones de Windows''', cuyo nombre en [[idioma inglés|inglés]] es '''Windows API''' (''Windows application programming interface''), es un conjunto de [[Subrutina|funciones]] residentes en [[Biblioteca (programación)|bibliotecas]] (generalmente [[Biblioteca de enlace dinámico|dinámicas]], también llamadas DLL por sus siglas en inglés, término usado para referirse a éstas en Windows) que permiten que una aplicación corra bajo un determinado sistema operativo.&lt;br /&gt;
&lt;br /&gt;
Debido a su estrecha relación con el desarrollo de [[software]], los programas en sus especificaciones generalmente explicitan la versión de la API del sistema operativo, mediante diversas nomenclaturas tales como la versión específica del sistema operativo (para [[Windows 98]], por ejemplo), o explicitando la versión del conjunto de bibliotecas (''Plataforma Win32'', etc.).&lt;br /&gt;
&lt;br /&gt;
Las funciones API se dividen en varias categorías:&lt;br /&gt;
&lt;br /&gt;
* Depuración y manejo de errores&lt;br /&gt;
* E/S de dispositivos&lt;br /&gt;
* Varias DLL, procesos e hilos&lt;br /&gt;
* Comunicación entre procesos&lt;br /&gt;
* Manejo de la memoria&lt;br /&gt;
* Monitorización del desempeño&lt;br /&gt;
* Manejo de energía&lt;br /&gt;
* Almacenamiento&lt;br /&gt;
* Información del sistema&lt;br /&gt;
* GDI (interfaz para dispositivos gráficos) de Windows (tales como impresoras)&lt;br /&gt;
* Interfaz de usuario de Windows&lt;br /&gt;
&lt;br /&gt;
== Versiones de APIs==&lt;br /&gt;
La primera versión de esta '''interfaz era de 16 [[bit]]s, y llamada Win16. Sólo se utilizaba en las versiones de 16 bits de Windows.&lt;br /&gt;
&lt;br /&gt;
En su nueva versión 32 bits, se incrementó el número de [[Interfaz de programación de aplicaciones|funciones]] disponibles. [[Microsoft]] proporciona un [[kit de desarrollo de software]] en el que se incluyen la documentación y las herramientas necesarias para que los programadores puedan crear sus aplicaciones y aprovechar los recursos del sistema.&lt;br /&gt;
&lt;br /&gt;
Las versiones modernas de Windows utilizan la API de 32 bits llamada Win32. Está compuesta por funciones en [[C (lenguaje de programación)|C]] almacenadas en bibliotecas de enlace dinámico (DLL), especialmente en las del núcleo:&lt;br /&gt;
&lt;br /&gt;
* kernel32.dll&lt;br /&gt;
* user32.dll&lt;br /&gt;
* gdi32.dll&lt;br /&gt;
&lt;br /&gt;
Aunque la implementación de Microsoft tiene derechos de autor, generalmente se acepta que otras empresas puedan emular Windows proporcionando API idénticas, sin que implique violación de derechos de autor.&lt;br /&gt;
&lt;br /&gt;
La extensión 64 bits de la versión 32 bits se llama Win64.&lt;br /&gt;
&lt;br /&gt;
El proyecto [[Wine]] es un intento de que esta API esté disponible para plataformas de tipo [[Unix]].&lt;br /&gt;
&lt;br /&gt;
== Compiladores ==&lt;br /&gt;
Para desarrollar programas que funcionen en Windows se necesita un [[compilador]] que maneje las DLL y objetos [[Component Object Model|COM]] específicos de Microsoft, así como también un cierto número de archivos de cabecera de C (de extensión ''.h'') que definen las interfaces de las DLL. Generalmente se usan las familias de compiladores Visual Studio y Embarcadero, pero ahora existen herramientas libres como [[MinGW]] y [[Cygwin]].&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[DirectX]]&lt;br /&gt;
* [[Component Object Model]]&lt;br /&gt;
* [[.NET de Microsoft|.NET]]&lt;br /&gt;
* [[Historia de Windows]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [http://msdn.microsoft.com Red de desarrollo de Microsoft]&lt;br /&gt;
* [http://winapi.conclase.net/ Tutorial de programación de interfaces gráficas para Windows con su API]&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Microsoft Windows]]&lt;br /&gt;
[[Categoría:Interfaces de programación de aplicaciones de Microsoft]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=WINE&amp;diff=3268344</id>
		<title>WINE</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=WINE&amp;diff=3268344"/>
		<updated>2018-12-11T13:52:18Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: Edicion de la plantilla&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ficha de software&lt;br /&gt;
| nombre                      = Wine&lt;br /&gt;
| logo                        = [[Archivo:WINE-Logo.svg|45px]]&lt;br /&gt;
| captura                     = [[Archivo:Wine configuration screenshot.png|225px]]&lt;br /&gt;
| pie                         = Pantalla de configuración de Wine&lt;br /&gt;
| autor                       = &lt;br /&gt;
| desarrollador               = [http://winehq.org/site/who Wine team]&lt;br /&gt;
|modelo_desarrollo            = [[software libre]]&lt;br /&gt;
| última_versión              = 3.0.4&lt;br /&gt;
| fecha_última_versión        = {{Fecha de lanzamiento|29|11|2018}}&lt;br /&gt;
| web_última_versión          = https://www.winehq.org/news/&lt;br /&gt;
| última_versión_prueba       = &lt;br /&gt;
| fecha_última_versión_prueba = {{Fecha de lanzamiento|5|1|2018}}&lt;br /&gt;
| web_última_versión_prueba   = https://www.winehq.org/news/&lt;br /&gt;
| lenguaje_programación       = &lt;br /&gt;
| sistema_operativo           = [[GNU/Linux]],[[Android]] otros sistemas compatibles con [[POSIX]]&lt;br /&gt;
| género                      = [[Capa de compatibilidad]]&lt;br /&gt;
| licencia                    = [[GNU Lesser General Public License]]&lt;br /&gt;
| sitio_web                   = http://www.winehq.org&lt;br /&gt;
| idiomas                     = &lt;br /&gt;
| español                     = Sí&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Wine''' ([[acrónimo recursivo]] en inglés para ''Wine Is Not an Emulator'', que significa «Wine no es un emulador») es una [[Capa de compatibilidad|reimplementación]] de la [[interfaz de programación de aplicaciones]] de Win16 y Win32 para [[Sistema operativo|sistemas operativos]] basados en [[Unix]]. Permite la ejecución de programas diseñados para [[MS-DOS]], y las versiones de [[Microsoft Windows]] [[Windows 3.11|3.11]], [[Windows 95|95]], [[Windows 98|98]], [[Windows Me|Me]], [[Windows NT|NT]], [[Windows 2000|2000]], [[Windows XP|XP]], [[Windows Vista|Vista]], [[Windows 7|7]], [[Windows 8|8]] y [[Windows 10|10]].&lt;br /&gt;
&lt;br /&gt;
El nombre ''Wine'' inicialmente fue un acrónimo para '''''WIN'''dows '''E'''mulator''.&amp;lt;ref&amp;gt;[http://www.faqs.org/faqs/windows-emulation/wine-faq WINE FAQ] Antiguo significado del nombre usado incluso hasta 1997&amp;lt;/ref&amp;gt; Este significado fue cambiado posteriormente al acrónimo recursivo actual.&lt;br /&gt;
&lt;br /&gt;
Wine provee de: &lt;br /&gt;
* Un conjunto de herramientas de desarrollo para portar [[código fuente]] de aplicaciones Windows a Unix.&lt;br /&gt;
* Un cargador de programas, el cual permite que muchas aplicaciones para Windows 2.0/3.x/9X/ME/NT/2000/XP/Vista/7 y 8 se ejecuten sin modificarse en varios sistemas operativos [[unix]] como [[Mac OS X]], [[BSD]] y ''[[unix-like]]'' como [[GNU/Linux]], [[Solaris (sistema operativo)|Solaris]] y&lt;br /&gt;
&lt;br /&gt;
== Historia del proyecto ==&lt;br /&gt;
{{referencias|t=20080617|informática}}&lt;br /&gt;
El proyecto Wine comenzó en 1993, época de [[Windows 3.11|la versión 3.11 de Windows]]. El proyecto posiblemente se originó en discusiones en ''comp.os.linux''. Los programadores [[Eric Youngdale]] y [[Bob Amstadt]] crearon su primera versión. La razón por la cual Wine ''no es un emulador'' es que los emuladores tienden a duplicar el entorno completo en el que un programa vive, incluyendo la simulación de una arquitectura de [[microprocesador]] determinada. Wine, por el contrario, implementa lo que podría ser llamado una ''capa de compatibilidad'', la cual provee alternativas a las [[biblioteca (informática)|bibliotecas]] de [[Microsoft Windows]].&lt;br /&gt;
&lt;br /&gt;
A mediados del año 2002, ya se contaba con una aplicación con más de 1 millón de líneas de código fuente escrito en el [[C (lenguaje de programación)|lenguaje C]] y con un grupo de más de 300 programadores. El proyecto tuvo tiempos en los cuales no se avanzó lo suficiente, hasta que en el año 2003, aplicaciones muy extendidas en el entorno Windows como [[Microsoft Office]] e [[Internet Explorer]] fueron posibles de ser utilizadas en entornos [[Unix]] gracias a Wine.&lt;br /&gt;
&lt;br /&gt;
El proyecto presenta grandes retos para los desarrolladores, al menos en parte debido a la incompleta documentación de la [[API de Windows]]. A pesar de que la mayoría de las funciones la API Win32 están correctamente documentadas, existen aún muchas áreas, como formatos de archivos y protocolos, para las cuales no existen especificaciones documentadas por parte de Microsoft.&lt;br /&gt;
&lt;br /&gt;
Hacia comienzos de 2003, Wine podía ejecutar muchos programas populares, como [[Lotus Notes]] y algunas versiones de Microsoft Office, con comportamientos y estabilidad variables. El éxito del funcionamiento de cada aplicación depende del uso de [[Biblioteca de enlace dinámico|bibliotecas dinámicas]] (DLL) de Windows.&lt;br /&gt;
&lt;br /&gt;
La empresa de software [[Corel]] ayudó mucho al proyecto, empleando temporalmente a uno de los principales desarrolladores, [[Alexandre Julliard]], junto con muchos otros programadores secundarios. Esta ayuda fue motivada por el ''porting'' de la [[suite ofimática]] de Corel a [[GNU/Linux]]. Sin embargo, debido a dificultades económicas, el apoyo de Corel cesó.&lt;br /&gt;
&lt;br /&gt;
Otras organizaciones han hecho esfuerzos comerciales para apoyar el proyecto, incluyendo [[CodeWeavers]] y [[Linspire]]. [[CodeWeavers]] ha desarrollado una versión comercial, cerrada y visualmente más atractiva, de Wine y la comercializa bajo el nombre [[CrossOver Office]]; además, colabora con el proyecto, ya sea financiándolo o con parches.&lt;br /&gt;
&lt;br /&gt;
El desarrollo oficial de Wine está orientado hacia la correcta implementación de la API de Windows como un todo y aunque se encuentra un poco atrasado en estas áreas, desde su versión 1.0 de verano de 2008 es capaz de ejecutar con éxito y con pocos o escasos errores una gran variedad de aplicaciones diseñadas para Windows.&lt;br /&gt;
&lt;br /&gt;
Otros proyectos que han incorporado [[código fuente]] de Wine son [[Rewind]], [[ReactOS]] y [[Longene]]. El último proyecto es un módulo para el kernel linux que sustituye al wineserver, acelerando la ejecución de Wine.&lt;br /&gt;
&lt;br /&gt;
== Estado actual de Wine ==&lt;br /&gt;
[[Archivo:History Of WineAppDB.gif|thumb|300px|Animación que muestra el progreso en compatibilidad de aplicaciones de acuerdo a los resultados de las pruebas de Wine AppDB (clic en la imagen para ver la animación).&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Leyenda|#ececec|Funciona sin errores («platino»)}}&lt;br /&gt;
{{Leyenda|#fff600|Funciona sin errores pero requiere configuración adicional («oro»)}}&lt;br /&gt;
{{Leyenda|#c0c0c0|Funciona con errores menores («plata»)}}&lt;br /&gt;
{{Leyenda|#fcba0a|Funciona con errores mayores («bronce»)}}&lt;br /&gt;
{{Leyenda|#999966|Inutilizable («basura»)}}&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
De acuerdo a un estudio realizado en [[Internet]] por DesktopLinux.com&amp;lt;ref&amp;gt;{{cita web|url=http://www.desktoplinux.com/cgi-bin/survey/survey.cgi?view=archive&amp;amp;id=0821200617613|título=2006 Desktop Linux Market survey|urlarchivo=https://web.archive.org/web/20050307001936/http://www.desktoplinux.com/cgi-bin/survey/survey.cgi?view=archive|fechaarchivo=7 de marzo de 2005}}&amp;lt;/ref&amp;gt; en 2006, la aplicación Wine es bastante usada con relación a las demás con una demanda de 33,5% de los encuestados, mientras que un 16,7% utiliza el [[VMware]] y apenas un 7% usa la aplicación [[CrossOver Office|CrossOver]]. En tanto la porción de los encuestados que no utiliza ninguno fue de un 39%.&lt;br /&gt;
&lt;br /&gt;
El 17 de junio de 2008 el proyecto Wine lanzó la versión 1.0,&amp;lt;ref&amp;gt;{{cita web | url = http://www.winehq.org/?announce=1.0 |título= Anuncio de la publicación de la versión 1.0 }}&amp;lt;/ref&amp;gt; la primera versión estable en quince años de desarrollo. Ésta presenta mejoras con relación a las versiones alpha y beta, de las cuales se puede mencionar un mejor soporte de ratón en los juegos, aplicaciones con uso de [[Biblioteca (informática)|bibliotecas]] [[OpenGL]], manejo de nuevos estados en [[Direct3D]] y mejora del sistema de audio, entre mejoras importantes.&lt;br /&gt;
&lt;br /&gt;
El 16 de julio de 2010 el proyecto Wine lanzó la versión estable 1.2,&amp;lt;ref&amp;gt;{{cita web | url = http://www.winehq.org/?announce=1.2 |título= Anuncio de la publicación de la versión 1.2 }}&amp;lt;/ref&amp;gt; presentando más de 23&amp;amp;nbsp;000 cambios en el código fuente, más de 3000 ''[[Error de software|bugs]]'' arreglados y el soporte para aplicaciones de 64 bits.&lt;br /&gt;
&lt;br /&gt;
El 7 de marzo de 2012 el proyecto Wine lanzó la versión estable 1.4,&amp;lt;ref name=&amp;quot;ref_dup_1&amp;quot;&amp;gt;{{cita web | url = http://www.winehq.org/?announce=1.4 |título= Anuncio de la publicación de la versión 1.4 }}&amp;lt;/ref&amp;gt; añadiendo soporte a muchas nuevas aplicaciones como Microsoft Office 2010,&amp;lt;ref name=&amp;quot;ref_dup_1&amp;quot; /&amp;gt; y juegos de última generación como Skyrim&amp;lt;ref&amp;gt;{{cita web | url = http://appdb.winehq.org/objectManager.php?sClass=application&amp;amp;iId=13667 |título= Base de datos de aplicaciones: Skyrim }}&amp;lt;/ref&amp;gt; o Starcraft 2.&amp;lt;ref&amp;gt;{{cita web | url = http://appdb.winehq.org/objectManager.php?sClass=application&amp;amp;iId=11123 |título= Base de datos de aplicaciones: Starcraft II }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El 18 de julio de 2013 el proyecto Wine lanzó la versión estable 1.6,&amp;lt;ref&amp;gt;{{cita web | url = http://www.winehq.org/news/2013071801 |título= Anuncio de la publicación de la versión 1.6 }}&amp;lt;/ref&amp;gt; añadiendo más de 10&amp;amp;nbsp;000 cambios en el código fuente y añadiendo soporte a aplicaciones .Net y Mono.&lt;br /&gt;
&lt;br /&gt;
El 19 de diciembre de 2015 el proyecto Wine lanzó la versión estable 1.8,&amp;lt;ref&amp;gt;{{Cita web|url=https://www.winehq.org/announce/1.8|título=The Wine team is proud to announce that the stable release Wine 1.8|fechaacceso=11 de marzo de 2016|sitioweb=WineHQ}}&amp;lt;/ref&amp;gt; después de 17 meses de desarrollo y añadiendo más de 13 000 cambios en el código fuente.  Los puntos a destacar es la implementación de DirectWrite y Direct2D, y el nuevo controlador de audio pulse.&lt;br /&gt;
&lt;br /&gt;
== Características ==&lt;br /&gt;
[[Archivo:ClamWin on Ubuntu.png|250px|thumb|right|[[Antivirus]] [[ClamWin]] 0.93.1 ejecutado en [[Ubuntu]] mediante Wine.]]&lt;br /&gt;
[[Archivo:Captura_de_pantalla_de_Wine_Internet_Explorer.png|250px|thumb|right|Wine Internet Explorer (formalmente Wine Web Browser) mostrando la portada de [[Wikipedia]].]]&lt;br /&gt;
&lt;br /&gt;
=== Compatibilidad binaria ===&lt;br /&gt;
* Soporte para programas de la familia [[MS-DOS]] y Windows (3.x/9x/NT/2000/XP/2003/Vista/2008/7/8).&lt;br /&gt;
* Soporte para llamadas de funciones de Windows de 64, 32 y 16 bits.&lt;br /&gt;
* Código [[x86]] de 64, 32 y 16 bits.&lt;br /&gt;
* Extensas [[Biblioteca (informática)|bibliotecas]] de [[interrupción|interrupciones]] para programas utilizando llamadas de modo real INTxx.&lt;br /&gt;
* Capacidades avanzadas de ''[[trunking]]''.&lt;br /&gt;
* Posibilidad de añadirle más [[Biblioteca de enlace dinámico|bibliotecas de enlace dinámico]] (DLL), incluso las nativas de Windows, las cuales están ubicadas en la carpeta ''C:\Windows\System32'', y pueden ser instaladas en wine copiando dichas librerías en la carpeta ''~/.wine/drive_c/windows/system32''.&lt;br /&gt;
* Diseño de [[ingeniería inversa]] para mejorar la solución frente a errores.&lt;br /&gt;
* Ejecución sobre otras arquitecturas no Intel bajo emulación, con [[QEMU]] (Darwine era una bifurcación de Wine hecha para Mac OS X PowerPC, pero el proyecto quedó abandonado).&lt;br /&gt;
&lt;br /&gt;
=== Gráficos ===&lt;br /&gt;
* Puede dibujar en entornos gráficos basados en [[X11]], [[SDL]] texto/[[ttydrv]].&lt;br /&gt;
* Pantalla remota para cualquier [[terminal X]].&lt;br /&gt;
* Soporte total de [[GDI]] y parcial GDI32.&lt;br /&gt;
* Soporte de [[DirectX]] para juegos.&lt;br /&gt;
* Puede utilizar [[impresora]]s para sistemas Microsoft Windows de 16 bits de forma nativa.&lt;br /&gt;
* Interfaz interna de [[impresión]] [[PostScript]].&lt;br /&gt;
* Capacidad para metaarchivos.&lt;br /&gt;
* Capacidad de ejecución en una o varias ventanas.&lt;br /&gt;
* Posibilidad de instalar temas visuales de formato ''[[msstyle]]'', los nativos de Windows.&lt;br /&gt;
&lt;br /&gt;
=== Otras características ===&lt;br /&gt;
* Soporte para [[sonido]] y entradas alternativas.&lt;br /&gt;
* Soporte para [[módem]]s o dispositivos por [[puerto serie]].&lt;br /&gt;
* Trabajo en red con Winsock [[TCP/IP]].&lt;br /&gt;
* Soporte para [[escáner]]es [[ASPI]].&lt;br /&gt;
* Soporte para controles avanzados típicos de programas para Microsoft Windows de 32 bits.&lt;br /&gt;
&lt;br /&gt;
=== Wine API ===&lt;br /&gt;
* Diseñado para ser compatible con código para Windows de 32 bits.&lt;br /&gt;
* Programas de muestra&lt;br /&gt;
* Documentación generada automáticamente de las [[Interfaz de programación de aplicaciones|API]]&lt;br /&gt;
* Compilador fuente de 32 bits&lt;br /&gt;
* Capacidad parcial de codificación [[Unicode]]&lt;br /&gt;
* [[Internacionalización y localización|Internacionalizaci]]ón: Wine está disponible en 16 lenguas&lt;br /&gt;
* [[Depurador]] integrado y mensajes de rastreo configurables&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[Anbox]]&lt;br /&gt;
* [[Boot Camp]]&lt;br /&gt;
* [[Cygwin]]&lt;br /&gt;
* [[Wine Doors]]&lt;br /&gt;
* [[PlayOnLinux]]&lt;br /&gt;
* [[Fink]]&lt;br /&gt;
* [[Cedega]]&lt;br /&gt;
* [[DOSBox]]&lt;br /&gt;
* [[Linux Unified Kernel]]&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{Listaref}}&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [https://www.winehq.org/lang/en Sitio web oficial de Wine] {{en}}&lt;br /&gt;
* [https://www.winehq.org/lang/es Sitio web oficial de Wine]&lt;br /&gt;
* [http://appdb.winehq.org Programas compatibles] {{en}}&lt;br /&gt;
* {{Freshmeat|wine|Wine}}&lt;br /&gt;
* {{ohloh|wine}}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Acrónimos de informática]]&lt;br /&gt;
[[Categoría:Software para Linux]]&lt;br /&gt;
[[Categoría:Software libre]]&lt;br /&gt;
[[Categoría:Software de 1993]]&lt;br /&gt;
[[Categoría:Capas de compatibilidad]]&lt;br /&gt;
[[Categoría:Emuladores para Linux]]&lt;br /&gt;
[[Categoría:Software libre programado en C]]&lt;br /&gt;
[[Categoría:Software de sistema libres]]&lt;br /&gt;
[[Categoría:Software multiplataforma]]&lt;br /&gt;
[[Categoría:Plataforma (informática)]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=WINE&amp;diff=3268337</id>
		<title>WINE</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=WINE&amp;diff=3268337"/>
		<updated>2018-12-11T13:50:43Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: Página creada con «| nombre                      = Wine | logo                        = 45px | captura                     = Archivo:Wine configuration screenshot.…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;| nombre                      = Wine&lt;br /&gt;
| logo                        = [[Archivo:WINE-Logo.svg|45px]]&lt;br /&gt;
| captura                     = [[Archivo:Wine configuration screenshot.png|225px]]&lt;br /&gt;
| pie                         = Pantalla de configuración de Wine&lt;br /&gt;
| autor                       = &lt;br /&gt;
| desarrollador               = [http://winehq.org/site/who Wine team]&lt;br /&gt;
|modelo_desarrollo            = [[software libre]]&lt;br /&gt;
| última_versión              = 3.0.4&lt;br /&gt;
| fecha_última_versión        = {{Fecha de lanzamiento|29|11|2018}}&lt;br /&gt;
| web_última_versión          = https://www.winehq.org/news/&lt;br /&gt;
| última_versión_prueba       = &lt;br /&gt;
| fecha_última_versión_prueba = {{Fecha de lanzamiento|5|1|2018}}&lt;br /&gt;
| web_última_versión_prueba   = https://www.winehq.org/news/&lt;br /&gt;
| lenguaje_programación       = &lt;br /&gt;
| sistema_operativo           = [[GNU/Linux]],[[Android]] otros sistemas compatibles con [[POSIX]]&lt;br /&gt;
| género                      = [[Capa de compatibilidad]]&lt;br /&gt;
| licencia                    = [[GNU Lesser General Public License]]&lt;br /&gt;
| sitio_web                   = http://www.winehq.org&lt;br /&gt;
| idiomas                     = &lt;br /&gt;
| español                     = Sí&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Wine''' ([[acrónimo recursivo]] en inglés para ''Wine Is Not an Emulator'', que significa «Wine no es un emulador») es una [[Capa de compatibilidad|reimplementación]] de la [[interfaz de programación de aplicaciones]] de Win16 y Win32 para [[Sistema operativo|sistemas operativos]] basados en [[Unix]]. Permite la ejecución de programas diseñados para [[MS-DOS]], y las versiones de [[Microsoft Windows]] [[Windows 3.11|3.11]], [[Windows 95|95]], [[Windows 98|98]], [[Windows Me|Me]], [[Windows NT|NT]], [[Windows 2000|2000]], [[Windows XP|XP]], [[Windows Vista|Vista]], [[Windows 7|7]], [[Windows 8|8]] y [[Windows 10|10]].&lt;br /&gt;
&lt;br /&gt;
El nombre ''Wine'' inicialmente fue un acrónimo para '''''WIN'''dows '''E'''mulator''.&amp;lt;ref&amp;gt;[http://www.faqs.org/faqs/windows-emulation/wine-faq WINE FAQ] Antiguo significado del nombre usado incluso hasta 1997&amp;lt;/ref&amp;gt; Este significado fue cambiado posteriormente al acrónimo recursivo actual.&lt;br /&gt;
&lt;br /&gt;
Wine provee de: &lt;br /&gt;
* Un conjunto de herramientas de desarrollo para portar [[código fuente]] de aplicaciones Windows a Unix.&lt;br /&gt;
* Un cargador de programas, el cual permite que muchas aplicaciones para Windows 2.0/3.x/9X/ME/NT/2000/XP/Vista/7 y 8 se ejecuten sin modificarse en varios sistemas operativos [[unix]] como [[Mac OS X]], [[BSD]] y ''[[unix-like]]'' como [[GNU/Linux]], [[Solaris (sistema operativo)|Solaris]] y&lt;br /&gt;
&lt;br /&gt;
== Historia del proyecto ==&lt;br /&gt;
{{referencias|t=20080617|informática}}&lt;br /&gt;
El proyecto Wine comenzó en 1993, época de [[Windows 3.11|la versión 3.11 de Windows]]. El proyecto posiblemente se originó en discusiones en ''comp.os.linux''. Los programadores [[Eric Youngdale]] y [[Bob Amstadt]] crearon su primera versión. La razón por la cual Wine ''no es un emulador'' es que los emuladores tienden a duplicar el entorno completo en el que un programa vive, incluyendo la simulación de una arquitectura de [[microprocesador]] determinada. Wine, por el contrario, implementa lo que podría ser llamado una ''capa de compatibilidad'', la cual provee alternativas a las [[biblioteca (informática)|bibliotecas]] de [[Microsoft Windows]].&lt;br /&gt;
&lt;br /&gt;
A mediados del año 2002, ya se contaba con una aplicación con más de 1 millón de líneas de código fuente escrito en el [[C (lenguaje de programación)|lenguaje C]] y con un grupo de más de 300 programadores. El proyecto tuvo tiempos en los cuales no se avanzó lo suficiente, hasta que en el año 2003, aplicaciones muy extendidas en el entorno Windows como [[Microsoft Office]] e [[Internet Explorer]] fueron posibles de ser utilizadas en entornos [[Unix]] gracias a Wine.&lt;br /&gt;
&lt;br /&gt;
El proyecto presenta grandes retos para los desarrolladores, al menos en parte debido a la incompleta documentación de la [[API de Windows]]. A pesar de que la mayoría de las funciones la API Win32 están correctamente documentadas, existen aún muchas áreas, como formatos de archivos y protocolos, para las cuales no existen especificaciones documentadas por parte de Microsoft.&lt;br /&gt;
&lt;br /&gt;
Hacia comienzos de 2003, Wine podía ejecutar muchos programas populares, como [[Lotus Notes]] y algunas versiones de Microsoft Office, con comportamientos y estabilidad variables. El éxito del funcionamiento de cada aplicación depende del uso de [[Biblioteca de enlace dinámico|bibliotecas dinámicas]] (DLL) de Windows.&lt;br /&gt;
&lt;br /&gt;
La empresa de software [[Corel]] ayudó mucho al proyecto, empleando temporalmente a uno de los principales desarrolladores, [[Alexandre Julliard]], junto con muchos otros programadores secundarios. Esta ayuda fue motivada por el ''porting'' de la [[suite ofimática]] de Corel a [[GNU/Linux]]. Sin embargo, debido a dificultades económicas, el apoyo de Corel cesó.&lt;br /&gt;
&lt;br /&gt;
Otras organizaciones han hecho esfuerzos comerciales para apoyar el proyecto, incluyendo [[CodeWeavers]] y [[Linspire]]. [[CodeWeavers]] ha desarrollado una versión comercial, cerrada y visualmente más atractiva, de Wine y la comercializa bajo el nombre [[CrossOver Office]]; además, colabora con el proyecto, ya sea financiándolo o con parches.&lt;br /&gt;
&lt;br /&gt;
El desarrollo oficial de Wine está orientado hacia la correcta implementación de la API de Windows como un todo y aunque se encuentra un poco atrasado en estas áreas, desde su versión 1.0 de verano de 2008 es capaz de ejecutar con éxito y con pocos o escasos errores una gran variedad de aplicaciones diseñadas para Windows.&lt;br /&gt;
&lt;br /&gt;
Otros proyectos que han incorporado [[código fuente]] de Wine son [[Rewind]], [[ReactOS]] y [[Longene]]. El último proyecto es un módulo para el kernel linux que sustituye al wineserver, acelerando la ejecución de Wine.&lt;br /&gt;
&lt;br /&gt;
== Estado actual de Wine ==&lt;br /&gt;
[[Archivo:History Of WineAppDB.gif|thumb|300px|Animación que muestra el progreso en compatibilidad de aplicaciones de acuerdo a los resultados de las pruebas de Wine AppDB (clic en la imagen para ver la animación).&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Leyenda|#ececec|Funciona sin errores («platino»)}}&lt;br /&gt;
{{Leyenda|#fff600|Funciona sin errores pero requiere configuración adicional («oro»)}}&lt;br /&gt;
{{Leyenda|#c0c0c0|Funciona con errores menores («plata»)}}&lt;br /&gt;
{{Leyenda|#fcba0a|Funciona con errores mayores («bronce»)}}&lt;br /&gt;
{{Leyenda|#999966|Inutilizable («basura»)}}]]&lt;br /&gt;
&lt;br /&gt;
De acuerdo a un estudio realizado en [[Internet]] por DesktopLinux.com&amp;lt;ref&amp;gt;{{cita web|url=http://www.desktoplinux.com/cgi-bin/survey/survey.cgi?view=archive&amp;amp;id=0821200617613|título=2006 Desktop Linux Market survey|urlarchivo=https://web.archive.org/web/20050307001936/http://www.desktoplinux.com/cgi-bin/survey/survey.cgi?view=archive|fechaarchivo=7 de marzo de 2005}}&amp;lt;/ref&amp;gt; en 2006, la aplicación Wine es bastante usada con relación a las demás con una demanda de 33,5% de los encuestados, mientras que un 16,7% utiliza el [[VMware]] y apenas un 7% usa la aplicación [[CrossOver Office|CrossOver]]. En tanto la porción de los encuestados que no utiliza ninguno fue de un 39%.&lt;br /&gt;
&lt;br /&gt;
El 17 de junio de 2008 el proyecto Wine lanzó la versión 1.0,&amp;lt;ref&amp;gt;{{cita web | url = http://www.winehq.org/?announce=1.0 |título= Anuncio de la publicación de la versión 1.0 }}&amp;lt;/ref&amp;gt; la primera versión estable en quince años de desarrollo. Ésta presenta mejoras con relación a las versiones alpha y beta, de las cuales se puede mencionar un mejor soporte de ratón en los juegos, aplicaciones con uso de [[Biblioteca (informática)|bibliotecas]] [[OpenGL]], manejo de nuevos estados en [[Direct3D]] y mejora del sistema de audio, entre mejoras importantes.&lt;br /&gt;
&lt;br /&gt;
El 16 de julio de 2010 el proyecto Wine lanzó la versión estable 1.2,&amp;lt;ref&amp;gt;{{cita web | url = http://www.winehq.org/?announce=1.2 |título= Anuncio de la publicación de la versión 1.2 }}&amp;lt;/ref&amp;gt; presentando más de 23&amp;amp;nbsp;000 cambios en el código fuente, más de 3000 ''[[Error de software|bugs]]'' arreglados y el soporte para aplicaciones de 64 bits.&lt;br /&gt;
&lt;br /&gt;
El 7 de marzo de 2012 el proyecto Wine lanzó la versión estable 1.4,&amp;lt;ref name=&amp;quot;ref_dup_1&amp;quot;&amp;gt;{{cita web | url = http://www.winehq.org/?announce=1.4 |título= Anuncio de la publicación de la versión 1.4 }}&amp;lt;/ref&amp;gt; añadiendo soporte a muchas nuevas aplicaciones como Microsoft Office 2010,&amp;lt;ref name=&amp;quot;ref_dup_1&amp;quot;/&amp;gt; y juegos de última generación como Skyrim&amp;lt;ref&amp;gt;{{cita web | url = http://appdb.winehq.org/objectManager.php?sClass=application&amp;amp;iId=13667 |título= Base de datos de aplicaciones: Skyrim }}&amp;lt;/ref&amp;gt; o Starcraft 2.&amp;lt;ref&amp;gt;{{cita web | url = http://appdb.winehq.org/objectManager.php?sClass=application&amp;amp;iId=11123 |título= Base de datos de aplicaciones: Starcraft II }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El 18 de julio de 2013 el proyecto Wine lanzó la versión estable 1.6,&amp;lt;ref&amp;gt;{{cita web | url = http://www.winehq.org/news/2013071801 |título= Anuncio de la publicación de la versión 1.6 }}&amp;lt;/ref&amp;gt; añadiendo más de 10&amp;amp;nbsp;000 cambios en el código fuente y añadiendo soporte a aplicaciones .Net y Mono.&lt;br /&gt;
&lt;br /&gt;
El 19 de diciembre de 2015 el proyecto Wine lanzó la versión estable 1.8,&amp;lt;ref&amp;gt;{{Cita web|url=https://www.winehq.org/announce/1.8|título=The Wine team is proud to announce that the stable release Wine 1.8|fechaacceso=11 de marzo de 2016|sitioweb=WineHQ}}&amp;lt;/ref&amp;gt; después de 17 meses de desarrollo y añadiendo más de 13 000 cambios en el código fuente.  Los puntos a destacar es la implementación de DirectWrite y Direct2D, y el nuevo controlador de audio pulse.&lt;br /&gt;
&lt;br /&gt;
== Características ==&lt;br /&gt;
[[Archivo:ClamWin on Ubuntu.png|250px|thumb|right|[[Antivirus]] [[ClamWin]] 0.93.1 ejecutado en [[Ubuntu]] mediante Wine.]]&lt;br /&gt;
[[Archivo:Captura_de_pantalla_de_Wine_Internet_Explorer.png|250px|thumb|right|Wine Internet Explorer (formalmente Wine Web Browser) mostrando la portada de [[Wikipedia]].]]&lt;br /&gt;
&lt;br /&gt;
=== Compatibilidad binaria ===&lt;br /&gt;
* Soporte para programas de la familia [[MS-DOS]] y Windows (3.x/9x/NT/2000/XP/2003/Vista/2008/7/8).&lt;br /&gt;
* Soporte para llamadas de funciones de Windows de 64, 32 y 16 bits.&lt;br /&gt;
* Código [[x86]] de 64, 32 y 16 bits.&lt;br /&gt;
* Extensas [[Biblioteca (informática)|bibliotecas]] de [[interrupción|interrupciones]] para programas utilizando llamadas de modo real INTxx.&lt;br /&gt;
* Capacidades avanzadas de ''[[trunking]]''.&lt;br /&gt;
* Posibilidad de añadirle más [[Biblioteca de enlace dinámico|bibliotecas de enlace dinámico]] (DLL), incluso las nativas de Windows, las cuales están ubicadas en la carpeta ''C:\Windows\System32'', y pueden ser instaladas en wine copiando dichas librerías en la carpeta ''~/.wine/drive_c/windows/system32''.&lt;br /&gt;
* Diseño de [[ingeniería inversa]] para mejorar la solución frente a errores.&lt;br /&gt;
* Ejecución sobre otras arquitecturas no Intel bajo emulación, con [[QEMU]] (Darwine era una bifurcación de Wine hecha para Mac OS X PowerPC, pero el proyecto quedó abandonado).&lt;br /&gt;
&lt;br /&gt;
=== Gráficos ===&lt;br /&gt;
* Puede dibujar en entornos gráficos basados en [[X11]], [[SDL]] texto/[[ttydrv]].&lt;br /&gt;
* Pantalla remota para cualquier [[terminal X]].&lt;br /&gt;
* Soporte total de [[GDI]] y parcial GDI32.&lt;br /&gt;
* Soporte de [[DirectX]] para juegos.&lt;br /&gt;
* Puede utilizar [[impresora]]s para sistemas Microsoft Windows de 16 bits de forma nativa.&lt;br /&gt;
* Interfaz interna de [[impresión]] [[PostScript]].&lt;br /&gt;
* Capacidad para metaarchivos.&lt;br /&gt;
* Capacidad de ejecución en una o varias ventanas.&lt;br /&gt;
* Posibilidad de instalar temas visuales de formato ''[[msstyle]]'', los nativos de Windows.&lt;br /&gt;
&lt;br /&gt;
=== Otras características ===&lt;br /&gt;
* Soporte para [[sonido]] y entradas alternativas.&lt;br /&gt;
* Soporte para [[módem]]s o dispositivos por [[puerto serie]].&lt;br /&gt;
* Trabajo en red con Winsock [[TCP/IP]].&lt;br /&gt;
* Soporte para [[escáner]]es [[ASPI]].&lt;br /&gt;
* Soporte para controles avanzados típicos de programas para Microsoft Windows de 32 bits.&lt;br /&gt;
&lt;br /&gt;
=== Wine API ===&lt;br /&gt;
* Diseñado para ser compatible con código para Windows de 32 bits.&lt;br /&gt;
* Programas de muestra&lt;br /&gt;
* Documentación generada automáticamente de las [[Interfaz de programación de aplicaciones|API]]&lt;br /&gt;
* Compilador fuente de 32 bits&lt;br /&gt;
* Capacidad parcial de codificación [[Unicode]]&lt;br /&gt;
* [[Internacionalización y localización|Internacionalizaci]]ón: Wine está disponible en 16 lenguas&lt;br /&gt;
* [[Depurador]] integrado y mensajes de rastreo configurables&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
* [[Anbox]]&lt;br /&gt;
* [[Boot Camp]]&lt;br /&gt;
* [[Cygwin]]&lt;br /&gt;
* [[Wine Doors]]&lt;br /&gt;
* [[PlayOnLinux]]&lt;br /&gt;
* [[Fink]]&lt;br /&gt;
* [[Cedega]]&lt;br /&gt;
* [[DOSBox]]&lt;br /&gt;
* [[Linux Unified Kernel]]&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{Listaref}}&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
* [https://www.winehq.org/lang/en Sitio web oficial de Wine] {{en}}&lt;br /&gt;
* [https://www.winehq.org/lang/es Sitio web oficial de Wine]&lt;br /&gt;
* [http://appdb.winehq.org Programas compatibles] {{en}}&lt;br /&gt;
* {{Freshmeat|wine|Wine}}&lt;br /&gt;
* {{ohloh|wine}}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Acrónimos de informática]]&lt;br /&gt;
[[Categoría:Software para Linux]]&lt;br /&gt;
[[Categoría:Software libre]]&lt;br /&gt;
[[Categoría:Software de 1993]]&lt;br /&gt;
[[Categoría:Capas de compatibilidad]]&lt;br /&gt;
[[Categoría:Emuladores para Linux]]&lt;br /&gt;
[[Categoría:Software libre programado en C]]&lt;br /&gt;
[[Categoría:Software de sistema libres]]&lt;br /&gt;
[[Categoría:Software multiplataforma]]&lt;br /&gt;
[[Categoría:Plataforma (informática)]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Ingenieria_inversa&amp;diff=3268312</id>
		<title>Ingenieria inversa</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Ingenieria_inversa&amp;diff=3268312"/>
		<updated>2018-12-11T13:40:39Z</updated>

		<summary type="html">&lt;p&gt;Adrianrp1988: Página creada con «La '''ingeniería inversa''' es el proceso llevado a cabo con el objetivo de obtener información o un diseño a partir de un producto, con el fin de determinar cuáles son…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La '''ingeniería inversa''' es el proceso llevado a cabo con el objetivo de obtener información o un diseño a partir de un producto, con el fin de determinar cuáles son sus componentes y de qué manera interactúan entre sí y cuál fue el proceso de fabricación.&lt;br /&gt;
&lt;br /&gt;
Actualmente (principios del siglo XXI), los productos más comúnmente sometidos a ingeniería inversa son los [[software|programas de computadoras]] y los [[componente electrónico|componentes electrónicos]], pero realmente cualquier producto puede ser objeto de un análisis de Ingeniería Inversa.&lt;br /&gt;
&lt;br /&gt;
El método se denomina así 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 a partir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de [[software libre]] ampliamente conocidos.&lt;br /&gt;
&lt;br /&gt;
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 relacionados 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 [[Device driver|drivers]] para la lectura-escritura sobre el mismo (principalmente para sistemas basados en [[GNU/Linux]]).&lt;br /&gt;
&lt;br /&gt;
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 podamos llegar a entender, modificar y mejorar dicho modo de funcionamiento. &lt;br /&gt;
&lt;br /&gt;
Pero este término no solo se aplica al software, sino que también se considera ingeniería inversa el estudio de todo tipo de elementos (por ejemplo, equipos electrónicos, microcontroladores, u objeto fabril de cualquier clase). Diríamos, más bien, que la ingeniería inversa antecede al nacimiento del software, tratándose de una posibilidad a disposición de las empresas para la producción de bienes mediante copiado&amp;lt;ref&amp;gt;La Dirección Estratégica de la Empresa. Teoría y aplicaciones. José Emilio Navas / Luis Ángel Guerras. Ed. Civitas. 3ª ed.&amp;lt;/ref&amp;gt; desde el mismo surgimiento de la ingeniería.&lt;br /&gt;
&lt;br /&gt;
En el caso concreto del [[software]], se conoce por ingeniería inversa 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.&lt;br /&gt;
&lt;br /&gt;
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 [[Observación|análisis]].&lt;br /&gt;
&lt;br /&gt;
La siguiente figura muestra los procesos que sigue la ingeniería directa, si seguimos ese camino hacia &amp;quot;atrás&amp;quot; (o de manera inversa), hacemos ingeniería inversa, si continuamos con el camino y planteamos cambios (o mejoras), por la derecha, ese camino nos lleva a una reingeniería, si no alteramos el contenido de los modelos obtenidos durante los procesos de la ingeniería inversa y seguimos el camino de la izquierda, eso se llama desarrollar una copia.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ProyectsEng.pdf|miniaturadeimagen|Procesos que siguen la ingeniería directa, reingenieria inversa y copia formal]]&lt;br /&gt;
&lt;br /&gt;
== Debate Apple - Samsung ==&lt;br /&gt;
Las empresas [[Apple]] y [[Samsung]] han tenido un debate durante los últimos años en el que Apple ha acusado a Samsung de copiar con ingeniería inversa tanto el [[iPhone]] como el [[iPad]]. Apple denunció a su rival surcoreano Samsung Electronics por copiar el aspecto, el diseño de producto y la interfaz de sus dispositivos iPhone y iPad, lo que supone según la compañía una infracción de las patentes y marcas registradas por Apple. La acusación se presentó el [[15 de abril]] del [[2013]] en los tribunales del distrito norte de California ante lo que Apple considera una violación de su [[propiedad intelectual]]. &amp;quot;Esta clase de copia descarada está mal&amp;quot;, indicó en un comunicado la portavoz Kristin Huguet. Apple considera que Samsung empleó los avances presentados por Apple en sus teléfonos inteligentes 'Galaxy S 4G', 'Epic 4G' y 'Nexus S', así como en su tableta 'Galaxy Tab', una de las mayores competidoras del iPad.&lt;br /&gt;
&lt;br /&gt;
En el documento presentado por Apple ante la Corte, la empresa de Cupertino asegura que &amp;quot;en lugar de innovar y desarrollar su propia tecnología y un estilo único de Samsung para sus teléfonos inteligentes y tabletas, Samsung eligió copiar la tecnología de Apple, la interfaz y el estilo innovador&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Este juicio complicará aún más las relaciones entre ambas compañías, rivales en el sector de las comunicaciones pero con intereses comunes, ya que Samsung fabrica los [[microchip]]s que Apple emplea en sus productos&amp;lt;ref&amp;gt;{{Cita web|url=https://www.elmundo.es/elmundo/2011/04/19/navegante/1303200265.html|título=Apple demanda a Samsung por copiar el iPhone y el iPad {{!}} Navegante {{!}} elmundo.es|fechaacceso=5 de noviembre de 2018|apellido=Internet|nombre=Unidad Editorial|sitioweb=www.elmundo.es}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Ventajas de la Ingeniería inversa ==&lt;br /&gt;
La aplicación de ingeniería inversa nunca cambia la funcionalidad del producto objeto de la aplicación sino que permite obtener productos que indican cómo se ha construido el mismo. Su realización permite obtener los siguientes beneficios:&lt;br /&gt;
&lt;br /&gt;
• Reducir la complejidad del sistema: al intentar comprender el sistema se facilita su mantenimiento y la complejidad existente disminuye.&lt;br /&gt;
&lt;br /&gt;
• Generar diferentes alternativas: del punto de partida del proceso, principalmente código fuente, se generan representaciones gráficas lo que facilita su comprensión.&lt;br /&gt;
&lt;br /&gt;
• Recuperar y/o actualizar la información perdida (cambios que no se documentaron en su momento): en la evolución del sistema se realizan cambios que no se suele actualizar en las representaciones de nivel de abstracción más alto, para lo cual se utiliza la recuperación de diseño.&lt;br /&gt;
&lt;br /&gt;
• Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados, esta serie de anomalías puede ser detectados por la ingeniería inversa.&lt;br /&gt;
&lt;br /&gt;
• Facilitar la reutilización: por medio de la ingeniería inversa se pueden detectar componentes de posible reutilización de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los riesgos de mantenimiento.&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
{{listaref}}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ingeniería]]&lt;/div&gt;</summary>
		<author><name>Adrianrp1988</name></author>
		
	</entry>
</feed>