Getting Started with VxLang
Download VxLang Binarys
The VxLang binaries are currently distributed through the Patreon platform.
Therefore, they can be downloaded from the VxLang Patreon page linked below.
Getting Ready for VxLang Project
The components of VxLang are as follows:
- Extensions
- Extension shell code for VxLang-Core.
- Plugins
- Plugin modules used in Obscurion and VxLang.
- SDKs
- SDKs for each programming language.
- Obscurion.exe
- A GUI project that configures VxLang project files.
- VxLang.exe
- A tool for binary packing, obfuscation, and code obfuscation.
- vxlang.vxm
- The license file.
The license key required to run VxLang can be obtained by subscribing on Patreon or by contacting the administrator. For VxLang to run properly, the *.exe file and the license file must be located in the same directory.
TIP
obscurion.exe
vxlang.exe
vxlang.vxm
When VxLang runs successfully, you will see the following output.
\:> vxlang.exe
/$$$____/$$$_/$$$____/$$$_$/$$$______/$$$$$$$$$____/$$/$$$$$$___/_/$$$$$$$_
$//$$$__/$$$_$///$$$/$$$/__$/$$$_____$////////$$$__$/$$$////$$$__/$$////$$$_
__$//$$$/$$$____$///$$$/____$/$$$_______/$$$$$$$$$$_$/$$$__$//$$-_/$$$$$$$$$_
____$//$$$$$______/$$$/$$$___$/$$$______/$$$/////$$$_$/$$$___$/$$__///////$$$_
______$//$$$_____/$$$/$///$$$_$/$$$$$$$_$//$$$$$$$$/__$/$$$___$/$$_/$$$$$$$$$__
________$///_____$///____$///__$///////___$////////$//_$///____$//__$////////__
ver.2.1.6.1
2025.06.22 16:21:02 About program..
2025.06.22 16:21:02 : Full-Version
2025.06.22 16:21:02 Project-Mode
2025.06.22 16:21:02 e.g. vxlang.exe --opt-project ${JSON-PATH}
2025.06.22 16:21:02 e.g. vxlang.exe --opt-project ${JSON-PATH} --disable-core
2025.06.22 16:21:02 CMD-Mode
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH}
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --backup
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --out ${OUT-PATH}
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --disable-packer
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --use-debug-data
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --disable-import-mutation
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --use-anti-tamper
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --opt-section-name ${NAME}
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --opt-entry
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --opt-fla-entry
2025.06.22 16:21:02 e.g. vxlang.exe ${SRC-PATH} --opt-message ${DETECT-MESSAGE}
2025.06.22 16:21:02 Temporary json project file created.
Checking the VxLang-Project File(JSON)
:\> vxlang.exe ${Windows-Binary}
e.g. vxlang.exe sample.exe
...
If no separate project file is specified, VxLang will generate the following temporary project file. The basic project file (JSON) configuration looks like this:
{
"input": "",
"output": "",
"backup": false,
"use-data-section": false,
"base-section-name": "",
"map-file-path": "",
"virtualizer": {
"entry-point": false,
"virtualization": [],
"dual-mode": [],
"multiple-virtual-machine": false
},
"obfuscator": {
"entry-point": false,
"obfuscation": [],
"flattening": []
},
"protector": {
"compress": true,
"symbol-data": true,
"mutate-import-table": true,
"vxlang-link-event": false,
"link-event-callback": "",
"extension": [],
"raw-data": [],
"anti-tamper": {
"enable": false,
"memory-protection": false,
"pause-protection": false,
"message": ""
},
"reflection": {
"enable": false,
"ldr-update": true
}
}
}
Each configuration looks like this:
- input
- This is the path to the target file.
- output
- This is the name of the output file.
If not specified, the destination filename will be appended to the output with vxm.
- e.g. input: sample.exe output: sample.vxm.exe
- This is the name of the output file.
If not specified, the destination filename will be appended to the output with vxm.
- backup
- This is whether the original file is backed up or not.
- use-data-section
- This is whether to recycle the data section. If this is true, add VxLang data to the data section without adding a section.
- base-section-name
- This is the base name to which the VxLang data is added.
- map-file-path
- This is the path to the MAP file.
- virtualizer
- This is a virtualization-specific option.
- entry-point
- This determines whether the program entry point is virtualized or not.
- virtualization
- This is an array of the function’s output information as written to the MAP file. Perform virtualization operations on the input functions in the array.
- dual-mode
- This is an array of the function’s output information as written to the MAP file. Perform dual-mode operations on the input functions in the array.
- multiple-virtual-machine
- If true, this will deploy multiple virtual machines.
- entry-point
- This is a virtualization-specific option.
- obfuscator
- This is an option related to obfuscation.
- entry-point
- This determines whether or not to obfuscate the program’s entry point.
- obfuscation
- This is an array of the function’s output information as written to the MAP file. Perform obfuscation operations on the input functions in the array.
- flattening
- This is an array of the function’s output information as written to the MAP file. Perform code-flattening operations on the input functions in the array.
- entry-point
- This is an option related to obfuscation.
- protector
- This is an option for binary protectors.
- compress
- This is whether the target program is compressed or not. If this is not set, only the VxLang core will be added.
- symbol-data
- This is whether debug symbols are enabled or disabled. If false, no debugging symbols are added.
- mutate-import-table
- This is whether or not to obfuscate for import-table.
- vxlang-link-event
- This is whether to connect to the callbacks that the user has registered, if using the VxLang SDK.
- link-event-callback
- The name of the user callback function, which must be registered with Export-Table.
- extension
- This is VxLang extension module.
- raw-data
- This is VxLang extension data.
- anti-tamper
- This is an option for anti-tamper.
- enable
- This indicates whether anti-tamper is enabled.
- memory-protection
- Indicates whether memory-protection is enabled for the feature.
- pause-protection
- This indicates whether process pause prevention is enabled or disabled.
- message
- This is the message that will be printed when detected. If this is not set, the message box will not be printed.
- enable
- This is an option for anti-tamper.
- reflection
- This indicates whether the process load location is reconfigured.
- enable
- This indicates whether the reflection feature is enabled.
- ldr-update
- This indicates whether or not to reconnect to the LDR.
- enable
- This indicates whether the process load location is reconfigured.
- compress
- This is an option for binary protectors.