Devirt (devirt.re) is a binary devirtualization and reverse engineering service for security researchers and malware analysts. It recovers the logic hidden inside virtualized binaries. Protectors replace chosen functions with bytecode for a custom virtual machine and ship an interpreter to execute it, which leaves IDA, Ghidra or Binary Ninja showing a dispatcher and handler routines rather than the original code.
How it works: Devirt executes the protected program, reconstructs how its virtual machine moves state and control, and rewrites that behavior as native-shaped functions. Each function then faces three checks: a solver search for any input on which the two versions disagree, a differential run of the lifted LLVM IR against the original, and, for IDA deliveries, a reopen test confirming names and typed calls survived.
Coverage: automated recovery handles recognized VMProtect, Themida and Code Virtualizer builds, plus Enigma Protector and Obsidium profiles. Loki-based machines, .NET virtualizers, commercial packers, JavaScript VM obfuscation and custom designs begin with a free review and a written offer.
Outputs: IDA database, annotated pseudocode, analyst report, LLVM IR or structured JSON, with a ledger stating what is proven, what needs a runtime input, what remains unresolved and what the file alone can never settle.
Workflow fit: a REST API with completion webhooks submits files and retrieves results, and a read-only MCP connector lets REA and other MCP-compatible reversing agents read assessments, jobs and ledgers. Files are processed in isolation and never used for model training; only owners or authorized parties may submit.
Devirt (devirt.re) is not related to compiler devirtualization, the C++ optimization in GCC and LLVM.