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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Ingenieria inversa en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ingenieria inversa en c++  (Leído 5,187 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Ingenieria inversa en c++
« en: 9 Junio 2015, 18:03 pm »

Hola no se si me podrán decir algun programa que decompile un ejecutable en cpp. Como por ejemplo hace el .NET reflector para C#. Es decir obtener del ejecutable el código directamente a ser posible. Saludos
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ingenieria inversa en c++
« Respuesta #1 en: 9 Junio 2015, 18:06 pm »

no se puede...

en el caso de .net sucede que el codigo queda casi entero para ser interpretado por la "maquina virtual" de .net (dotnet framework) como si de un script se tratara, en el caso de c++ se pasa el codigo directo a ensamblador y debido a la forma que el ensamblador trabaja (hace un trabajo "inteligente" analizando el código y tratando de  optimizarlo lo más posible) es imposible comprender desde el resultado, cual era el código original :P

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Ingenieria inversa en c++
« Respuesta #2 en: 9 Junio 2015, 19:24 pm »

Entiendo, gracias por la respuesta. Aun asi el .NET reflector creo que leí que trabajaba tambien para cpp, pero lo hara de manera menos eficiente seguramente, no lo he probado ni lo tengo es para saber antes que nada. Probe el ollydebugger y si esa es la unica manera  o el unico estilo de programa para hacer ingeniería inversa estoy jodido.

He de decir que hace tiempo en clase (años) haciamos ingenieria inversa de c a ensamblador y viceversa, pero era un asm basico y era bastante sufrido, no quiero imaginar hacer ingenieria inversa a un programa como intercepter-ng (digo este porque es curioso debido a los atauqes de red que presenta) ademas corregidme si me equivoco, ¿para usar .NET reflector o dexompilar con ollydebugger el programa es necesario que no este protegido o cifrado no? Sino el reflector no funcionaria y el ollydebugger nos saldria mucho mas complicado.

Lyego seria necesario romper el cifrado que protege al archivo antes que usar el.NET reflector, sino no apareceria nada si no me equivoco, ¿como lo hara entonces la gente?

Saludis.
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
kub0x
Enlightenment Seeker
Colaborador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: Ingenieria inversa en c++
« Respuesta #3 en: 9 Junio 2015, 19:48 pm »

Entiendo, gracias por la respuesta. Aun asi el .NET reflector creo que leí que trabajaba tambien para cpp, pero lo hara de manera menos eficiente seguramente, no lo he probado ni lo tengo es para saber antes que nada. Probe el ollydebugger y si esa es la unica manera  o el unico estilo de programa para hacer ingeniería inversa estoy jodido.

En C++/CLI que no es C++ Win32 nativo, es una versión de C++ adaptada a .NET, por lo tanto código intermedio.

Lyego seria necesario romper el cifrado que protege al archivo antes que usar el.NET reflector, sino no apareceria nada si no me equivoco, ¿como lo hara entonces la gente?

Una opción es esperar a que el proceso llame a la rutina de descifrado y así guardar el binario descifrado, pero éste sería un escenario básico.

Saludos.
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.470


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Ingenieria inversa en c++
« Respuesta #4 en: 9 Junio 2015, 23:04 pm »

Hola!

Si el ejecutable C++ no está protegido, puedes usar IDA para analizarlo y luego el plugin X-Rays para generar un código bastante parecido al fuente, de las funciones que te parezcan intersantes.

Saludos!
En línea

MCKSys Argentina

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

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Ingenieria inversa en c++
« Respuesta #5 en: 10 Junio 2015, 00:18 am »

Hola!

Si el ejecutable C++ no está protegido, puedes usar IDA para analizarlo y luego el plugin X-Rays para generar un código bastante parecido al fuente, de las funciones que te parezcan intersantes.

Saludos!

Pero tengo entendido que generara un código en C, no en C++, y en caso de que el programa haya sido compilado con flags de optimización simplemente quedará una abstracción en C del código ensamblador, pero quedara un código más parecido al de ASM que al código fuente original lógicamente.
¿Igual el plugin ese es capaz de interpretar clases en C++?, no lo se seguro ya que nunca use el plugin ese (ya que es de pago y no es barato...)
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.470


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Ingenieria inversa en c++
« Respuesta #6 en: 10 Junio 2015, 00:38 am »

Pero tengo entendido que generara un código en C, no en C++, y en caso de que el programa haya sido compilado con flags de optimización simplemente quedará una abstracción en C del código ensamblador, pero quedara un código más parecido al de ASM que al código fuente original lógicamente.
¿Igual el plugin ese es capaz de interpretar clases en C++?, no lo se seguro ya que nunca use el plugin ese (ya que es de pago y no es barato...)

Tienes razón. Te genera código C, no C++.
La interpretación corre por cuenta de quien usa el programa. En reversing es muy útil. Incluso si el programa está hecho en C++.

Cabe notar que debes conocer ASM si e que quieres reversear algo.

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:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines