Can I submit malware I did not write?
Yes, for defensive work. Malware analysis and defensive threat intelligence are accepted use cases under Devirt's acceptable use policy, which also prohibits deploying or improving malware.
Analyze protected or ordinary binaries in an isolated environment and receive a clear, evidence-backed behavioral report.
A malware analysis service examines a suspicious file for you and reports what it does: which files and processes it touches, how it persists, what it contacts on the network and which imports it uses. Devirt's malware analysis service analyzes protected or ordinary binaries in an isolated environment and returns an evidence-backed behavioral report, with a coverage ledger that states which parts of the code were proven and which stayed open.
Family recognition is an intake decision, not a guarantee for every build. Custom behavior and multiple protection layers can require a separate assessment.
A binary does not need virtualization to enter the automated analysis path. Devirt can reverse ordinary compiled programs, map their behavior and interfaces, and surface risk indicators for your authorized review.
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.
See how the checks workA malware analysis service is for teams that need to know what a file does before they decide how to handle it. Devirt's malware analysis service serves these teams:
A Devirt malware analysis report describes the file, process, persistence, network and import behavior of the sample, together with a full evidence ledger that states the explicit analysis bounds. You can also choose any of the five output formats: an IDA database, annotated pseudocode, a full reverse engineering report covering architecture, behavior and identity surfaces with an executive summary, LLVM IR, or API JSON for automated workflows.

A malware sandbox run shows what a sample did during that run. The result is fast, but it covers only the paths the run took, and samples that detect a debugger, a virtual machine or a sandbox can change their behavior while they are observed.
An evidence-backed malware analysis recovers the code behind the behavior and states what the analysis did not settle. Functions that depend on an input or environment the analysis never observed are reported as runtime-dependent instead of being left out, so the report shows its own limits.

Malware authors use the same commercial protectors as software developers, including VMProtect and Themida, to slow down analysis. A protector's virtual machine turns selected functions into bytecode, so a decompiler shows the interpreter instead of the malicious logic, and unpacking alone does not make those functions readable.
Devirt's malware analysis service applies the same automated devirtualization it offers for VMProtect and Themida to protected samples, so the logic recovered from inside the protector's virtual machine is reported in the same coverage ledger as the unprotected code.
Every Devirt result places each unit in the agreed scope in one of four states: proven, runtime-dependent, unresolved or permanently bounded. The four states always add up to the total, so a function the analysis could not settle stays visible in the ledger instead of disappearing from the report, and a counterexample or a timeout is never counted as proof.
Devirt analyzes each malware sample in an isolated service with no shared customer state, and its data-handling policy requires analysis infrastructure to be network-isolated during execution. Samples are used only for the analysis you requested; they are not shared between customers or used to train models.
Released output is retained for 72 hours by default or 30 days on Team, and processing audit logs for 90 days.

One recovered program. Different ways to work with it. Inspect a teaching example, switch formats, and follow the link back to its evidence.
; Authored teaching VM, not vendor bytecode
00 LOAD32 r0, input.size
01 PUSH r0
02 PUSH 0x10
03 UGE
04 STORE p0
05 LOAD32 r1, input.magic
06 PUSH r1
07 PUSH 0x44565254
08 EQ
09 LOAD p0
10 AND
11 RET
#include <stdbool.h>
#include <stdint.h>
bool validate_record(uint32_t size, uint32_t magic) {
const uint32_t header_size = 16u;
const uint32_t expected_magic = 0x44565254u;
if (size < header_size) {
return false;
}
return magic == expected_magic;
}
Drag the divider to reveal the difference. Or choose a view above. Keyboard: arrow keys, Home and End.
Check the declared size. Check the type marker. Accept only when both checks pass.
Readable code explains the behavior. The ledger explains how far you can rely on it.
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.
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.
Compare starting pricesYes, for defensive work. Malware analysis and defensive threat intelligence are accepted use cases under Devirt's acceptable use policy, which also prohibits deploying or improving malware.
No. Devirt processes each sample only for the analysis you requested, does not share it between customers and does not use it to train models.
Behavior that depends on the environment is reported, not hidden. Functions whose outcome depends on an input or environment state the analysis did not observe are marked runtime-dependent in the coverage ledger, and unfamiliar builds or several protection layers can need a written assessment before work starts.
Devirt reports what the sample does and what the analysis proved, with explicit bounds, so your team can make the handling decision on evidence it can inspect.
Functions the analysis could not settle stay in the ledger as runtime-dependent, unresolved or bounded. If a job fails or misses its service level, used credits are returned and the per-job cash refund is requested automatically.
Standard automated jobs have a 24-hour service level, and eligible express jobs a one-hour service level. Novel engagements use an accepted offer, a 72 to 168 hour window and senior review before release.
Isolated analysis. No sharing between customers. No training on your upload. Your file is used only for the work you requested.
Read the data-handling policyIsolated processing
Not yet released
Recording the work
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.
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 an account, verify your email and upload your file. We review custom work and email your scope and quote.