/

Advanced Features

The ByteHide Shield desktop configurator offers several advanced features for power users who need more control over the protection process.


Package Installation Management

The desktop configurator can automatically install the ByteHide Shield integration package in your projects:

Auto-Installation

When the configurator detects a project without the Shield integration package:

  1. It displays a notification "Integration package not installed"
  2. You can click Install Package to add it to your project
  3. The installation happens automatically without needing to open Visual Studio

Package Installation

Manual Installation

If you prefer to manage packages manually:

  1. You can ignore the installation notification
  2. Install the package through Visual Studio's NuGet Package Manager
  3. Refresh the configurator to update its status

Global Configuration File

Unlike regular Shield configuration where each project (.csproj) requires its own shield.config.json file, the desktop configurator works by creating a single global configuration file at the solution level.

How It Works

  1. The configurator creates a file called bytehide.shield.global.json in the same directory as your .sln file
  2. This file contains configurations for all projects in your solution in one centralized place
  3. When building your solution, Shield will read the appropriate configuration for each project from this global file

Global Configuration Structure

The global configuration file uses the following format:

{
  "globalOptions": {
    "enabled": true,
    "throwOnError": true,
    "copyMagicKey": false
  },
  "projects": [
    {
      "Name": "Shield",
      "path": "Shield/Shield.csproj",
      "Preset": "custom",
      "Enabled": "true",
      "RunConfiguration": "Release",
      "Protections": {
        "invalid_metadata": null,
        "anti_dump": null,
        "constants_mutation": null,
        "resources": null
      },
      "Actions": {}
    },
    {
      "Name": "Shield.Client",
      "path": "Client/Client/Shield.Client.csproj",
      "Preset": "optimized",
      "Enabled": "true",
      "RunConfiguration": "Release",
      "Protections": {},
      "Actions": {}
    }
  ]
}

The file consists of two main sections:

  1. globalOptions: Settings that apply to all projects in the solution
  2. projects: An array of project-specific configurations, each including:
    • Name: The project name
    • path: The relative path to the project file
    • Preset, Enabled, and other settings following the same format as in Configuration Files

Advanced Manual Configuration

Some advanced options, particularly those related to signing, must be configured manually by editing the global configuration file:

  • Strong Name Signing Properties: For configuring SNK files for strong name signing
  • Enhanced Signing Properties: For additional signing features

The desktop configurator's UI currently does not support configuring signing options. To use these features, you must manually edit the bytehide.shield.global.json file following the same format described in the Configuration Files documentation.

For detailed information on all available configuration options and their formats, refer to the Configuration Files documentation. All configuration properties supported in individual project files are also supported in the global configuration file's project entries.


Next Steps

Protection Settings

Return to protection options

Configuration Workflow

Return to the configuration workflow

Configuration Files

Learn about all available configuration options

Previous
Protection Settings