
Guerra psicológica en la ingeniería inversa
: Guerra psicológica en la ingeniería inversa
github.com/xoreaxeaxeax/repsych // domas // @xoreaxeaxeax
El conjunto de herramientas REpsych es una prueba de concepto que ilustra la generación de imágenes a través del grafo de control de flujo (CFG) de un programa.
| CFG de una función típica | Un CFG generado por REpsych |
|---|---|
![]() | ![]() |
El proyecto no tiene un propósito específico (más allá de demostrar que se puede hacer), pero algunas aplicaciones posibles (no serias) se describen en la presentación de DEF CON.
El programa funciona de forma fiable con todas las versiones probadas de la herramienta de ingeniería inversa IDA Pro, y de forma parcialmente fiable con otros visores de CFG (Hopper, BinNavi, radare2, etc.).
El conjunto de herramientas traduce imágenes de origen en programas funcionales, de modo que el grafo de control de flujo del programa genere la imagen de origen.
Para generar un nuevo programa a partir de una imagen:
Se crearán dos programas funcionales: repsych_v1 y repsych_v2. Cada uno utiliza una estrategia diferente para garantizar que el renderizador de CFG coloque correctamente los nodos del CFG.
La herramienta creará un bloque básico (nodo de CFG) por cada píxel de la imagen de origen; por lo tanto, debes intentar usar imágenes de origen pequeñas (no mayores de 100x100), y puede que necesites aumentar el número de nodos permitidos en tu visor de CFG.
Al usar una imagen de texto como entrada para la herramienta, primero convierte la imagen a un mapa de bits en blanco y negro de 2 BPP y luego a un mapa de bits de 24 BPP; esto eliminará los colores que no sean blanco y negro, y dará los mejores resultados en el grafo de control de flujo.





La técnica se describe en detalle en la presentación de DEF CON.
Las diapositivas de la presentación están disponibles aquí.
REpsych es una prueba de concepto de Christopher Domas (@xoreaxeaxeax).