Esto es un recopilatorio de sencillos programas escritos principalmente en lenguaje C (en entorno Windows) que he ido haciendo para posteriormente realizar un análisis estático de ingeniería inversa (reversing) usando Ghidra, mayoritariamente, y también Cutter / Radare2, con el objetivo de mejorar mi comprensión y aprendizaje.
Cedo esta información también con licencia GPL con el objetivo de ayudar y compartir a quien esté interesado en el reversing y quiera comentar, complementar, contribuir o corregir mis posibles errores de interpretación y/o análisis.
Tengo otros repositorios con análisis realizados, tanto estáticos como dinámicos que he ido haciendo anteriormente o paralelamente a este o con temas relacionados.
- crackmes-solutions Soluciones a algunos crackmes.
- ghidra_scripts Scripts para usar en Ghidra.
Los otros repositorios de crackmes están redactados en Inglés por que también me sirven para practicar en un idioma que no es el mio nativo. Este repositorio esta redactado en Castellano por diversificar, y también por que creo que no hay tanta información disponible en Castellano.
Para desarrollar y analizar los programas he usado las siguientes herramientas:
- IDE Codelite
- Compilador de C/C++ MinGW
- Compilador de Free Pascal / Object Pascal Lazarus
- Reversing Ghidra
- Reversing Cutter + Radare2
Iré ampliando esta lista de programas a medida que el tiempo me lo permita.
- prog_c_001 Sencillo programa de consola con un "hola mundo" y suma de dos variables.
- prog_c_002 Suma y resta dentro de funciones.
- prog_c_003 Función de suma de enteros dentro de bucle for.
- prog_c_004 Cálculo del Factorial de un entero.
- prog_vp_001 Sencillo programa de consola con un "hola mundo" y suma de dos variables. Versión en Pascal de su homólogo en C prog_c_001.
- prog_vp_002 Función de suma de enteros dentro de bucle for. Versión en Pascal de prog_c_003.
Toda la información vertida aquí ha sido única y exclusivamente con objeto de aprender. Intento ser escrupuloso en mis conclusiones, pero existe la posibilidad de que algunas afirmaciones mías sean erróneas puesto que no soy experto en ingeniería inversa, ni lenguaje ensamblador. Cualquier ayuda, comentario o corrección serán bienvenidos. No me hago responsable de errores de concepto que puedan llevar al lector a un uso incorrecto en programación o análisis en entornos profesionales o de producción.
Siéntete libre de contactar conmigo si quieres hacer cualquier comentario, sugerencia o contribución.
Twitter: @310hkc41b