Encrypted Compilation and Execution


SCRAMBLECODE is a programming language, which protects each compiled instruction to the core to generate confidential tamper-resistant code. It can work with encrypted variables in memory during execution.

It is designed to address:
Application Integrity
IP Confidentiality
Reverse Engineering
Memory Attacks

It can provide strongly protected code for trusted execution as part of any type of software application or service.

Typical use include: Digital rights management (DRM), cryptography, authentication, feature unlocking etc.



SCRAMBLECODE allows the programmer to
  • Custom create VM engines
  • Compile with private instructions
  • Encrypt opcodes and operands
  • Protect classes as a block
  • Bundle routines to avoid bypassing
  • Use RSA signature authentication
  • Work with encrypted variables
  • Overwrite released memory with zero-bytes
  • Distribute protected code as base64 text
  • Deploy private VMs royalty free
SCRAMBLECODE is easy to integrate with projects that use Java, Python, C#, C/C++, Rust, Go etc.

Example: Dynamic DRM 

SCRAMBLECODE makes it easy to update security code on client installations without having to redistribute any binaries.

It allows for updating a DRM any time (say every 24 hours) giving crackers a very short time frame to attack the software.

Video: New DRM Every 24 Hours
This video demonstrates how to create a strong DRM, which can be changed and updated every day without having to modify any binaries. Furthermore is presented how to combine SCRAMBLECODE with other security technologies, making a mix of static and dynamic DRM protection possible. YouTube 4:30min (720p HD)

Technical Summary: 

Intellectual Properties: 
SCRAMBLECODE can turn highly confidential code into strongly protected bytecode instructions, which are only executable by a custom created virtual machine (VM).

The compiler eliminates all meta-data and runtime information, and it generates instructions where each opcode and operand are encrypted individually.

The compiler bundles and encrypts all instructions on multiple levels to ensure, that if a cracker tries to modify just one instruction, it will invalidate perhaps thousands of others. The generated block of encrypted code is sealed with a signature.

Secure Execution: 
When the compiled code is launched for execution, the VM engine loads the unique instructions while keeping vital encryption layers intact. At no point can multiple decrypted instructions be scraped from memory.

Each VM can create and execute many others within the same thread, but VMs can also be working in parallel (multi-threading).

Memory Protection: 
While the instructions are executed, they work with encrypted variables in memory. The location and encryption of a given item may differ on each execution. Instructions to push, pop, move and many others do not require decryption of the involved content. If an operation requires one or more items to be decrypted, their values are short-lived and quickly erased due to the memory management design.

Video: SCRAMBLECODE Introduction
This video presents the SCRAMBLECODE language and development environment. It furthermore shows, how each customer has a personal version of the compiler with a unique instruction set, and how encrypted instructions can work with encrypted values in memory. YouTube 4:53min (720p HD)

Download and test SCRAMBLECODE

Quick Facts: 

Private Instructions: 
Compiler can use a unique set of virtual assembler instructions for every project.
Encrypted Memory: 
Variables are stored encrypted in memory. Many instructions work without decryption.
Strong Protection: 
Uses multi-layered encryption and RSA key pairs of size 2048, 3072, 4096 or 8192 bit.
Personal VM: 
Creates a custom virtual machine for each key pair which only you can use.
All-In-One IDE:  
The editor, compiler, test bench, debugger and documentation are fully integrated.
Simple API: 
Free source code for C# .NET class included to demonstrate all API functions.
Free Deployment: 
Royalty free xcopy deployment of your compiled code and personal VM.
Free Download: 
Test full version on any machine. Internet not required. All functionality is available off-line.