Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: DrKillador en 29 Julio 2017, 16:45 pm



Título: Desensamblado de binarios (exe, msi, etc.) con C# (pero no de lenguaje C#)
Publicado por: DrKillador en 29 Julio 2017, 16:45 pm
hola amigos,

Llevo tiempo programando en .Net y en especial en C#, y ahora estoy comenzando a formarme en ingeniería inversa.

Quería preguntarles sobre alguna función en .Net que permita decompilar cualquier tipo de binario para Windows (dll, msi, exe, pdf, etc....). Con eso me valdría. Luego ya jugaría yo con el código decompilado para seguir aprendiendo.

He buscado mucho por Internet pero todo lo que veo es para C/C++.....

Gracias!!!  ;D


Título: Re: Desensamblado de binarios (exe, msi, etc.) con C# (pero no de lenguaje C#)
Publicado por: apuromafo CLS en 15 Agosto 2017, 08:18 am
los binarios exe, msi y otros son llamados nativos, dado que el codigo es hecho directamente por el ensamblador provocando un codigo no legible, generar el codigo original es prácticamente imposible en su teoria, en la práctica se usan depuradores y tambien alguna herramienta de análisis estáticos que permiten entender su funcionamiento
el más famoso en su tipo diria que es IDA (de hexrays)

conforme mas lenguajes sepas mas sabes que hacer ...no es lo mismo depurar archivos .net donde son codigos interpretados (como una maquina virtual), en lenguaje intermedio (.il) 

lo haré explicito con un exe cualquiera
tengo 2 opciones o es x86 o es x64, luego verifico  yo suelo usar pid protection id, rdg packer detector, que usan firmas para analizar el encabezado y parte del ejecutable , si me indica que es .net uso directamente dnspy o alguna similar, si es un nativo uso x64dbg/x32dbg/ollydbg/IDA entre otros

 
ahora bien, hablas de funciones, eso se llaman parser?, bueno un parser de xml seria asi
https://support.microsoft.com/es-cl/help/307548/how-to-read-xml-from-a-file-by-using-visual-c


si ves kms pico o los activadores para office, son hechos en .net asi que puedes ver como ejecuta o carga diferentes cosas para ejecutables

si eres mas de ver en google, es dependiendo de lo que necesites, ejecutarlos
https://social.msdn.microsoft.com/Forums/es-ES/d28234b6-4d8f-4ad7-8660-2a284afa6c73/ejecutar-exe-desde-c?forum=vcses

editor hexadecimal
https://www.codeproject.com/Articles/11705/Hex-Editor-in-c

etc


en lo particular yo haria un gui para subir el archivo a https://retdec.com/decompilation/
y lo demas es cosa de cada uno.::


Saludos Apuromafo