Ingenieria inversa... alternativa para llegar al conocimient

Un lugar donde los héroes se reúnen a discutir, reír y beber!

Ingenieria inversa... alternativa para llegar al conocimient

por Gil-lauredin el Vie May 28, 2010 3:24 am

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

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.org con los formatos propios de Microsoft Office, o se hace para entender la estructura del sistema de archivos NTFS y así poder desarrollar drivers para la lectura-escritura del mismo (principalmente para sistemas basados en 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 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: https://es.wikipedia.org/wiki/Depurador

Editor Hexadecimal: https://es.wikipedia.org/wiki/Editor_hexadecimal

Compilador: https://es.wikipedia.org/wiki/Compilador

Herramientas:

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

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

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

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 https://www.megaupload.com/es/?d=04RTJU2C o https://www.mediafire.com/?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:https://www.sysersoft.com/

NLKD: Depurador para Kernel
https://forge.novell.com/modules/xfmod/project/?nlkd

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


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


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: https://mh-nexus.de/en/hxd/

Compiladores:

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

LuxAsm: Herramienta "ensambladora" bajo entorno GNU/Lnux
Enlace: https://luxasm.sourceforge.net/

Manuales:

Sobre diversos aspectos del SoftICE
https://bibliotecainformatica.iespana.es ... n_ice1.zip

Estudio de las protecciones del Software
https://www.karpoff.hpg.ig.com.br/

Reverse Engineering (en Ingles)
https://www.publispain.com/supertutorial ... evengi.htm

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


Lectura recomendada:


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

Configuración GDB para ingeniería inversa
https://diariolinux.com/2008/05/20/confi ... a-inversa/

Software Security and Reverse Engineering
https://www.infosecwriters.com/text_reso ... eering.pdf

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


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

Manual de Ingenieria Inversa
https://www.conocimientosweb.net/dcmt/ficha960.html

Otra Fuentes consultadas:

Ingeniería inversa
https://es.wikipedia.org/wiki/Ingeniería_inversa

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

Ingeniería Inversa de Procesos
https://cnx.org/


;-P a la masa de programadores y hackers taberneros, seguro que les interesa este metodo para aprender mas por cuenta propia.

disfrutenlo, este podria ser mi ultimo mensage... o podria ser borrado el mismo.
---------------------------------------------------------------------------------------------------------
Última edición por 4rgusit0 el Sab Feb 32, 1118, 0:00 am, editado 4,3 veces en total
Razón: El comentario ha sido editado por que me dio la gana
Avatar de Usuario
Gil-lauredin

 
Mensajes: 1747
Registrado: Dom Ene 22, 2006 6:42 pm
Ubicación: detras de ti, cultivando Amanita Muscaria

pongo algo aca?

por IS-MY-PIG el Vie May 28, 2010 3:48 am

habia leido por ahi que Microsoft vendio informacion valiosa a los del proyecto Samba a algo de 10000 dolares [una propina para Microsoft], algo que fue tan comentado como la "alianza" entre Microsoft y Novell

a ver si lo entendi bien, ingenieria inversa es publicar el codigo de un programa a la comunidad para buscar mejoras de la comunidad?

es como una empresa de hardware como Nvidia que tiene años desarrollando drivers excelentes para sus tarjetas graficas, es algo que Nouveau con el poco tiempo que tiene no va a poder igualarse a los drivers originales hechos para Windows
http://meegoota.blogspot.com/ Tecnología, Software libre... y más allá
IS-MY-PIG

 
Mensajes: 12965
Registrado: Sab Ago 02, 2008 2:11 am
Ubicación: en febrero, la nariz suele crecer

Re: Ingenieria inversa... alternativa para llegar al conocimient

por -Nasgul- el Sab May 29, 2010 4:43 pm

La ingenieria inversa la he utilizado pero apra aplicaciones mias, es decir, primero hacia el programa o sistema y despues lo documentaba y lo depuraba, desde el código hasta las bases de datos.

Me interesa lo que mencionaste sobre "desensamblar" el codigo. He trabajado con ensamblador en Unix y he tenido a veces, k ver el ensamblador de alguas librerias de C (stdio) para fines didacticos.

Si me pidieran hacer ingenieria inversa con el MSN seguro me tardaria un 6 meses/año y lo mas que podria hacer seria una mundana aplicacion en java de mensajeria instantanea xDD (ya lo hemos hecho, unos compañeros y yo ya pudimos hacer un chat de 1 a 1, pero todo en modo consola xDD).

Jortecus, no siempre hacer ingenieria inversa e spara el bien de la comunidad, es por que ahi afuera hay un software del cual te interesa rescatar algo, ya sea para tu uso personal (para violar el programa), el de la empresa o algo "altruista".
Fer manda entonces exigele ::tongue::
Imagen
Avatar de Usuario
-Nasgul-

 
Mensajes: 17860
Registrado: Lun Ene 02, 2006 5:55 am
Ubicación: the game

Re: Ingenieria inversa... alternativa para llegar al conocimient

por Pantrax el Sab May 29, 2010 5:01 pm

Un programa es lo unico que jortecus puede violar. xD
Imagen

Imagen
Imagen
Avatar de Usuario
Pantrax

 
Mensajes: 2286
Registrado: Sab Ene 01, 2005 1:00 am

pongo algo aca?

por IS-MY-PIG el Sab May 29, 2010 10:23 pm

y tambien muchos otros entes... creo que solo una vez
http://meegoota.blogspot.com/ Tecnología, Software libre... y más allá
IS-MY-PIG

 
Mensajes: 12965
Registrado: Sab Ago 02, 2008 2:11 am
Ubicación: en febrero, la nariz suele crecer

Re: Ingenieria inversa... alternativa para llegar al conocimient

por IS-MY-LOVE el Dom May 30, 2010 1:06 am

(Se ve a Jortecus introduciendo su PenDrive en el puerto USB trasero de Nasgul)

Jortecus: :twisted:
Nasgul: ::smile::
Jortecus: :shock: putos virus!!!
#desbanen_a_Cristel

#desmonearon_a_ban
#me_encontraron
#esto_es_un_hashtag
Avatar de Usuario
IS-MY-LOVE

 
Mensajes: 13616
Registrado: Dom Mar 25, 2007 11:28 am

pongo algo aca?

por IS-MY-PIG el Dom May 30, 2010 4:36 am

meterla con un liveCD de linux, eliminar todo lo raro y listo :D
http://meegoota.blogspot.com/ Tecnología, Software libre... y más allá
IS-MY-PIG

 
Mensajes: 12965
Registrado: Sab Ago 02, 2008 2:11 am
Ubicación: en febrero, la nariz suele crecer

Re: Ingenieria inversa... alternativa para llegar al conocimient

por Rasetsu el Mar Jun 01, 2010 3:49 am

O sea que ingenieria inversa es como hacemos aqui en mexico cuando dicen que no se puede sacar chip para el Xbox 360, luego alguien lo abre lo investiga y vuala! cds piratas en tu consola ..

para software pues aun me falta mucho por conocer .. y si me interesa todos esos links que pusiste, me parece genial. leere unos hoy y poco a poco investigare ..

una vez use un editor hexadecimal xD pero solo para hacer trucos en un juego . ::laughing:: !! kit medicos infinitos, balas infinitas etc! ..
KENARON 9 Rank 970 DIP
FANTASY 10 Rank 455 DIP
GARDIS 11 Rank 251 RHG
NUMIAN 11 Rank 308
GARDIS 16 Rank 144

Estoy harto... necesito un cambio
Avatar de Usuario
Rasetsu

 
Mensajes: 872
Registrado: Sab Jul 21, 2007 10:27 am

Re: Ingenieria inversa... alternativa para llegar al conocimient

por -Nasgul- el Mié Jun 02, 2010 4:34 am

hexadecimal es bastante facil y lo puedes implementar usando tus 2 manos
Fer manda entonces exigele ::tongue::
Imagen
Avatar de Usuario
-Nasgul-

 
Mensajes: 17860
Registrado: Lun Ene 02, 2006 5:55 am
Ubicación: the game

Re: Ingenieria inversa... alternativa para llegar al conocimient

por Gil-lauredin el Mié Jun 02, 2010 12:40 pm

el editor exadecimal yo siempre lo uso, juego nuevo¿? lo primero tras probar la primera pantalla es intentar sacarle trucos... en el majesty 2 (juego que colgue el mismo dia que cree este topic) hice que los heroes subieran niveles de 15 en 15 solo al destruir edificios rivales... eso si...no preguntes como...

mmm en juego online que no puedo decir su nombre recuerdo que se podia tocar la información y doparte gracias a un editor hexadecimal... era una locura.
---------------------------------------------------------------------------------------------------------
Última edición por 4rgusit0 el Sab Feb 32, 1118, 0:00 am, editado 4,3 veces en total
Razón: El comentario ha sido editado por que me dio la gana
Avatar de Usuario
Gil-lauredin

 
Mensajes: 1747
Registrado: Dom Ene 22, 2006 6:42 pm
Ubicación: detras de ti, cultivando Amanita Muscaria

Re: Ingenieria inversa... alternativa para llegar al conocimient

por -Nasgul- el Sab Jun 05, 2010 3:13 am

FFFF-FFFF

Oye gil, sabes Java? es k tengo problemas con java.swing :?
Fer manda entonces exigele ::tongue::
Imagen
Avatar de Usuario
-Nasgul-

 
Mensajes: 17860
Registrado: Lun Ene 02, 2006 5:55 am
Ubicación: the game

Re: Ingenieria inversa... alternativa para llegar al conocimient

por Gil-lauredin el Dom Jun 06, 2010 5:56 pm

no.


emmm


omm

esto...

...ee

ya llegue a las 10 palabras :oops:
---------------------------------------------------------------------------------------------------------
Última edición por 4rgusit0 el Sab Feb 32, 1118, 0:00 am, editado 4,3 veces en total
Razón: El comentario ha sido editado por que me dio la gana
Avatar de Usuario
Gil-lauredin

 
Mensajes: 1747
Registrado: Dom Ene 22, 2006 6:42 pm
Ubicación: detras de ti, cultivando Amanita Muscaria

Re: Ingenieria inversa... alternativa para llegar al conocimient

por -Nasgul- el Dom Jun 06, 2010 6:39 pm

Gil-lauredin escribió:no.


emmm


omm

esto...

...ee

ya llegue a las 10 palabras :oops:

que?
Fer manda entonces exigele ::tongue::
Imagen
Avatar de Usuario
-Nasgul-

 
Mensajes: 17860
Registrado: Lun Ene 02, 2006 5:55 am
Ubicación: the game

Re: Ingenieria inversa... alternativa para llegar al conocimient

por Gil-lauredin el Dom Jun 06, 2010 7:50 pm

que no.

lo demas es relleno.
---------------------------------------------------------------------------------------------------------
Última edición por 4rgusit0 el Sab Feb 32, 1118, 0:00 am, editado 4,3 veces en total
Razón: El comentario ha sido editado por que me dio la gana
Avatar de Usuario
Gil-lauredin

 
Mensajes: 1747
Registrado: Dom Ene 22, 2006 6:42 pm
Ubicación: detras de ti, cultivando Amanita Muscaria

pongo algo aca?

por IS-MY-PIG el Dom Jun 06, 2010 8:11 pm

ponlo como firma XD

yo quice poner algo pero no se x q no salio, tenia que ver con los romanos cuando revisaban cuidadosamente los alimentos capturados pero simplemente no cargo
http://meegoota.blogspot.com/ Tecnología, Software libre... y más allá
IS-MY-PIG

 
Mensajes: 12965
Registrado: Sab Ago 02, 2008 2:11 am
Ubicación: en febrero, la nariz suele crecer


Volver a Taberna del Dragón

cron