qProtect 2.0

Unrated

qProtect 2.0 Obfuscator

Starting at
$15

Available Plans

Monthly 30 Days Access
$15
Yearly 365 Days Access
$100
qProtect Obfuscator 2.0

qProtect Obfuscator 2.0

The most advanced Java and Android obfuscator, now with Virtualization!

Developed by brownie, vaz, and Mystery

Core Features

Standard Java methods transformed into private instruction sets via custom VM.

config.toml
# Input and output JAR paths
input = "input.jar"  # Path to the JAR file to be obfuscated.
output = "output.jar"  # Path to save the obfuscated JAR file.

# Java runtime configuration
projectJavaVersion = 8  # Available versions: 8, 9, 11, 17, 21, 23

# Dictionary configuration
dictionary = "qprotect" 
customDictionaryPath = "dictionary.txt"
minimumDictionaryLength = 1

# Libraries
libraries = [
    "C:\\Users\\brownie\\Desktop\\myLib.jar",
    "C:\\Users\\brownie\\Desktop\\qprotect-lib",
]

# Exclusions and inclusions
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

# Transformer-specific configurations

[transformerConfiguration.stringEncryptionConfig]
enabled = false
splitStrings = false
aesEncryption = false
firstKeySize = 16
secondKeySize = 32
encryptAESKey = false
polymorphicEncryption = false
poolEncryption = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.arithmeticTransformerConfig]
enabled = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.numberEncryptionConfig]
enabled = false
encryptNumbers = false
poolNumbers = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.localsTransformerConfig]
enabled = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.referenceEncryptionConfig]
enabled = false
encryptMethodReferences = false
encryptFieldReferences = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.flowTransformerConfig]
enabled = false
replaceSystemExit = false
flattening = false
variableTransformer = false
blockSplitter = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.renamerTransformerConfig]
enabled = false
dumpMappings = false 
renamePackages = false
randomizePackages = false
packageName = "qprotect"
renameClasses = true
renameFields = false
renameMethods = false
renameLocalVariables = false
excludedFields = ["myField"]
excludedMethods = ["myMethod"]
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.debugStripperConfig]
enabled = false
stripSourceDebug = false
stripSourceFile = false
stripLineNumbers = false
stripLocalVariables = false
stripExceptions = false
removeKotlinMetadata = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.shuffleTransformerConfig]
enabled = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.accessTransformerConfig]
enabled = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]

[transformerConfiguration.constantUnfinalizerConfig]
enabled = false
exclusions = ["com.example.MyTestClass"]
inclusions = ["com.example.IncludedClass"]