Skip to content

mrfr8nk/EliteJsObfuscator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” Elite JS Obfuscator

Node.js Express JavaScript Vercel

A powerful web-based tool to securely clone, obfuscate, and mirror GitHub repositories with advanced JavaScript protection.

Features β€’ Tech Stack β€’ Installation β€’ Usage β€’ Deployment β€’ API β€’ Contributing β€’ License


🌟 Features

  • πŸ”’ Advanced JavaScript Obfuscation - Protect your code with military-grade obfuscation techniques
  • πŸ”„ Repository Mirroring - Clone and mirror GitHub repositories seamlessly
  • ⚑ One-Click Deployment - Simple web interface for quick obfuscation
  • 🎨 Modern UI/UX - Beautiful, responsive design with glassmorphism effects
  • πŸ” Secure Processing - GitHub tokens are never stored or logged
  • πŸ“¦ Batch Processing - Automatically processes all JavaScript files in a repository
  • βš™οΈ Smart Filtering - Skips configuration files (settings.js, config.js) automatically
  • πŸš€ Real-time Progress - Live updates during the obfuscation process
  • πŸ’Ύ Form Persistence - Auto-saves form data for convenience
  • 🌐 Vercel Ready - Optimized for serverless deployment

πŸ›  Tech Stack

Backend

  • Node.js - JavaScript runtime environment
  • Express.js - Fast, unopinionated web framework
  • javascript-obfuscator - Advanced JavaScript obfuscation library
  • simple-git - Git command wrapper for Node.js
  • body-parser - Request body parsing middleware
  • dotenv - Environment variable management

Frontend

  • HTML5 - Modern markup
  • CSS3 - Advanced styling with gradients and glassmorphism
  • Vanilla JavaScript - No framework overhead
  • Google Fonts (Inter) - Clean, professional typography

DevOps

  • Vercel - Serverless deployment platform
  • Nodemon - Development auto-reload
  • Git - Version control

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v14.0.0 or higher) - Download
  • npm (v6.0.0 or higher) - Comes with Node.js
  • Git - Download
  • GitHub Account - For repository access
  • GitHub Personal Access Token - Create one here

πŸš€ Installation

1. Clone the Repository

git clone https://github.com/mrfr8nk/elitejsobfuscater.git
cd elitejsobfuscater

2. Install Dependencies

npm install

3. Environment Setup (Optional)

Create a .env file in the root directory:

PORT=7860
NODE_ENV=development

4. Run the Application

Development Mode (with auto-reload)

npm run dev

Production Mode

npm start

The application will be available at http://localhost:7860

πŸ“– Usage

Web Interface

  1. Navigate to the application in your browser

  2. Fill in the form fields:

    • Source GitHub Repo URL: The repository you want to obfuscate (e.g., https://github.com/username/source-repo)
    • Destination GitHub Repo URL: Where the obfuscated code will be pushed (e.g., https://github.com/username/dest-repo)
    • GitHub Personal Access Token: Your GitHub PAT with repo permissions
    • Git Commit Username: Your GitHub username
    • Git Commit Email: Your GitHub email
  3. Click "Obfuscate & Push" and watch the magic happen!

  4. Monitor progress through the real-time progress tracker

Obfuscation Features

The obfuscator applies the following transformations:

  • βœ… Control Flow Flattening - Makes code flow harder to understand
  • βœ… Dead Code Injection - Adds confusing but harmless code
  • βœ… String Array Encoding - Encrypts strings using RC4 encoding
  • βœ… Code Compacting - Removes whitespace and formatting
  • βœ… Custom Banner - Adds "Powered by MR FRANK 😎" header

Files Excluded from Obfuscation

  • settings.js
  • config.js
  • Non-JavaScript files

🌐 Deployment

Deploy to Vercel (Recommended)

Deploy with Vercel

Manual Deployment

  1. Install Vercel CLI:
npm install -g vercel
  1. Deploy:
vercel
  1. Set Environment Variables (if needed) in Vercel Dashboard

Deploy to Heroku

heroku create your-app-name
git push heroku main

Deploy to Other Platforms

The application is compatible with:

  • Railway
  • Render
  • DigitalOcean App Platform
  • AWS Elastic Beanstalk
  • Google Cloud Run

πŸ”Œ API

POST /obfuscate

Obfuscates a GitHub repository and pushes it to a destination repository.

Request Body (application/x-www-form-urlencoded)

{
  "sourceRepo": "https://github.com/user/source",
  "destRepo": "https://github.com/user/destination",
  "token": "ghp_xxxxxxxxxxxx",
  "gitUser": "username",
  "gitEmail": "user@example.com"
}

Response (JSON)

Success:

{
  "success": true,
  "message": "Obfuscation complete and pushed to destination repo!"
}

Error:

{
  "success": false,
  "message": "Error: [error details]"
}

🎨 Customization

Modify Obfuscation Settings

Edit obfuscate.js to customize obfuscation parameters:

const obfuscationResult = JavaScriptObfuscator.obfuscate(code, {
  compact: true,
  controlFlowFlattening: true,
  deadCodeInjection: true,
  stringArray: true,
  stringArrayEncoding: ['rc4'],
  stringArrayThreshold: 0.75,
  // Add more options from javascript-obfuscator docs
});

Change Banner Text

Modify the banner in obfuscate.js:

const obfuscatedCode =
  (options.banner || '// Your Custom Banner\n') +
  obfuscationResult.getObfuscatedCode();

Customize UI Theme

Edit CSS variables in public/index.html:

:root {
  --bg-start: #0b1220;
  --bg-end: #251148;
  --primary: #7c3aed;
  --accent: #0ea5e9;
  /* Customize colors */
}

πŸ”’ Security Considerations

  • ⚠️ Never commit your .env file with sensitive tokens
  • ⚠️ Use GitHub tokens with minimal required permissions (only repo scope)
  • ⚠️ Tokens are processed in memory and never stored on disk
  • ⚠️ The app uses ephemeral storage (/tmp) for temporary repositories
  • ⚠️ HTTPS is enforced for all repository URLs
  • ⚠️ Force push is used - ensure destination repo is dedicated for obfuscated code

πŸ“š Advanced Usage

Run as a Module

You can use the obfuscator programmatically:

const obfuscateDirectory = require('./obfuscate');

obfuscateDirectory('/path/to/your/project', {
  banner: '// Custom banner text\n'
});

Exclude Additional Files

Modify the exclusion logic in obfuscate.js:

if (file === 'settings.js' || file === 'config.js' || file === 'yourfile.js') {
  console.log(`Skipping ${file}`);
  continue;
}

πŸ§ͺ Development

Project Structure

elitejsobfuscater/
β”œβ”€β”€ public/
β”‚   └── index.html          # Frontend UI
β”œβ”€β”€ obfuscate.js            # Obfuscation logic
β”œβ”€β”€ server.js               # Express server
β”œβ”€β”€ package.json            # Dependencies
β”œβ”€β”€ vercel.json             # Vercel configuration
└── README.md               # Documentation

Available Scripts

npm start       # Start production server
npm run dev     # Start development server with auto-reload

Adding Features

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ› Troubleshooting

Common Issues

Issue: Port already in use

# Solution: Change port in .env or kill process
PORT=8080 npm start

Issue: GitHub authentication failed

# Solution: Verify your PAT has 'repo' permissions
# Regenerate token at: https://github.com/settings/tokens

Issue: Obfuscation fails

# Solution: Check if source repo contains valid JavaScript files
# Ensure you have read access to source repo

πŸ“Š Performance

  • Processing Speed: ~100-500 files per minute (depends on file size)
  • Memory Usage: ~50-200MB during obfuscation
  • Supported File Size: Up to 10MB per JavaScript file
  • Concurrent Requests: Supports multiple simultaneous obfuscations

🀝 Contributing

Contributions are what make the open-source community amazing! Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Code of Conduct

Please be respectful and constructive in all interactions.

πŸ“„ License

Distributed under the MIT License. See LICENSE file for more information.

πŸ’– Support

If you find this project helpful, please consider:

  • ⭐ Starring the repository
  • πŸ› Reporting bugs
  • πŸ’‘ Suggesting new features
  • πŸ“– Improving documentation

πŸ‘¨β€πŸ’» Author

Mr Frank

Portfolio Website GitHub

Crafted with ❀️ and β˜• by Mr Frank

πŸ”— Related Projects

πŸ™ Acknowledgments

  • Thanks to the javascript-obfuscator team for the amazing obfuscation library
  • Inspired by the need for code protection in open-source projects
  • Built with passion for the developer community

⚑ Powered by JavaScript Obfuscator · Secured with ❀️

If you have any questions or need help, feel free to open an issue!

⬆ Back to Top

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •