Sistemas operativos
|
Si escribimos en Google.com las palabras Ingeniería Inversa, nos devuelve 328,000 páginas en español y inglés. Este texto no pretende ser un manual de como hacer Ingeniería Inversa solo es un bosquejo para dar una idea general de lo que es.Hoy día la ingeniería inversa es válida para la re-utilización de código deproductos existentes y a veces obsoletos y "crear" un mejor producto, algunas veces liberan el código para su utilización. Usualmente los verdaderos "hackers" emplean este método para saber como trabaja determinado producto y descubrir si posee alguna vulnerabilidad o buscar la forma de crear una versión libre de ese producto.La idea general de emplear la Ingeniería Inversa es:- Conocer a fondo laaplicación y generar un mejor código.
- Migrar la aplicación a un nuevo sistema operativo.
- Hacer o completar la documentación.
- Verificar que el código en estudio cumple las especificaciones de diseño estandarLa información extraída de la lectura del código fuente son las especificaciones de diseño: modelos de flujo de control, diagramas de diseño, documentos de especificación de diseño, pudiendotomarse estas especificaciones como nuevo punto de partida para aplicar ingeniería inversa y obtener información a mayor nivel de abstracción.Según la Wikipedia: "El objetivo de la ingeniería inversa es obtener información a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado.En general si el producto u otro material quefue 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 genericos creados apartir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de Software libre ampliamente conocidos.El programa Samba es un claro ejemplo de ingenieríainversa, dado que permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows. El proyecto Samba tuvo que investigar información confidencial (no liberada al público en general por Microsoft) sobre los aspectos técnicos relacionado con el sistema de archivos Windows. Lo mismo realiza el proyecto WINE para el conjunto de API de Windows y OpenOffice.org con los formatospropios de Microsoft Office, o se hace para entender la estructura del sistema de archivos NTFS y así poder desarrollar drivers para la lectura-escritura del mismo (principalmente para sistemas basados en GNULinux).La ingeniería inversa es un método de resolución. Aplicar ingeniería inversa a algo supone profundizar en el estudio de su funcionamiento, hasta el punto de que podemos llegar a entender,modificar, y mejorar dicho modo de funcionamiento."Ahora bien, para realizar Ingeniería Inversa hay que tener cierto nivel de entendimiento de programación especificamente enAssemblerLa mayoría de las personas asocian Ingeniería Inversa con Cracking, y aún cuando se podría decir que van agarradas de la mano son áreas específicamente diferentes.Antes de entrar al mundo de la Ingeniería inversa delsoftware debes tener en cuenta estos conceptos básicos:Depurador/Debugger: http://es.wikipedia.org/wiki/DepuradorEditor Hexadecimal: http://es.wikipedia.org/wiki/Editor_hexadecimalCompilador: http://es.wikipedia.org/wiki/CompiladorHerramientas:oSpy: Es una herramienta permite usar la ingeniería inversa en la plataforma Microsoft Windows. Trabajando directamente con los procesos como el estado de los(protocolos de sincronización, mensajería instantánea, etc). Esta herramienta intercepta las prncipales API utilizada por MSN Messenger, Google Talk, etc para cifrar / descifrar los datos HTTPS.
Enlace: http://code.google.com/p/ospy/OllyDbg: Es un depurador de 32 bits a nivel de ensamblador para analizar software Microsoft Windows. OllyDbg es un shareware, pero se puede descargar y utilizar de...
Regístrate para leer el documento completo.