Protection changes the representation. The question is still what the program does.
What is Themida devirtualization?
Themida devirtualization is the recovery of program logic from code that Oreans Themida has converted into bytecode for one of its own virtual machines. Devirt recovers that logic from files you are authorized to analyze and delivers it as an IDA database, annotated pseudocode, LLVM IR, a full report or API JSON, with a coverage ledger that separates proven functions from everything that is not proven.
The protection is the obstacle. Understanding is the outcome.
What we support
FISH, TIGER, LION, DOLPHIN, PUMA, EAGLE and SHARK virtual machines
Themida and Code Virtualizer files
Coverage ledger and proof summary with every result
Family recognition is an intake decision, not a guarantee for every build. Custom behavior and multiple protection layers can require a separate assessment.
What changes in your workflow
Virtualization replaces ordinary instructions with a custom interpreter. Devirt recovers meaningful operations and program structure so you can investigate behavior in your own tools.
The delivery pairs readable output with a full ledger for the agreed scope. Proven, runtime-dependent, unresolved, and permanently bounded units remain distinguishable, including units that were never virtualized.
Themida names its virtual machine architectures after animals, and Devirt supports all seven: FISH, TIGER, LION, DOLPHIN, PUMA, EAGLE and SHARK. A protected file can use more than one of them.
Oreans documents lighter machines such as FISH and TIGER for code that must stay fast and heavier ones such as PUMA and SHARK for code that needs to be highly protected. Each protected file carries its own instance of a machine, with its own handlers and opcode table, so an opcode table taken from one file does not carry over to the next.
Themida and Code Virtualizer both rely on Oreans' virtual machines, and each protected file carries its own instance of a machine. All seven profiles are supported.
The Themida architectures also differ from each other: Oreans compares the difference between TIGER and LION to the difference between an x86 and an ARM processor.
Every submission requires authorization to analyze the file. Devirt refuses DRM removal and game cracking, and it can decline a job and ask for the scope or the authorization to be clarified.
A Themida result uses the same output formats as every Devirt result. You choose the ones you need, and every delivery includes the coverage ledger and the proof summary for the agreed scope.
A synthetic teaching sample on the site shows what an assessment and a ledger look like. It is illustrative and is not a customer result.
IDA database with proven functions, named imports and typed API calls
Annotated pseudocode in readable C
LLVM IR for your own toolchain
Full RE report covering architecture and behavior
API JSON with structured findings and coverage
You choose the formats. Every delivery includes the coverage ledger, and its four states always add up to the total.
A Themida result counts every function in scope and places it in one of four states: proven, runtime-dependent, unresolved or permanently bounded. The four states add up to the declared total, so functions that were not proven stay visible instead of dropping out of the count.
For eligible operations, a solver searches for a counterexample: UNSAT supports equivalence within the stated model, SAT identifies a disagreement, and a timeout leaves the question unresolved. Neither a counterexample nor a timeout counts as proof.
Themida devirtualization is available on subscription plans only, not as a one-off purchase. Code Virtualizer, the standalone virtualizer from Oreans, is analyzed per result. The pricing page lists the current plans.
How each Oreans product is sold. Current plans are on the pricing page.
Limits, and what happens when recovery stops short
Recognizing Themida at intake is an eligibility decision, not a guarantee for every build. Custom behavior or several protection layers can require a free assessment before any work is priced.
When a function cannot be proven, the result says so. It stays in the ledger as runtime-dependent, unresolved or permanently bounded, so you can decide whether the evidence answers your question or a wider engagement is needed.
See what lands on your desk.
One recovered program. Different ways to work with it. Inspect a teaching example, switch formats, and follow the link back to its evidence.
Example deliverableSynthetic data · not a customer file
Same logic. A different view.
VirtualizedInstructions through a VM
Protected logicTeaching VM / instruction listing
1; Authored teaching VM, not vendor bytecode200 LOAD32 r0, input.size301 PUSH r0402 PUSH 0x10503 UGE604 STORE p0705 LOAD32 r1, input.magic806 PUSH r1907 PUSH 0x445652541008 EQ1109 LOAD p01210 AND1311 RET
Original teaching material, not customer output. The IDA view illustrates a database's contents; it is not a downloadable .i64. No measured proof or service benchmark is claimed by these examples.
Your build determines the final scope.
Themida is analyzed on subscription plans only. Standard automated jobs have a 24-hour SLA; eligible express jobs have a one-hour SLA. Novel engagements use an accepted offer, a 72–168 hour window, and senior review before release.
No. Unpacking removes the file-level encryption and compression that Themida wraps around a program, but code that Themida virtualized remains bytecode for its virtual machine after unpacking. Recovering that code is devirtualization.
Devirt analyzes only files you own or are authorized to analyze, for purposes such as security research, malware analysis and interoperability. Unauthorized intrusion, unlawful circumvention and redistribution without rights are prohibited under the acceptable use policy.
Which Themida virtual machines does Devirt support?
Devirt supports all seven Themida virtual machine profiles: FISH, TIGER, LION, DOLPHIN, PUMA, EAGLE and SHARK. A protected file can use more than one of them.
What happens to my Themida-protected file?
Your file is analyzed in an isolated environment and used only for the work you requested. Nothing is shared between customers and nothing is used for training. Input is deleted after completion and delivery, and released output stays available for 72 hours by default or 30 days on Team.
What if some Themida functions cannot be recovered?
They stay in the coverage ledger as runtime-dependent, unresolved or permanently bounded instead of disappearing from the result. You see exactly which functions were proven and which were not.
Isolated processingDeletion requestedRemoved after confirmationNot retained
In scope
Output
Your result files
Not yet releasedAvailable to downloadExpired; deletion requestedNot retained
In scope
Audit
Processing record
Recording the work90-day audit retentionAudit only; no binaryDeletion due
In scope
Different data. Different clocks.
Input deletion follows delivery. This timeline shows the default 72-hour output window. Team outputs are kept for 30 days. Audit records have a separate 90-day window.
Policy illustration, not a live deletion certificate. Deletion is confirmed from provider receipts. Assessment inputs, unpaid jobs, and account/billing records have their own rules in the policy.
What do you need to understand?
Start in your account. If your upload needs manual work, we review it and email you a written scope and quote before paid work begins.
Create your workspace
Create an account, verify your email and upload your file. We review custom work and email your scope and quote.