H0K5 / sacara

Sacara VM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Sacara VM

License:Other


Languages

Language:F# 63.6%Language:Assembly 21.5%Language:C 8.5%Language:C# 5.7%Language:Batchfile 0.4%Language:HTML 0.3%Language:C++ 0.1%