import{_ as r,o as p,c,a as s,b as a,e,d as i,r as l}from"./app.fe610a35.js";const t={},d=s("h1",{id:"configuration-options",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#configuration-options","aria-hidden":"true"},"#"),e(" Configuration Options")],-1),h=s("h2",{id:"introduction",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#introduction","aria-hidden":"true"},"#"),e(" Introduction")],-1),u=e("zProtect uses the "),m={href:"https://en.wikipedia.org/wiki/YAML",target:"_blank",rel:"noopener noreferrer"},D=e("YAML"),v=e(" data serialization language for configuring the behavior of the zProtect obfuscator. It is possible to hand-write the configuration file to upload on the web interface, however, you may wish to use the configurator tool in the zProtect dashboard area."),y=i(`
There are a few value types used in the zProtect configuration, which are listed below.
Only accepts true
and false
as the value.
For example:
# A key with value as true
key1: true
# A key with value as false
key2: false
Accepts any text character.
For example:
# A key with a string value
key: value
A list of strings
, separated by a newline and prefixed with a dash.
For example:
# An array with entries
key:
- something
- another thing
# An empty array
empty: []
A string array
with a boolean
value enabled
.
For example:
# Option enabled
key:
enabled: true
A string array
with a boolean
key enabled
and a string
key path
.
For example:
# Option enabled
key:
enabled: true
path: something
These options specify runtime information and general configuration.
Name of the obfuscated JAR file.
Value type: string
Dependencies required to obfuscate your jar to prevent "Not found" errors.
Value type: string array
Class files and directories that should be ignored by the obfuscator. They will not have any obfuscation applied to them.
Value type: string array
Note
Transformer priority will fix this in the future.
Class files and directories that should be blacklisted by the obfuscator before processing. This will prevent issues with exclusions if the regular exclusions fail for some unknown reason.
Value type: string array
Adds a watermark to the obfuscated JAR for advertisement. Only removable for users with a Commercial License.
Value type: boolean
These options specify wherether to enable available obfuscation techniques.
`,42),b={id:"antidebug",tabindex:"-1"},f=s("a",{class:"header-anchor",href:"#antidebug","aria-hidden":"true"},"#",-1),C=e(" AntiDebug "),g=s("div",{class:"custom-container tip"},[s("p",{class:"custom-container-title"},"Warning!"),s("p",null,"This option may cause issues with certain programs.")],-1),x=s("p",null,"Blocks debugging options on terminal.",-1),_=s("p",null,[e("Value type: "),s("a",{href:"#simple-option"},[s("code",null,"simple option")])],-1),k={id:"decompilercrasher",tabindex:"-1"},w=s("a",{class:"header-anchor",href:"#decompilercrasher","aria-hidden":"true"},"#",-1),A=e(" DecompilerCrasher "),R=i(`Warning!
This option is very buggy at the moment and will likely cause problems. You are strongly advised not to use this.
Manipulates instructions to crash decompilers.
Value type: simple option
Manipulates annotations to break bad decompilers. This should not cause any major issues.
Value type: simple option
Adds fake jumps, and such to code.
Value type: simple option
Renames various components of your jar's contents.
Renames class files.
Value type: option with path
Renames field names.
Value type: simple option
Renames local variables.
Value type: simple option
Renames methods.
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Value type: simple option
Below is a fully functional example configuration file with some zProtect transformers enabled and some disabled.
# Blocks debugging options on terminal, may cause issues with certain programs.
AntiDebug:
enabled: false
# Manipulates instructions to crash decompilers. Currently very buggy at the moment and will likely cause problems.
# Strongly advised not to use this.
DecompilerCrasher:
enabled: false
# Manipulates annotations to break bad decompilers.
# This should not cause any major issues with Spigot jars.
BadAnnotationCrasher:
enabled: true
# Adds fake jumps, and such to code.
Flow:
enabled: false
# Renames various components of your jar's contents.
# Renames class files.
ClassRenamer:
enabled: false
path: ""
# Renames field names.
FieldRenamer:
enabled: false
# Renames local variables.
LocalVariableRenamer:
enabled: false
# Renames methods.
MethodRenamer:
enabled: false
# Optimization
EnumOptimiser:
enabled: false
FinalRemover:
enabled: false
HideClassMembers:
enabled: false
InsnRemover:
enabled: false
KotlinMetadataRemover:
enabled: false
NOPInsnRemover:
enabled: false
RemoveSignatures:
enabled: false
# Poolers
NumberPooler:
enabled: false
StringPooler:
enabled: false
# Shrinking
LineNumberRemover:
enabled: false
LocalVariableRemover:
enabled: false
RemoveInnerClasses:
enabled: false
SourceDebugRemover:
enabled: false
SourceFileRemover:
enabled: false
# Shufflers
ShuffleFields: false
ShuffleMethods: false
ShuffleClasses: false