VMHunt is a set of tools for analyzing virtualized binary code. Now we only support 32 bit traces.
- PIN tools from Intel. I tested version 2.13 and 3.2, but other versions probably work as well.
- g++ compiler (6.0 version or above).
- Compile the tracer: run
make PIN_ROOT=PinDirectory TARGET=ia32 $*in thetracerdirectory. - Compile VMHunt: run
makein the project root directory.
- Use the tracer to record an execution trace.
pin -t tracer/obj-ia32/instracelog.so -- yourprogram - Extract virtualized snippet in the trace.
./vmextract tracefile - Backward slice the trace.
./slicer tracefile - Run MG symbolic execution
./mgse tracefile