From 9f7d53dab3942d733c1225249908a645f69b656e Mon Sep 17 00:00:00 2001 From: TheTank20 <57580668+thepwrtank18@users.noreply.github.com> Date: Wed, 18 Jun 2025 21:08:02 -0500 Subject: [PATCH 1/5] Update cli.cpp --- src/cli.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cli.cpp b/src/cli.cpp index 1401392..c66f2d3 100644 --- a/src/cli.cpp +++ b/src/cli.cpp @@ -71,7 +71,8 @@ void CLI::showHelp(char *argv[]) { fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n"); fmt::print("\t-V --validate\tproduct key to validate signature\n"); fmt::print("\t-N --nonewlines\tdisables newlines (for easier embedding in other apps)\n"); - fmt::print("\t-o --override\tDisables version check for confirmation ID's, if you need this send an issue on GitHub"); + fmt::print("\t-o --override\tDisables version check for confirmation IDs, if you need this send an issue on GitHub"); + fmt::print("\t-D --nodashes\tDisables dashes in product keys (for easier copy-pasting)"); fmt::print("\n"); } @@ -94,6 +95,7 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) { false, false, false, + false, MODE_BINK1998_GENERATE, WINDOWS }; @@ -214,6 +216,8 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) { options->nonewlines = true; } else if (arg == "-o" || arg == "--override") { options->overrideVersion = true; + } else if (arg == "-D" || arg == "--nodashes") { + options->nodashes = true; } else { options->error = true; } @@ -327,7 +331,11 @@ void CLI::printID(DWORD *pid) { void CLI::printKey(char *pk) { assert(strlen(pk) >= PK_LENGTH); - + std::string keyFormat = "{}-{}-{}-{}-{}"; + if (this->options.nodashes == true) { + keyFormat = "{}{}{}{}{}"; + } + std::string spk = pk; fmt::print("{}-{}-{}-{}-{}", spk.substr(0,5), From 6ecf9c53096b2b77c7ba9afa8900d4cb5d3dc4a3 Mon Sep 17 00:00:00 2001 From: TheTank20 <57580668+thepwrtank18@users.noreply.github.com> Date: Wed, 18 Jun 2025 21:09:15 -0500 Subject: [PATCH 2/5] Update cli.h --- src/cli.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cli.h b/src/cli.h index 19a4a1f..f442941 100644 --- a/src/cli.h +++ b/src/cli.h @@ -69,6 +69,7 @@ struct Options { bool list; bool nonewlines; bool overrideVersion; + bool nodashes; MODE applicationMode; ACTIVATION_ALGORITHM activationMode; From e07c080ee84dc2bc0d000bdd38531be1f7821168 Mon Sep 17 00:00:00 2001 From: TheTank20 <57580668+thepwrtank18@users.noreply.github.com> Date: Wed, 18 Jun 2025 21:18:11 -0500 Subject: [PATCH 3/5] Update cli.h --- src/cli.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli.h b/src/cli.h index f442941..178f063 100644 --- a/src/cli.h +++ b/src/cli.h @@ -94,7 +94,7 @@ public: static int parseCommandLine(int argc, char* argv[], Options *options); static int validateCommandLine(Options* options, char *argv[], json *keys); static void printID(DWORD *pid); - static void printKey(char *pk); + void printKey(char *pk); static bool stripKey(const char *in_key, char out_key[PK_LENGTH]); int BINK1998Generate(); From 6ae46d6aa2d3f4c1cad7845b381fd9066653f06f Mon Sep 17 00:00:00 2001 From: TheTank20 <57580668+thepwrtank18@users.noreply.github.com> Date: Wed, 18 Jun 2025 21:24:37 -0500 Subject: [PATCH 4/5] duh --- src/cli.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cli.cpp b/src/cli.cpp index c66f2d3..ce90fd9 100644 --- a/src/cli.cpp +++ b/src/cli.cpp @@ -71,7 +71,7 @@ void CLI::showHelp(char *argv[]) { fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n"); fmt::print("\t-V --validate\tproduct key to validate signature\n"); fmt::print("\t-N --nonewlines\tdisables newlines (for easier embedding in other apps)\n"); - fmt::print("\t-o --override\tDisables version check for confirmation IDs, if you need this send an issue on GitHub"); + fmt::print("\t-o --override\tDisables version check for confirmation IDs, if you need this send an issue on GitHub\n"); fmt::print("\t-D --nodashes\tDisables dashes in product keys (for easier copy-pasting)"); fmt::print("\n"); } @@ -332,12 +332,13 @@ void CLI::printID(DWORD *pid) { void CLI::printKey(char *pk) { assert(strlen(pk) >= PK_LENGTH); std::string keyFormat = "{}-{}-{}-{}-{}"; + if (this->options.nodashes == true) { keyFormat = "{}{}{}{}{}"; } std::string spk = pk; - fmt::print("{}-{}-{}-{}-{}", + fmt::print(keyFormat, spk.substr(0,5), spk.substr(5,5), spk.substr(10,5), From 324688e9efe549f3d911eaf06d578d4f28a80e0b Mon Sep 17 00:00:00 2001 From: TheTank20 <57580668+thepwrtank18@users.noreply.github.com> Date: Wed, 18 Jun 2025 21:33:07 -0500 Subject: [PATCH 5/5] Update cli.cpp --- src/cli.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/cli.cpp b/src/cli.cpp index ce90fd9..cee5c05 100644 --- a/src/cli.cpp +++ b/src/cli.cpp @@ -72,7 +72,7 @@ void CLI::showHelp(char *argv[]) { fmt::print("\t-V --validate\tproduct key to validate signature\n"); fmt::print("\t-N --nonewlines\tdisables newlines (for easier embedding in other apps)\n"); fmt::print("\t-o --override\tDisables version check for confirmation IDs, if you need this send an issue on GitHub\n"); - fmt::print("\t-D --nodashes\tDisables dashes in product keys (for easier copy-pasting)"); + fmt::print("\t-D --nodashes\tDisables dashes in product keys and confirmation IDs (for easier copy-pasting)"); fmt::print("\n"); } @@ -600,7 +600,17 @@ int CLI::ConfirmationID() { return 1; case SUCCESS: - fmt::print(confirmation_id); + if (this->options.nodashes == true) { + int j = 0; + for (int i = 0; confirmation_id[i] != '\0'; ++i) { + if (confirmation_id[i] != '-') { + confirmation_id[j++] = confirmation_id[i]; + } + } + confirmation_id[j] = '\0'; + } + fmt::print(confirmation_id); + if (this->options.nonewlines == false) { fmt::print("\n"); }