Skip to content
Psychological warfare in reverse engineering
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples update readme and examples Dec 31, 2015
slides Add DEF CON slides Aug 12, 2015
Makefile Improve build process Aug 9, 2015 update readme and examples Dec 31, 2015
repsych.asm Initial commit Aug 9, 2015


: Psychological Warfare in Reverse Engineering // domas // @xoreaxeaxeax


The REpsych toolset is a proof-of-concept illustrating the generation of images through a program's control flow graph (CFG).

A typical function's CFG A REpsych generated CFG
cfg repsych

There is no specific point to the project (other than to show that it can be done), but possible (non-serious) applications are outlined in the DEF CON presentation.

The program works reliably with all tested versions of the IDA Pro reverse engineering tool, and semi-reliably with other CFG viewers (Hopper, BinNavi, radare2, etc).


The toolset translates source images into functioning programs, such that the program's control flow graph generates the source image.

To generate a new program from an image:

  • Save the image in the gfx/ folder as a 24 BPP bitmap.
  • Run "make image" in the root directory of the project, where "image" is the name of your image, without the extension.

Two functioning programs will be created: repsych_v1 and repsych_v2. Each uses a different strategy for ensuring the CFG renderer correctly places the CFG nodes.


The tool will create a basic block (CFG node) for each pixel of the source image; as such, you should try to use small source images (not larger than 100x100), and you may need to increase the number of allowed nodes in your CFG viewer.

When using an image of text as input to the tool, first convert the image to a 2 BPP black and white bitmap first, then to a 24 BPP bitmap; this will remove non black and white colors, and give the best results in the control flow graph.


Example 1

Example 4

Example 3

Example 2

Example 5


The technique is outlined in detail in the DEF CON presentation.

Slides from the presentation are provided here.


REpsych is a proof-of-concept from Christopher Domas (@xoreaxeaxeax).

You can’t perform that action at this time.