flare-emu is a flexible binary emulation framework that integrates with IDA Pro or Radare2 and Unicorn to enable scripted emulation for advanced code analysis across multiple architectures.
flare-emu is primarily used by reverse engineers and malware analysts to emulate and analyze binary code within supported architectures like x86 and ARM, facilitating detailed dynamic analysis and exploration of code paths. It is especially useful for handling obfuscated binaries, shellcode, or complex functions where static analysis alone is insufficient.
flare-emu requires integration with supported binary analysis frameworks like IDA Pro or Radare2 and depends on Unicorn for emulation. Users should be familiar with scripting in these environments and understand CPU architectures to effectively leverage the tool. Dynamic code discovery and hooking capabilities make it powerful but may require careful setup to avoid incomplete or incorrect emulation results.
Drop flare_emu.py and flare_emu_ida.py into your IDA Pro environment
emulateRange
Emulate a range of instructions or a function with options for hooks and control over function calls.
emulateSelection
Wrapper for emulateRange to emulate the currently highlighted instructions in IDA Pro.
iterate
Force emulation down specific branches to reach target addresses or functions with callback support.
iterateAllPaths
Emulate all possible paths through a target function to cover every basic block.
emulateBytes
Emulate a blob of shellcode or arbitrary bytes without adding them to the IDB.
emulateFrom
Emulate from a given start address until no instructions remain or stopped by hooks, supporting dynamic code discovery.