Update amtinfo, usage and admin check. General code cleanup and bug fixes.

This commit is contained in:
Mudit Vats
2020-10-30 09:51:18 -07:00
parent eb42f1e89d
commit 6d2e37e7fc
13 changed files with 434 additions and 148 deletions

View File

@@ -10,41 +10,62 @@
void usage_show_help()
{
std::cout << "Usage: " << PROJECT_NAME << " --help | --version | --info <item> | --url <url> --cmd <command> [--proxy <addr>] [--dns <dns>]" << std::endl;
std::cout << "Required:" << std::endl;
std::cout << " -u, --url <url> websocket server" << std::endl;
std::cout << " -c, --cmd <command> server command" << std::endl;
std::cout << "Optional:" << std::endl;
std::cout << " -x, --proxy <addr> proxy address and port" << std::endl;
std::cout << " -d, --dns <dns> dns suffix" << std::endl;
std::cout << "Informational:" << std::endl;
std::cout << " -h, --help this help text" << std::endl;
std::cout << " -v, --version version" << std::endl;
std::cout << " -i, --info <item> info on an <item>" << std::endl;
std::cout << std::endl;
std::cout << "Info <item>:" << std::endl;
std::cout << " all all items" << std::endl;
std::cout << " ver bios version" << std::endl;
std::cout << " build build number" << std::endl;
std::cout << " sku product sku" << std::endl;
std::cout << " uuid unique identifier" << std::endl;
std::cout << " mode current control mode {0=none, 1=client, 2=admin}" << std::endl;
std::cout << " dns domain name suffix" << std::endl;
std::cout << " mac wired MAC address" << std::endl;
std::cout << " cert certificate hashes" << std::endl;
std::cout << std::endl;
std::cout << "Examples:" << std::endl;
std::cout << " " << PROJECT_NAME << " --url wss://localhost:8080 --cmd \"-t activate --profile profile1\"" << std::endl;
std::cout << " " << PROJECT_NAME << " -u wss://localhost:8080 -c \"-t deactivate --password P@ssw0rd\" -x http://proxy.com:1000" << std::endl;
std::cout << " " << PROJECT_NAME << " -u wss://localhost:8080 -c \"-e [encrypted-command-text] -h [signature-hash]\"" << std::endl;
std::cout << std::endl;
std::cout << "Note:" << std::endl;
std::cout << " Since <command> can contain multiple options and arguments, the entire <command> must be in quotes as shown" << std::endl;
std::cout << " in the examples." << std::endl;
// 80 chars "01234567890123456789012345678901234567890123456789012345678901234567890123456789"
std::cout << "Usage: " << std::endl;
std::cout << " " << PROJECT_NAME << " <required> [optional]" << std::endl;
std::cout << " " << PROJECT_NAME << " <informational>" << std::endl;
std::cout << std::endl;
std::cout << "Required:" << std::endl;
std::cout << " -u, --url <url> websocket server" << std::endl;
std::cout << " -c, --cmd <command> server command" << std::endl;
std::cout << std::endl;
std::cout << " Since <command> can contain multiple options and arguments, the entire" << std::endl;
std::cout << " <command> must be in quotes. Please see examples below." << std::endl;
std::cout << std::endl;
std::cout << "Optional:" << std::endl;
std::cout << " -p, --proxy <addr> proxy address and port" << std::endl;
std::cout << " -d, --dns <dns> dns suffix override" << std::endl;
std::cout << " -v, --verbose verbose output" << std::endl;
std::cout << std::endl;
std::cout << "Informational:" << std::endl;
std::cout << " --help this help text" << std::endl;
std::cout << " --version version" << std::endl;
std::cout << " --amtinfo <item> AMT info on an <item>" << std::endl;
std::cout << std::endl;
std::cout << "Item:" << std::endl;
std::cout << " all all items" << std::endl;
std::cout << " ver BIOS version" << std::endl;
std::cout << " bld build number" << std::endl;
std::cout << " sku product SKU" << std::endl;
std::cout << " uuid unique identifier" << std::endl;
std::cout << " mode current control mode" << std::endl;
std::cout << " dns domain name suffix" << std::endl;
std::cout << " cert certificate hashes" << std::endl;
std::cout << " ras remote access status" << std::endl;
std::cout << " lan LAN settings" << std::endl;
std::cout << std::endl;
std::cout << "Examples:" << std::endl;
std::cout << " # Activate platform using profile1" << std::endl;
std::cout << " " << PROJECT_NAME << \
" --url wss://localhost:8080 --cmd \"-t activate --profile profile1\"" << std::endl;
std::cout << std::endl;
std::cout << " # Activate platform using profile1 and override DNS detection" << std::endl;
std::cout << " " << PROJECT_NAME << \
" --url wss://localhost:8080 --cmd \"-t activate --profile profile1\" --dns corp.com" << std::endl;
std::cout << std::endl;
std::cout << " # Deactivate platform and connect through a proxy" << std::endl;
std::cout << " " << PROJECT_NAME << \
" -u wss://localhost:8080 -c \"-t deactivate --password P@ssw0rd\" -p http://proxy.com:1000" << std::endl;
std::cout << std::endl;
std::cout << " # Show all informational items" << std::endl;
std::cout << " " << PROJECT_NAME << " --amtinfo all" << std::endl;
}
void usage_show_version()
{
std::cout << PROJECT_NAME << " " << PROJECT_VER << std::endl;
std::cout << "protocol " << PROTOCOL_VERSION << std::endl;
std::string project_name = PROJECT_NAME;
for (auto& c : project_name) c = toupper(c); // get upper case string
std::cout << project_name << " " << PROJECT_VER << "." << std::endl;
std::cout << "Protocol " << PROTOCOL_VERSION << "." << std::endl;
}