New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sus-obfuscator

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sus-obfuscator

An epic javascript amogus-themed obfuscator

2.5.1
latest
Source
npm
Version published
Maintainers
1
Created
Source

haha funny amogus

sus obfuscator

An epic amogus themed javascript obfuscator. Written in typescript. And now rewritten to be actually good!

Why use sus?

Sus provides better obfuscation than other obfuscators. It might require trying the obfuscation with different configs, but its worth it. It uses lots of different obfuscation methods and is much harder to read then obfuscators like obfuscator.io. It is also much harder to deobfuscate then other obfuscators:

JsNice

image

dcode.fr

image

deog.sigr.io

image

codeamaze

Magages to eversoslightly prettify it, but code is still overall unreadable because of all the obfuscation methods used.

Dependencies

  • npm >= 8.19
  • node >= 17

It will probably work with lower versions too, but it is being developed and tested on these versions.

Installing

sus can be installed from NPM

npm install -g sus-obfuscator

Usage

The CLI usage is sus <args>

Arguments:

-i --input [file]        Input file
-o --output [file]       Output file
-c --config [file]       Specify a YAML config file (more about that later)
   --version             Prints version
-h --help                Shows help

YAML Config

The default configuration goes as follows:

# Schema for version 2.5.1
# yaml-language-server: $schema=https://pastebin.com/raw/kbsbQT7z

transforms:
    obfuscateNames: true
    obfuscateBooleans: true

    keyObfuscationLevel: 2
    stringObfLevel: 3
    numberObfLevel: 3

    extractStringsToArray: false
		addFakeStringsToArray: true

    ignore: []

    webMode: false
    noES2021Syntax: false

format:
    amogus:
        start: true
        end: false


    epicEndArt: true

    lineStart: true
    lineEnd: false

    removeEmptyLines: true
    shrink: false
    commentFrequency: 2


input:
    esVersion: 2023
    seed: '...' # This is generated randomly each run if you do not set it manually
    comments: [ 'uhh...' ] # By default the original comments I wrote back in 2020
Transforms

obfuscateNames:boolean - If names (variable names, function names, class names) should get renamed

obfuscateBooleans:boolean - If booleans should get obfuscated

keyObfuscationLevel:0~3 - How heavily to obfuscate keys of objects

stringObfLevel:0~3 - How heavily to obfuscate strings

numberObfLevel:0~3 - How heavily to obfuscate numbers

extractStringsToArray:boolean|"Random" - Obfuscate strings by extracting them to an array

addFakeStringsToArray:boolean - (If extractStringsToArray is enabled) add fake strings to the array

ignore:string[] - Which identifiers to ignore when obfuscating names

removeEmptyLines:boolean - Remove any potential empty lines from the result

shrink:boolean - Make the result be one line only

commentFrequency:0~3 - How frequent should random distractive comments be

webMode:boolean - Set this to true if you are obfuscating for the web

noES2021Syntax:boolean - Do not use syntax features new in ECMAScript 2021. Note that these are implemented in all modern browsers and runtimes, but break a ton of deobfuscators.

Format

amogus.start:boolean - Add amogus ascii art to the start of the code

amogus.end:boolean - Add amogus ascii art to the end of the code

epicEndArt:boolean - Add epic jerma sus ascii art to the end of the code

lineStart:boolean | string[] - Add sus or your string to the start of each line

lineEnd:boolean | string[] - Add sus or your string to the end of each line

Input

esVersion:number - The ECMAscript version of your JS source code

seed:string - Seed for the random number generator

comments:string[] - Comments to randomly insert into the obfuscated code (Note that the default comments feature the u+202E character, you might want to add that to your comments as well just because funny)

Contributing

If you know how to fix any issue or improve anything, please contribute.

Issues

There are some issues. If you find any, plese put them to the issues tab. I may or may not be working on fixing them. It is recomended to test your obfuscated code before releasing it.

Contact

If you have any questions, or need support, you can contact me here (sorted from most to least preffered):

  • danik#4985
  • @danik4985:matrix.org
  • susdanik

License

sus obfuscator - sussify your javascript!
Copyright (C) 2023 danik

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Keywords

javascript

FAQs

Package last updated on 26 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts