Installation
This guide will walk you through installing Obfussor and all its prerequisites on your system.
Prerequisites
Before installing Obfussor, ensure you have the following tools installed:
Required Tools
1. Node.js (v18.0.0 or later)
Node.js is required for the Angular frontend.
Windows:
# Download and install from nodejs.org
# Or use Chocolatey
choco install nodejs
# Verify installation
node --version
npm --version
macOS:
# Using Homebrew
brew install node
# Verify installation
node --version
npm --version
Linux:
# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# Fedora
sudo dnf install nodejs
# Verify installation
node --version
npm --version
2. Bun (Latest Version)
Bun is a fast JavaScript runtime and package manager used in this project.
Windows:
# Using PowerShell
powershell -c "irm bun.sh/install.ps1 | iex"
# Verify installation
bun --version
macOS/Linux:
# Using curl
curl -fsSL https://bun.sh/install | bash
# Verify installation
bun --version
3. Rust (Latest Stable)
Rust is required for the Tauri backend and LLVM integration.
All Platforms:
# Install rustup (Rust installer)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# On Windows, download and run rustup-init.exe from rustup.rs
# Follow the prompts and choose default installation
# Restart your terminal, then verify
rustc --version
cargo --version
Post-Installation:
# Update Rust to latest version
rustup update
# Add common components
rustup component add rustfmt clippy
4. Tauri CLI
Tauri CLI is required to build and run the desktop application.
# Install Tauri CLI via Cargo
cargo install tauri-cli --version "^2.0"
# Verify installation
cargo tauri --version
5. LLVM (Version 14.0 or later)
LLVM is the core dependency for obfuscation functionality.
Windows:
# Download pre-built binaries from llvm.org
# Or use Chocolatey
choco install llvm
# Add to PATH: C:\Program Files\LLVM\bin
macOS:
# Using Homebrew
brew install llvm
# Add to PATH (add to ~/.zshrc or ~/.bash_profile)
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# Verify installation
llvm-config --version
Linux:
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install llvm-14 llvm-14-dev clang-14
# Fedora
sudo dnf install llvm llvm-devel clang
# Verify installation
llvm-config --version
Optional Tools
Git
Version control for cloning the repository:
# Windows (Chocolatey)
choco install git
# macOS
brew install git
# Linux (Ubuntu/Debian)
sudo apt-get install git
# Verify
git --version
Visual Studio Code
Recommended IDE with excellent Rust, Angular, and TypeScript support:
# Download from code.visualstudio.com
# Recommended Extensions:
# - rust-analyzer
# - Angular Language Service
# - Tauri
# - ESLint
# - Prettier
Platform-Specific Requirements
Windows
Visual Studio Build Tools (required for Rust compilation):
- Download Visual Studio Build Tools
- Install with "Desktop development with C++" workload
- Ensure the following components are selected:
- MSVC v143 - VS 2022 C++ x64/x86 build tools
- Windows 10/11 SDK
- C++ CMake tools for Windows
WebView2 (required for Tauri):
- Windows 11: Pre-installed
- Windows 10: Download WebView2 Runtime
macOS
Xcode Command Line Tools:
xcode-select --install
Linux
Build Dependencies:
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
Fedora:
sudo dnf install \
webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
gtk3-devel \
libappindicator-gtk3-devel \
librsvg2-devel
Arch Linux:
sudo pacman -S \
webkit2gtk \
base-devel \
curl \
wget \
file \
openssl \
gtk3 \
libappindicator-gtk3 \
librsvg
Installing Obfussor
Method 1: Clone from GitHub
# Clone the repository
git clone https://github.com/matrixbytes/Obfussor.git
# Navigate to the directory
cd Obfussor
# Install dependencies
bun install
# Verify installation
bun ng version
cargo tauri info
Method 2: Download Release Binary
- Visit GitHub Releases
- Download the latest release for your platform:
- Windows:
Obfussor-{version}-x64-setup.exe
- macOS:
Obfussor-{version}-x64.dmg
orObfussor-{version}-aarch64.dmg
- Linux:
Obfussor-{version}-amd64.AppImage
or.deb
/.rpm
- Windows:
- Install following platform-specific instructions
Post-Installation Verification
Verify all components are correctly installed:
# Check Node.js
node --version # Should be >= 18.0.0
# Check Bun
bun --version
# Check Rust
rustc --version
cargo --version
# Check Tauri
cargo tauri --version
# Check LLVM
llvm-config --version # Should be >= 14.0
# Check Clang
clang --version
Building from Source
If you cloned from GitHub, build Obfussor:
# Development build
cargo tauri dev
# Production build
cargo tauri build
The production build will create installers in:
- Windows:
src-tauri/target/release/bundle/msi/
orsrc-tauri/target/release/bundle/nsis/
- macOS:
src-tauri/target/release/bundle/dmg/
orsrc-tauri/target/release/bundle/macos/
- Linux:
src-tauri/target/release/bundle/appimage/
orsrc-tauri/target/release/bundle/deb/
Environment Configuration
Setting up LLVM Environment Variables
Windows:
# Add to System Environment Variables
setx LLVM_SYS_140_PREFIX "C:\Program Files\LLVM"
setx PATH "%PATH%;C:\Program Files\LLVM\bin"
macOS/Linux:
# Add to ~/.zshrc or ~/.bashrc
export LLVM_SYS_140_PREFIX="/usr/local/opt/llvm"
export PATH="/usr/local/opt/llvm/bin:$PATH"
# Apply changes
source ~/.zshrc # or source ~/.bashrc
Rust Environment
Ensure Rust environment is properly configured:
# Verify cargo is in PATH
which cargo
# If not found, add to PATH
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Troubleshooting Installation Issues
Common Problems
1. Bun Installation Fails on Windows
Error: PowerShell execution policy prevents installation
Solution:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
2. Rust/Cargo Not Found
Error: cargo: command not found
Solution:
- Restart terminal
- Manually add to PATH:
$HOME/.cargo/bin
(Unix) or%USERPROFILE%\.cargo\bin
(Windows) - Re-run Rust installer
3. LLVM Not Found
Error: could not find native static library 'LLVM'
Solution:
# Verify LLVM is installed
llvm-config --version
# Set LLVM_SYS_140_PREFIX environment variable
export LLVM_SYS_140_PREFIX=$(llvm-config --prefix)
# Try installation again
4. WebKit2GTK Missing (Linux)
Error: Package webkit2gtk-4.1 was not found
Solution:
# Ubuntu/Debian
sudo apt-get install libwebkit2gtk-4.1-dev
# Older systems may need webkit2gtk-4.0:
sudo apt-get install libwebkit2gtk-4.0-dev
5. Tauri CLI Installation Fails
Error: Compilation errors during cargo install tauri-cli
Solution:
# Update Rust
rustup update
# Install with specific version
cargo install tauri-cli --version "^2.0"
# Windows: Ensure Visual Studio Build Tools are installed
Getting Help
If you encounter issues not covered here:
- Check Troubleshooting Guide
- Review GitHub Issues
- Consult Tauri Prerequisites
- Open a new issue with detailed error messages
Next Steps
Once installation is complete:
- Quick Start Guide: Learn to obfuscate your first program
- Configuration: Understand configuration options
- LLVM Overview: Learn about LLVM fundamentals
Congratulations! You now have Obfussor installed and ready to use.