Sacara VM
Switch branches/tags
Nothing to show
Clone or download
Latest commit d231637 Nov 15, 2018
Permalink
Failed to load latest commit information.
Src Minor fix/improvements Nov 12, 2018
.gitignore modified .gitignore Sep 11, 2018
ISA.md updated doc Oct 12, 2018
LICENSE.md Updated L Oct 24, 2018
README.md Update README.md Nov 14, 2018
RELEASE_NOTES.md Release date Nov 12, 2018
build.bat Added build scripts Sep 7, 2018

README.md

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

Release Software License

Sacara is a programming language very similar to the most common intermediate representation language, like MSIL or the Java bytecode. It is executed inside a VM and its main purpose is to make difficult to understand the original purpose of the program. This make the project well suited for protecting the code from being reverse enginnering.

Of course nothing will stop an highly skilled reverse engineer :)

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.

The Sacara VM is implemented in the SacaraVM dll.

Find below an example of execution:

For more examples take a look at the Examples folder.

Documentation

For documentation related to how the SacaraVM can be used, please read the ISA page.

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.

I have also published a blog post about using Sacara to hide code intent. You can read it here.

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.