Usage

The MultLdr CLI client is a command-line tool that allows users to interact with the MultLdr server. The MultLdr CLI client provides the following commands:

help

To get help on the available commands, run the following command:

$ multldr-cli help
NAME:
   MultLdr CLI client - A new cli application

USAGE:
   MultLdr CLI client [global options] command [command options] 

COMMANDS:
   plugs    Retrieve list of plugins present
   gen      Generates loader with the options provided
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h  show help

$

plugs

The plugs command retrieves the list of plugins present in the system. To get the options for the plugs command, run the following command:

$ multldr-cli plugs --help
NAME:
   MultLdr CLI client plugs - Retrieve list of plugins present

USAGE:
   MultLdr CLI client plugs [command options]

OPTIONS:
   --server IP, -s IP    Use provided IP for the MultLdr server (default: 127.0.0.1)
   --port PORT, -p PORT  Use provided PORT for the MultLdr server (default: 5000)
   --help, -h            show help
$

Example

gen

The gen command generates a loader with the options provided. To get the options for the gen command, run the following command:

$ multldr-cli gen --help
NAME:
   MultLdr CLI client gen - Generates loader with the options provided

USAGE:
   MultLdr CLI client gen [command options]

OPTIONS:
   --server IP, -s IP      Use provided IP for the MultLdr server (default: 127.0.0.1)
   --port PORT, -p PORT    Use provided PORT for the MultLdr server (default: 5000)
   --config FILE, -c FILE  Load configuration from FILE (optional)
   --bin FILE, -b FILE     Use payload binary from FILE
   --help, -h              show help
$

Interactive Mode

The gen command by default runs in interactive mode. In interactive mode, the user is prompted to select the options for the loader. When all the options are selected, the user is prompted if they want to save the configuration to a file and then the loader is generated.

Example

Configuration File

The gen command also supports loading the configuration from a file. The configuration file is a JSON file that contains the options for the loader. The configuration file should have the following format:

{
    "execution": [
        "<execution_option_1>",
    ],
    "keying": [
        "<keying_option_1>",
        "<keying_option_2>"
    ],
    "payload_mods": [
        "<payload_mod_option_1>",
        "<payload_mod_option_2>",
        "<payload_mod_option_3>"
    ],
    "post_comp": [
        "<post_comp_option_1>",
        "<post_comp_option_2>"
    ],
    "pre_comp": [
        "<pre_comp_option_1>",
        "<pre_comp_option_2>"
    ]
}

The following is an example of a configuration file:

{
    "execution": [
        "/execution/local/FPointer"
    ],
    "keying": [
        "/keying/debug/IsDebuggerPresent1",
        "/keying/sandbox/CPUCycles",
        "/keying/sandbox/Storage"
    ],
    "payload_mods": [
        "/payload_mods/encryption/AES",
        "/payload_mods/encryption/XOR",
        "/payload_mods/encryption/CTAES"
    ],
    "post_comp": [
        "/post_comp/legitemacy/FileBloating",
        "/post_comp/legitemacy/SelfSign"
    ],
    "pre_comp": [
        "/pre_comp/IATHiding/APIHashing",
        "/pre_comp/entropy/WordStuffing"
    ]
}

Example