¿Qué es un decompilador?
Es un programa que realiza la operación inversa de un compilador: obtener el código fuente de un programa compilado
¿Por qué decompilar?
● Para arreglar bugs (errores)
● Para encontrar vulnerabilidades
● Para buscar malware
● Para aprender
● Por interoperabilidad
● Para optimizar el código
● Para mejorar el programa
● Por si has perdido el código
¿Es legal?
La licencia de la mayoría de los programas propietarios prohíben explícitamente la decompilación, pero en algunos países hay leyes que la permiten.
¿Cómo funciona?
1º Averiguar el compilador
2º Encontrar el main()
3º Definir las funciones
4º Agrupar el código en asignaciones,
condiciones, saltos y llamadas a
funciones.
Los compiladores de Java, .NET y Flash no generan código binario, si no bytecode, esto es, código para ser ejecutable sobre sus máquinas virtuales. Por eso estos lenguajes son multiplataforma.
En cambio, los compiladores de C generan código optimizado en binario para un procesador determinado (x86, AMD64, SPARC…) De esta manera, es mucho más difícil decompilar programas en C.
La única documentación hoy día que he podido encontrar es una tesis de Cristina Cifuentes (Universidad de Queensland) dedicada exclusivamente a la decompilación en C en la arquitectura i386. Los pocos decompiladores existentes para C no son automáticos, es
decir, necesitan la interacción del usuario y sólo funcionan con
programas pequeños.
bajate Algunos
para .net
http://rapidshare.com/files/121394970/DotNET_Reflector_v2.01.04.rar
http://rapidshare.com/files/88948003/VBReFormer.2007.Professional.v5.0-YAG.rar
para visual studio
http://www.9rays.net/Products/Spices.Decompiler/
para C
http://www.woodmann.com/forum/attachment.php?attachmentid=1835&d=1211380081
http://boomerang.sourceforge.net/
para flash ( swf a fla )
http://www.sothink.com/product/flashdecompiler/
http://rapidshare.com/files/98056807/Flash_Decompiler_Trillix3.rar
para java
http://www.download.com/DJ-Java-Decompiler/3000-2417_4-10046809.html
via: taringa.net