Skip to content

prometheus-lua/Prometheus

Repository files navigation


Prometheus obfuscation process preview

Prometheus is a Lua obfuscator written in pure Lua.

It applies a range of AST-based transformations to make source code significantly harder to read, analyze, and reverse engineer.
These include techniques such as control-flow flattening, constant encryption, and other Lua-specific obfuscation strategies.

The project was inspired by the excellent javascript-obfuscator.

Currently, Prometheus supports:

  • Lua 5.1
  • LuaU (basic support is available, but still not fully finished)

Quick Start

Try the browser version first:

Open Prometheus Playground

Install CLI (Linux/macOS)

Install latest release with one command:

curl -fsSL https://raw.githubusercontent.com/prometheus-lua/Prometheus/master/install.sh | sh

Then use the CLI directly:

prometheus-lua --version
prometheus-lua --preset Medium ./your_file.lua

The release bundle includes a Lua runtime, so no separate Lua install is required for the packaged CLI.

To update to the latest release:

prometheus-lua update

To uninstall:

rm -f ~/.local/bin/prometheus-lua && rm -rf ~/.local/share/prometheus-lua

Local source usage

git clone https://github.com/prometheus-lua/Prometheus.git
cd Prometheus
lua cli.lua --preset Medium ./your_file.lua

Documentation

You can find the full documentation, including the getting started guide, here:

Documentation

Contribution guidelines: CONTRIBUTING.md


Requirements

Packaged CLI releases include a bundled Lua runtime. For source usage, Prometheus requires LuaJIT or Lua 5.1+.

Lua 5.1 binaries can be downloaded here:
https://sourceforge.net/projects/luabinaries/files/5.1.5/Tools%20Executables/


Example

Input

-- input.lua
print("Hello, World!");

Obfuscated output

-- input.obfuscated.lua
return(function(...)local L={"afT6mf1V","/7mJXsuvmE1c/fT3";"tn1ZSn6=","37ghSJM=";"WqermfWAWuuZpb3XX7M=","tqXGSJ3u","XQXpL9x21dxAWJa//p==","SrM=";"3q+5SJM=","/D==";"t7XUt0p=";"mIeOmIx9";"LdgrBfWdWuNABsb+KJxj","SJWJ4dahKsebW7t+KQv=","/cDu3AvP/D==";"Llv7uD==","tJWhFfTE";"TQ43ctIuy9HIop==","mEu93p==";"WJax1sXEXEaxWuxGt6==","t0gPSEp=",...
-- remaining obfuscated output omitted

For more advanced use cases, configuration, and presets, see the documentation.


Tests

To run the Prometheus test suite:

lua ./tests.lua [--Linux]

Community

Prometheus has an official Discord server:

Join Discord


License and Commercial Use

Prometheus is licensed under the Prometheus License, a modified MIT-style license.

You are free to use, modify, and distribute this software, including for commercial purposes, under the following conditions:

  • Any commercial product, wrapper, or service (including SaaS or hosted solutions) that uses or integrates Prometheus must include clear attribution to:
Based on Prometheus by Elias Oelschner, https://github.com/prometheus-lua/Prometheus
  • The attribution must be visible in the product’s:
    • UI
    • documentation
    • public website
  • The obfuscated output files generated by Prometheus do not need to include any license or copyright notice.
  • Derivative works and public forks must also include a statement in their README noting that they are based on Prometheus.

Full license text: Prometheus License


Packages

 
 
 

Contributors

Languages