Mutant: An open-source, cross-platform, encrypted programming language

Mutant is an open-source, cross-platform, compiled, garbage collected, encrypted programming language that wants to make secure programming and security research more accessible. The target audience for mutant is students, security researchers, and reverse engineers.

The aim is to provide an accessible, secure system for programming & security research. And it can be learned in under an hour.

- Advertisement -

Mutant is loosely typed and it does not require defining specific data types while creating variables. The idea is to build a “secure by default” programming language that provides both compile-time and run-time security. This is achieved by encrypting byte code both on disk and in memory.

While semi-colons are not required strictly to use the language, it is recommended that they are used in order to avoid unusual errors in code.

Features of Mutant

Security

The language supports both compile-time and run-time security through encryption & hashing. This is achieved by encrypting generated bytecode at complete bytecode and at the instruction level. This ensures that the compiled program runs only after a certain number of checks

The language also adds a header and a footer in the generated compiled file with the bytecode to identify the file with magic strings rather than relying on file extensions. The language also verifies hashes of encrypted and decrypted code to ensure that it has not been tampered with before running it.

REPL

The language has support for a basic REPL for testing out the capabilities. It is a powered-down version of the full language and is only intended to test basic features of the language

VM

Mutant makes use of a virtual machine, known as “Mutant Virtual Machine” or MVM. This virtual machine makes sure that your program runs in YOUR machine. It has been tested on Linux, macOS, & Windows. It should also work on Android, FreeBSD, and essentially any platform/architecture that is supported natively by the Go Programming Language.

This virtual machine is run every time it has to run compiled mu files or whenever the user decides to run their programs through REPL

Unicode Support

The language supports emojis, glyphs, and other non-ASCII characters making it truly multi-lingual. Future versions will include support for multi-lingual syntax so that programming is not restricted to just ASCII-based written languages.

You can check out the language at https://github.com/gaurav-gogia/mutant. Feel free to drop a comment below if you have any feature requests or anything that you would like to get added to the language. Or create an issue on the GitHub repository.

Recent Articles

Benefits Of Guest Blogging For SEO

Guest blogging entails the art of writing and publishing posts to be content for someone else. Guest blogging and posting on other...

Chrome devtools: Using logpoints for logging messages directly

When it comes to debugging JavaScript in Chrome devtools, there are two different camps: the console.log fans and the debugger/breakpoint maximalist. I...

How to prevent npm install for unsupported Node.js versions

npm configurations allow us to do quite a lot of nifty things. One of them is to allow the project to set...

How to terminate a process on a port using the command line

Zombie processes are usually a pain to figure out. More often than not, I end up googling about how to terminate a...

Detecting dark mode preference using JavaScript

As dark themes have become popular across the web and across operating systems, we might want to check the user's operating system...

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Hi there! Want some more knowledge?

Think that the knowledge shared is helpful? You might want to give our mailing list a try. We'll send you 2-4 emails a month, right when new posts come out.

Hi there! Want some more knowledge?

Think that the knowledge shared is helpful? You might want to give our mailing list a try. We'll send you 2-4 emails a month, right when new posts come out.