General Configuration
General and top-level configurations.
Name of Import and Stub Binary
This option allows you to specify the name of the import library and the stub DLL.
The name must be an alphanumeric string without any special characters and ends with .dll
.
The path names (such as MyApp/stub.dll
) are not supported.
{
"import_name": "stub.dll"
}
Stripping Imports from the Binary
This option allows you to specify whether or not to strip the imports from the binary.
This option is currently ignored and true
by default.
{
"protect_import": true
}
Destroy the Export from the Binary
This option allows you to specify whether or not to destroy the export from the binary.
This option is useful when the application executable has unused exports and you do not want to expose in distributed binary format. Applying this option for the export DLLs will make the binary broken at runtime.
{
"destroy_export": true
}
Removing Rich Header
See Removing Rich Header for more information how to remove rich header in the pipeline instead of relying on the Avaritia capability.
This option allows you to specify whether or not to emit the rich header from the binary.
The rich header is a data structure in the PE file format that is used by the MSVC linker to store information about the build environment. The rich header is kind of fingerprint to purposely track the cyber threat actors and it does not used by Windows loader. Removing rich header will make the produced binary less identifiable.
While Avaritia producer will ignore this option when there are no rich header in the binary since this is really specific to MSVC linker. If your application is under the Clang (LLD), GCC, MinGW, etc., (the toolchains that does not rely on the MSVC linker) this option will not affect the binary.
{
"remove_rich_header": true
}
Singleton Instance
This feature is currently under development.
This option allows you to specify whether or not to enforce the singleton instance for the application.
null
(default): No singleton.ApplicationScope
: Only one instance of the process is allowed.ProductScope
: Only one instance of the process protected with this product is allowed.
{
"singleton": "ApplicationScope"
}