devirt.re
Create account
Menu

DRM architecture analysis.

Review how your own protection is built: which modules are protected, what they call, and where the design rests on an assumption that may not hold.

Protected programSHA-256 recordedRecoverH_04H_12H_21H_33Readable outputvalidate_header()Differential checkOriginalRecoveredCoverage ledgerProvenRuntimeBoundedIllustrative example · no customer dataProtected program → readable logicAuthorized filevalidate_record()Original / recoveredCoverage ledgerProvenRuntimeBounded
Unknown does not have to mean protected. Start with the file and the question you need answered.

What is DRM architecture analysis?

DRM architecture analysis documents the protected modules, interfaces, load behavior and trust boundaries of a digital rights management system. For rights holders and authorized reviewers, Devirt records how components communicate, where entitlement checks happen and which assumptions the design relies on. The deliverable is an architecture report with supporting evidence and explicit analysis limits.

The protection is the obstacle.
Understanding is the outcome.

What we support

  • Protected module architecture
  • Import and behavior documentation
  • Confidential enterprise engagements

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

A binary does not need virtualization to be in scope. 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 work

What this service is, and what it is not

This service documents how a protection is put together, for the people who own it or are authorized to examine it. A review answers questions such as where the entitlement check actually happens, what the protected modules import, which components have to trust each other, and what an attacker would see first.

Devirt does not remove DRM and does not circumvent access controls. It does not unlock protected content, defeat license checks, or produce anything whose purpose is to get around a protection. Requests with that aim are declined, and a supported protector family does not by itself establish permission to analyze a particular binary.

Two columns. Reviewed, for the rights holder or with their authorization: where the entitlement check happens, what the protected modules import and call, which components have to trust each other, and where the design assumes rather than checks. Outside the service scope: removing DRM from a protected file, circumventing an access control, unlocking protected content, and defeating a license check.
Illustration. Requests in the right-hand column are outside the service scope. Devirt may ask you to confirm your authorization.

Who it is for

Rights holders and protection vendors who want their own protection design reviewed before or after release.

Interoperability and compatibility teams with authorization to make their own product work correctly alongside protected software.

Compliance, audit and IP teams who need a written, evidence-backed account of how a protected component behaves.

What a DRM architecture review covers

Devirt documents the protected modules and how they are packaged, the imports and platform calls they rely on, the boundaries between protected and unprotected code, and the order in which the pieces load and hand off to each other.

Where a module is virtualized by a commercial protector, recovery of its logic is what makes the rest of the picture legible, because a decompiler otherwise describes the protector rather than the module. The recovered logic is reported with the same evidence rules as any other Devirt result.

  • Protected module architecture and packaging
  • Imports, platform calls and documented behavior
  • Trust boundaries between components
  • Where the design depends on an assumption rather than a check
Four cards naming what a review documents: packaging, meaning which modules are protected and how; imports and calls; trust boundaries between protected and unprotected code; and the order in which components load and hand off.
Each item is documented for the agreed scope, with the recovered evidence behind it.

What you receive

A review arrives in the output you choose: an IDA database, annotated pseudocode, a full reverse engineering report, LLVM IR or structured API JSON. For most architecture work the written report carries the findings and the other formats carry the evidence behind them.

Every result carries its coverage ledger for the agreed scope, so a finding can be checked rather than taken on trust.

How the evidence is reported

Readable output is not the same as proven output. Devirt records every unit in scope in one of four coverage categories, and the four counts add up to the total, so nothing drops quietly out of the record.

A conclusion about an architecture is only as strong as the units under it. Where a component stays runtime-dependent or unresolved, the report says so instead of rounding the finding up.

  • Proven: verified within the declared model.
  • Runtime-dependent: a real input or environment state still matters.
  • Unresolved: the available evidence did not settle an in-scope unit.
  • Permanently bounded: an explicit analysis limit remains.
A finding about the architecture sits above the four coverage states it can rest on: proven, runtime-dependent, unresolved and permanently bounded, each with a one-line meaning.
A finding that rests on runtime-dependent or unresolved units is reported as resting on them.

How an engagement starts

Architecture work is scoped before it begins. Devirt reviews what you send, agrees the scope and the questions in writing, and quotes the work. Nothing is charged unless you accept the written offer, and a revised scope needs your approval.

Confidentiality, any EU requirements and exclusivity are agreed before a transfer, and US government or export-controlled work requires a separate written contract before anything is submitted.

Authorization and confidentiality

You must own the submitted binary or hold authorization to analyze it, and use the results lawfully. Devirt may ask you to clarify the scope or the authorization, and reserves the right to decline an engagement.

Analysis runs in isolation, files are not shared between customers, and uploads are never used for training. Your file is used only for the work you requested. You can request your own processing log, and Enterprise deletion certificates require confirmed deletion rather than a request to delete.

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
; 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
DevirtualizedThe deliverable you can inspect
validate_recordC / sample function
#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.

In ordinary language

Check the declared size. Check the type marker. Accept only when both checks pass.

The evidence travels with the file.

Readable code explains the behavior. The ledger explains how far you can rely on it.

Download teaching source

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.

A DRM architecture review is scoped before it starts: Devirt reviews what you send, agrees the scope and the questions in writing, and quotes the work. Nothing is charged unless you accept the offer.

Start a free assessment

DRM architecture analysis: questions and answers

Does Devirt remove DRM or unlock protected content?

No. Devirt analyzes how a protection is built for the people entitled to know; it does not remove DRM, circumvent access controls, defeat license checks or unlock content, and it declines any request with that aim. If that is what you are looking for, this is not the service.

Does Devirt sell DRM software?

No. Devirt does not build, license or resell a DRM product. It reviews protection designs that already exist, which is why a review can look at your own system without any interest in selling you a replacement for it.

Can I have a DRM implementation reviewed if a third party built it?

Yes, where you hold the rights to the software or written authorization from the party that does. This includes protection commissioned from a third party, where you hold the necessary rights or authorization. Devirt may ask how that authorization is established before starting.

What if part of the design cannot be proven?

It stays visible. Units that cannot be proven remain in the ledger as runtime-dependent, unresolved or permanently bounded rather than being dropped, and the report states which findings rest on them. The scope and likely coverage are estimated before any paid work begins.

Is my implementation kept confidential?

Yes. Analysis runs in isolation, files are not shared between customers, uploads are not used for training, and your file is used only for the work you requested. Confidentiality terms are agreed before transfer, and released output is retained for 72 hours by default or 30 days on Team.

Your binary stays your business.

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 policy
Input

Your uploaded file

Isolated processing

In scope
Output

Your result files

Not yet released

In scope
Audit

Processing record

Recording the work

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.

Start a free assessment

Find the right plan