Standard Java methods transformed into private instruction sets via custom VM.
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
The most advanced Java and Android obfuscator, now with Virtualization!
Developed by brownie, vaz, and Mystery
Core Features
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"]