elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  ¿Como crear mi propio desensamblador en C++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como crear mi propio desensamblador en C++?  (Leído 16,780 veces)
ApOkAlizE

Desconectado Desconectado

Mensajes: 150


¿sabes lo que vales? ¡consigue lo que te mereces!


Ver Perfil
¿Como crear mi propio desensamblador en C++?
« en: 11 Diciembre 2011, 18:22 pm »

Pues me gustaria a ver si teneis por ahí algun tutorial de como crear nuestros propios desensambladores aunque entiendo que crear un desensamblador debe ser una tarea difícil.
De paso queria preguntar, si por ejemplo si tu creas un programa en C++ y creas un sistema de cifrado, o sea que hay un algoritmo... si al desensamblar se puede ver el algoritmo, lo pregunto porque por ejemplo entonces si se pudieraa ver no serviria de nada que por ejemplo un programa, por ejemplo un cliente de chat encriptara las conversaciones, ya que luego desensamblando el .exe podriamos ver como se cifra todo... ¿alguien sabe si se podría ver?
Muchas gracias de antemano.
En línea

Los virus informaticos son como las personas, hacen lo posible para destruir y hacen lo impossible para no ser destruidos... - ApOkAlizE
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #1 en: 12 Diciembre 2011, 16:51 pm »

Pues me gustaria a ver si teneis por ahí algun tutorial de como crear nuestros propios desensambladores aunque entiendo que crear un desensamblador debe ser una tarea difícil.

Si, es difícil. Te recomiendo usar uno ya existente. En SourceForge encontraras algunos...

De paso queria preguntar, si por ejemplo si tu creas un programa en C++ y creas un sistema de cifrado, o sea que hay un algoritmo... si al desensamblar se puede ver el algoritmo

Utilizando Ingeniería Inversa, se analiza el programa (en el caso de C++, instrucciones ASM) a fin de obtener el algoritmo usado.

Por lo que la respuesta es si, si se puede obtener el algoritmo.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

ukol

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #2 en: 12 Diciembre 2011, 20:44 pm »

Yo no diría que es difícil hacer un desemsamblador, aunque claro, quién soy yo para decirlo cuando no he hecho ninguno y ya lo intenté varias veces. Yo diría que no es una tarea difícil pero sí pesada. Aunque la verdad, es lo que dice MCKSys, ya hay muchos hechos y de código abierto. Uno muy asequible parece ser el del Ollydbg, la única parte que tiene liberada es precisamente el desensamblador.
Si aún así te apetece hacerlo hay un tutorial bastante chulo y conocido: http://www.spiralspace.com/Depot/Projects/Disassembler/

Respecto a lo segundo, sí que sirve cifrar los mensajes, los algoritmos de cifrado son difícilmente inversibles, que no reversibles, creo que lo he dicho bien, de nada te sirve tenerlos si no conoces la clave. Sino prueba a adivinar cuál es la palabra que con md5hash da esto
Código:
4d186321c1a7f0f354b297e8914ab240
.El algoritmo es muy conocido pero el de calcular la inversa no existe.
En línea

karmany
Moderador
***
Desconectado Desconectado

Mensajes: 1.615


Sueñas que sueñas


Ver Perfil WWW
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #3 en: 12 Diciembre 2011, 23:38 pm »

También puedes usar potentes librerías como esta pedazo de librería en C que se puede usar bajo licencia LGPL:
http://www.beaengine.org/
En línea

ApOkAlizE

Desconectado Desconectado

Mensajes: 150


¿sabes lo que vales? ¡consigue lo que te mereces!


Ver Perfil
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #4 en: 13 Diciembre 2011, 15:10 pm »

Si, es difícil. Te recomiendo usar uno ya existente. En SourceForge encontraras algunos...

Utilizando Ingeniería Inversa, se analiza el programa (en el caso de C++, instrucciones ASM) a fin de obtener el algoritmo usado.

Por lo que la respuesta es si, si se puede obtener el algoritmo.

Saludos!

pero si desensamblandolo se puede obtener el algoritmo ¿como se hace por ejemplo para que un sistema de cifrado no se pueda ver? por ejemplo los registros cifrados por el propio sistema operativo o librerias que encriptan para un programa tipo chat ¿como es que dicen que no se puede o es muy difícil descifrar porque si solo se trata de desensamblar...?
En línea

Los virus informaticos son como las personas, hacen lo posible para destruir y hacen lo impossible para no ser destruidos... - ApOkAlizE
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #5 en: 13 Diciembre 2011, 15:25 pm »

Estas confundiendo cosas.
No es lo mismo un archivo o un mensaje cifrado, que una ejecutable cifrada.

Una ejecutable que fue cifrada, forzosamente debe contener el algoritmo del decifrado para que le procesador la pueda ejecutar. Tarde o temprano termina siendo decifrada y ejecutada. Es decir, la ejecutable debe contener la llave. Si esta cifrada para que la use una sola persona, con una sola llave posible, entonces hay que saber cual es la clave. Si no se sabe, fuerza bruta y lleva tiempo.

En el caso de un chat, parte del cifrado puede estar ocurriendo en el servidor, donde no tienes acceso.
Los algoritmos md5, sha, aes son de conocimiento publico. El tema es que aun sabiendo como es el algoritmo, sin tener la llave correcta puede llevar dias/meses/años de fuerza bruta.

Saludos.
En línea

ukol

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #6 en: 13 Diciembre 2011, 15:46 pm »

También puedes usar potentes librerías como esta pedazo de librería en C que se puede usar bajo licencia LGPL:
http://www.beaengine.org/
karmany ¿has usado BeaEngine? tengo la curiosidad si se puede saber, ¿para qué? por cierto, me fijé que no trae ensamblador, que curioso, ¿no?
En línea

karmany
Moderador
***
Desconectado Desconectado

Mensajes: 1.615


Sueñas que sueñas


Ver Perfil WWW
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #7 en: 13 Diciembre 2011, 17:34 pm »

No he programado con esa librería, sólo la he usado como plugin en Olly y en alguna herramienta que hay de prueba. Esa página tiene muchísima información de cómo usar la librería. Como curiosidad, recuerdo que el plugin en Olly ralentizaba el desensamblado (tal vez alguna configuración) pero esto era hace tiempo, ahora no sé cómo será.

Yo lo he comentado como otra propuesta más, porque como tú dices se puede descargar el código  del desensamblado que usa OllyDBG.
En línea

ApOkAlizE

Desconectado Desconectado

Mensajes: 150


¿sabes lo que vales? ¡consigue lo que te mereces!


Ver Perfil
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #8 en: 14 Diciembre 2011, 22:56 pm »

Enko con un chat no me refiero a que haya un servidor por medio, sino directamente de PC a PC sin intermedios, por ejemplo imaginate que hablamos de tu ordenador al mio entonces el programa de chat debe tener el algoritmo en su codigo tanto para cifrar como descifrar lo que tu me envias a mi, por tanto, si alguien lo desensamblara podria leer todo lo que nos estamos escribiendo ¿me equivoco?
En línea

Los virus informaticos son como las personas, hacen lo posible para destruir y hacen lo impossible para no ser destruidos... - ApOkAlizE
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: ¿Como crear mi propio desensamblador en C++?
« Respuesta #9 en: 15 Diciembre 2011, 20:45 pm »

El saber el algoritmo de codificacion de un mensaje, no implica el poder decodificarlo.

Por ejemplo, si usas Blowfish para cifrar y la clave es lo suficientemente larga, sera MUY complicado (casi imposible) para el atacante poder descifrar el codigo. AUN sabiendo el algoritmo usado...

Para mayor referencia, mira aqui: http://es.wikipedia.org/wiki/Encriptacion

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como crear tu propio linux « 1 2 »
GNU/Linux
defaywor 16 13,132 Último mensaje 4 Enero 2011, 16:27 pm
por gryphes
Aprender a crear mi propio Antivirus: como se hace? es posible? es difícil? « 1 2 »
Seguridad
Robby95 14 30,272 Último mensaje 24 Octubre 2012, 22:36 pm
por Puntoinfinito
como crear mi propio runpe guias
Análisis y Diseño de Malware
zerointhewill 9 5,432 Último mensaje 22 Enero 2016, 03:18 am
por Arnaldo Otegi
Cómo crear tu propio acortador de URLs
Noticias
wolfbcn 0 1,029 Último mensaje 21 Marzo 2016, 13:46 pm
por wolfbcn
Como crear mi propio Look and Feel
Java
ycalonso 0 1,664 Último mensaje 29 Marzo 2017, 20:32 pm
por ycalonso
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines