All Projects → enkomio → Sacara

enkomio / Sacara

Licence: other
Sacara VM

Programming Languages

assembly
5116 projects
fsharp
127 projects
assembler
53 projects

Projects that are alternatives of or similar to Sacara

Ideas
Ideas for protecting C/C++
Stars: ✭ 37 (-67.54%)
Mutual labels:  obfuscation, vm
S2e
S2E: A platform for multi-path program analysis with selective symbolic execution.
Stars: ✭ 102 (-10.53%)
Mutual labels:  x86, vm
browser-vm
A small Linux x86 VM meant for use in the browser
Stars: ✭ 122 (+7.02%)
Mutual labels:  vm, x86
Zenroom
Small, secure and portable virtual machine for crypto language processing
Stars: ✭ 96 (-15.79%)
Mutual labels:  vm
Drupal Vm
A VM for Drupal development
Stars: ✭ 1,348 (+1082.46%)
Mutual labels:  vm
Relocbonus
An obfuscation tool for Windows which instruments the Windows Loader into acting as an unpacking engine.
Stars: ✭ 106 (-7.02%)
Mutual labels:  obfuscation
Keystone
Keystone assembler framework: Core (Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) + bindings
Stars: ✭ 1,654 (+1350.88%)
Mutual labels:  x86
Beetbox
Pre-provisioned L*MP stack
Stars: ✭ 94 (-17.54%)
Mutual labels:  vm
X64dbg
An open-source x64/x32 debugger for windows.
Stars: ✭ 37,825 (+33079.82%)
Mutual labels:  x86
Masked
Mask sensitive data: replace blacklisted elements with redacted values
Stars: ✭ 103 (-9.65%)
Mutual labels:  obfuscation
Rtti Obfuscator
Obfuscates all RTTI (Run-time type information) inside a binary
Stars: ✭ 107 (-6.14%)
Mutual labels:  obfuscation
Bap
Binary Analysis Platform
Stars: ✭ 1,385 (+1114.91%)
Mutual labels:  x86
Emojify
Obfuscate your python script by converting it to emoji icons
Stars: ✭ 99 (-13.16%)
Mutual labels:  obfuscation
Avr Vm
VM with JIT-compiler for ATMega32 written in Rust
Stars: ✭ 106 (-7.02%)
Mutual labels:  vm
Vagrant Docker Vm
💻 Development Vagrant VM with Docker, Samba and Mail sandbox (customizable)
Stars: ✭ 97 (-14.91%)
Mutual labels:  vm
Jingos
JingOS - The World’s First Linux-based OS design for Tablets
Stars: ✭ 101 (-11.4%)
Mutual labels:  x86
Sjs
Skookum JS: a JavaScript runtime
Stars: ✭ 95 (-16.67%)
Mutual labels:  vm
Inline Hook
simple inline-hook framework works for x86, x64, arm and thumb
Stars: ✭ 102 (-10.53%)
Mutual labels:  x86
Redtamarin
AS3 running on the command line / server side
Stars: ✭ 105 (-7.89%)
Mutual labels:  vm
Hashi Up
bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute
Stars: ✭ 113 (-0.88%)
Mutual labels:  vm

Sacara - A stack based intermediate language aimed at software protection by running in a software VM

Release Software License

Under the Sacara name belongs various projects:

  • A programming language very similar to the most common intermediate representation language, like MSIL or the Java bytecode
  • An assembler to transalate your Sacara program in a binary format
  • An interpreter based on a Virtual Machine stack based
  • A .NET binding to use the unmanaged Sacara DLL

Sacara was created to learn how to create a project suited for protecting the code from being reverse enginnering. The Virtual Machine is implemented in Assembly x86 and contains some anti-analysis features.

Documentation

To know how to program in SacaraVM you can have a look at the ISA page, see the Examples in the source folder or read the programs (this and this) used for testing.

I have also published some blog posts about how to use Sacara for some basic tasks.

Release Download

Using Sacara

In order to compile a script implemented in the Sacara Intermediate Language (SIL), you have to use the Sacara assembler SacaraAsm.

To run a Sacara compiled script you can use the SacaraRun utility, or embedd the code inside your source code and using the exported APIs to run the SIL in a more controlled environment.

Static Library

A static library (SacaraVm.lib) is available in order to avoid to bring with your program the DLL. Here an example of code using the static library.

Exported VM methods

The SacaraVM DLL exports various methods that can be invoked programmatically. You can find an example of usage in the Examples directory.

Finally, find below an example of execution:

For more examples take a look at the Examples folder.

.NET Binding

If you are interested in using Sacara in .NET take a look at this example, which use the .NET Sacara Binding (ES.SacaraVm). In order to use the .NET binding the unmanaged SacaraVm.dll file must be in the same directory as the ES.SacaraVm.dll Assembly file.

Build Sacara

Sacara is currently developed by using VisualStudio 2017 Community Edition (be sure to have the latest version installed). To build the source code you have to:

  • have installed .NET Core SDK
  • have installed the Windows desktop development with c++. If you have installed Visual Studio 2017, by opening the solution (SacaraSln.sln) it should ask automatically if you want to install the missing component
  • clone the repository
  • run build.bat

Versioning

I used SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Antonio Parata - Core Developer - s4tan

License

Sacara is licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].