El post que buscas se encuentra eliminado, pero este también te puede interesar

ingenieria inversa.que sabemos? Resubido

por politicas de taringa, en este post.com fue reemplazado por .conn - .org fue reemplazado por .orj y punto net por .ned

ingenieria inversa.que sabemos? Resubido

Si escribimos en Google.conn 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 de productos 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 la aplicació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 estandar


ingenieria

La 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, pudiendo tomarse 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 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 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ía inversa, dado que permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows. El proyecto Samba tuvo que investigar información confidencial (no liberada al público en general por Microsoft) sobre los aspectos técnicos relacionado con el sistema de archivos Windows. Lo mismo realiza el proyecto WINE para el conjunto de API de Windows y OpenOffice.orj con los formatos propios de Microsoft Office, o se hace para entender la estructura del sistema de archivos NTFS y así poder desarrollar drivers para la lectura-escritura del mismo (principalmente para sistemas basados en GNULinux).

Que

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 en Assembler

La 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 del software debes tener en cuenta estos conceptos básicos:

Depurador/Debugger: http://es.wikipedia.orj/wiki/Depurador

Editor Hexadecimal: http://es.wikipedia.orj/wiki/Editor_hexadecimal

Compilador: http://es.wikipedia.orj/wiki/Compilador

Herramientas:

inversa

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.conn/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 forma gratuita.
Enlace: http://www.ollydbg.de/

W32Dasm: es un desensamblador de 16/32 bits para Windows.
Enlace:http://www.plunder.conn/W32dASM-8-94-download-528.htm

Rasta Ring 0 Debugger: Alternativa Libre similar al Softice
Enlace: http://rr0d.droids-corp.orj/

SoftIce: La Leyenda (actualmente desactualzado) Es capaz de desensamblar un programa mientras éste se encuentra en ejecución, deteniendo al mismo en la instrucción exacta que se está ejecutando. Se puede tracear el programa a depurar de dos formas distintas: paso a paso siguiendo cada instrucción según el curso normal del programa o bien seguir el código línea a línea sin tener en cuenta las instrucciones de saltos.
Enlace de descarga http://www.megaupload.conn/es/?d=04RTJU2C o http://www.mediafire.conn/?bmmvl11mj2t

Syser: Este depurador indica que es el sucesor de SoftICE. Se ejecuta en las versiones 32-bit de Windows Vista/XP/2003/2000, y soporta SMP, HyperThreading y CPUs multinúcleo.
Enlace:http://www.sysersoft.conn/

NLKD: Depurador para Kernel
http://forge.novell.conn/modules/xfmod/project/?nlkd

IDA: Uno de los mejores
Enlace:: http://www.hex-rays.conn/idapro/idadownfreeware.htm

UltraEdit: Uno de los mejores editores hexadecimales (shareware)
Enlace:: http://www.ultraedit.conn/

HxD: Potente editor hexadecimal, capaz no sólo de abrir ficheros, sino también de leer y escribir datos en sectores del disco duro y procesos en memoria. Compatible con varios estándares, HxD puede copiar datos en texto puro, HTML o como variable para lenguajes de programación. HxD es una herramienta potente, útil en determinados escenarios en los que la lectura de datos en bruto sea el último recurso.
Enlace: http://mh-nexus.de/en/hxd/

Compiladores:

sabemos

The Go tools for Windows + Assembler: Herramienta para "ensamblar" código genera un ejecutable.
Enlace: http://www.jorgon.freeserve.co.uk/

LuxAsm: Herramienta "ensambladora" bajo entorno GNU/Lnux
Enlace: http://luxasm.sourceforge.ned/

Manuales:

Sobre diversos aspectos del SoftICE

http://bibliotecainformatica.iespana.es/programacion/softice/man_ice1.zip

Estudio de las protecciones del Software
http://www.karpoff.hpg.ig.conn.br/

Reverse Engineering (en Ingles)
http://www.publispain.conn/supertutoriales/underground/hacking/cursos/2/revengi.htm

Introducción al Cracking con OLLYDBG desde 0
http://ricardonarvaja.info/..../TUP/

Lectura recomendada:

Ingeniería inversa y los números mágicos
http://erwin.ried.cl/?modo=visor&elemento=239

Configuración GDB para ingeniería inversa
http://diariolinux.conn/2008/05/20/configuracion-gdb-para-ingenieria-inversa/

Software Security and Reverse Engineering

http://www.infosecwriters.conn/text_resources/pdf/software_security_and_reverse_engineering.pdf

Ingeniería inversa de base de datos
http://www.latiumsoftware.conn/es/articles/00020.php

Quieres iniciarte en Ingenieria Inversa?
http://foro.el-hacker.conn/index.php/topic,123800.0.html

Manual de Ingenieria Inversa
http://www.conocimientosweb.ned/dcmt/ficha960.html

Otra Fuentes consultadas:

Ingeniería inversa
http://es.wikipedia.orj/wiki/Ingeniería_inversa

Ingeniería inversa de procesos que corren en Windows
http://www.hackhispano.conn/foro/showthread.php?t=31389

Ingeniería Inversa de Procesos
http://cnx.orj/

ESO ES TODO!!!

jasler

5 comentarios - ingenieria inversa.que sabemos? Resubido

Luciano_84_138 -3
Bueno hombre, pero esto explica cómo hacer ingeniería inversa de software, deberías aclararlo al principio del post.
Piononin +2
Mmm interesante, me diste ganas de buscar un poco mas. +10
MAJANATOR +1
+10 buena info, es interesante el concepto de ingeniería inversa en especial para entender aplicaciones que son muy complejas, en otras palabras ver la estructura para entender al artista