New keys.json format for CIDs, new way to display CIDs, Found actual valid CIDs

This commit is contained in:
El-Virus 2023-10-08 21:29:51 +02:00
parent 5fc8603bcb
commit cecd7555c6
2 changed files with 258 additions and 65 deletions

270
keys.json
View File

@ -1,160 +1,318 @@
{ {
"Products": { "Products": {
"Windows CE Platform Builder 3": { "Windows CE Platform Builder 3": {
"BINK": ["00", "01", "0E", "0D", "0F"] "BINK": {
"00": {},
"01": {},
"0E": {},
"0D": {},
"0F": {}
}
}, },
"Windows CE .Net Platform Builder 4": { "Windows CE .Net Platform Builder 4": {
"BINK": ["00", "01"] "BINK": {
"00": {},
"01": {}
}
}, },
"Windows 98 (all)": { "Windows 98 (all)": {
"BINK": ["02","03"] "BINK": {
"02": {},
"03": {}
}
}, },
"Office 2000": { "Office 2000": {
"BINK": ["04", "05"] "BINK": {
"04": {},
"05": {}
}
}, },
"Internet Security and Acceleration (ISA) Server 2004": { "Internet Security and Acceleration (ISA) Server 2004": {
"BINK": ["06", "07"] "BINK": {
"06": {},
"07": {}
}
}, },
"PLUS! for Windows XP": { "PLUS! for Windows XP": {
"BINK": ["08", "09"] "BINK": {
"08": {},
"09": {}
}
}, },
"Windows 2000 Server (all)": { "Windows 2000 Server (all)": {
"BINK": ["0A", "13"] "BINK": {
"0A": {},
"13": {}
}
}, },
"Office Communicator 2007": { "Office Communicator 2007": {
"BINK": ["0C", "0D"] "BINK": {
"0C": {},
"0D": {}
}
}, },
"Windows Embedded POSReady 2009": { "Windows Embedded POSReady 2009": {
"BINK": ["0D", "0D"] "BINK": {
"0D": {},
"0D": {}
}
}, },
"Windows CE .Net Platform Builder 5": { "Windows CE .Net Platform Builder 5": {
"BINK": ["0D", "0D"] "BINK": {
"0D": {},
"0D": {}
}
}, },
"Commerce Server 2002": { "Commerce Server 2002": {
"BINK": ["0E", "0F"] "BINK": {
"0E": {},
"0F": {}
}
}, },
"Windows 2000 Professional": { "Windows 2000 Professional": {
"BINK": ["12", "13"] "BINK": {
"12": {},
"13": {}
}
}, },
"Office for Mac 2004 / 2008": { "Office for Mac 2004 / 2008": {
"BINK": ["18", "19"] "BINK": {
"18": {},
"19": {}
}
}, },
"Windows ME": { "Windows ME": {
"BINK": ["1C", "1D"] "BINK": {
"1C": {},
"1D": {}
}
}, },
"Office XP Applications": { "Office XP Applications": {
"BINK": ["20", "21"] "BINK": {
"20": {},
"21": {}
}
}, },
"Works Suite 2003 and 2004": { "Works Suite 2003 and 2004": {
"BINK": ["20", "21"] "BINK": {
"20": {},
"21": {}
}
}, },
"Office XP": { "Office XP": {
"BINK": ["22", "23"] "BINK": {
"22": {},
"23": {}
}
}, },
"Visual Studio .Net / .Net 2003": { "Visual Studio .Net / .Net 2003": {
"BINK": ["24", "25"] "BINK": {
"24": {},
"25": {}
}
}, },
"Windows XP Professional Evaluation": { "Windows XP Professional Evaluation": {
"BINK": ["28", "29"] "BINK": {
"28": {},
"29": {}
}
}, },
"Windows XP Home": { "Windows XP Home": {
"BINK": ["2A", "2B"] "BINK": {
"2A": {},
"2B": {}
}
}, },
"Windows XP Pro": { "Windows XP Pro": {
"BINK": ["2C", "2D"], "BINK": {
"CID": { "2C": {
"OEM": "90, 113, 119", "Retail": [[5, 90], [95, 99], [114, 116], [311, 334], 336, [370, 385], [755, 779], [785, 789]],
"Retail": "[5, 90] U [95, 100] U [114, 116] U [120, 269] U [271, 366] U [370 U 385] U [400, 665] U [667, 799] U [803, 979]", "TablePC": [111, 112, [337, 369]]
"TablePC": "111, 112, [337, 369]" },
"2D": {
"OEM": [[100, 110], 114, [120, 269], [271, 336], [370, 665], [667, 754], [780, 799], [803, 979]],
"OEM-SLP": [90, 113, 119]
}
} }
}, },
"Windows XP Pro IA-64": { "Windows XP Pro IA-64": {
"BINK": ["2C", "2D"] "BINK": {
"2C": {},
"2D": {}
}
}, },
"Windows XP Pro VLK": { "Windows XP Pro VLK": {
"BINK": ["2E", "2F"] "BINK": {
"2E": {},
"2F": {}
}
}, },
"Windows XP Fundamentals for Legacy PCs": { "Windows XP Fundamentals for Legacy PCs": {
"BINK": ["2E", "2F"] "BINK": {
"2E": {},
"2F": {}
}
}, },
"Windows XP Professional K": { "Windows XP Professional K": {
"BINK": ["30", "31"] "BINK": {
"30": {},
"31": {}
}
}, },
"Windows XP Starter Edition": { "Windows XP Starter Edition": {
"BINK": ["32", "33"] "BINK": {
"32": {},
"33": {}
}
}, },
"Windows Longhorn (6.0.3683.0 -> 6.0.4029.0)": { "Windows Longhorn (6.0.3683.0 -> 6.0.4029.0)": {
"BINK": ["40", "41"] "BINK": {
"40": {},
"41": {}
}
}, },
"Halo: Combat Evolved": { "Halo: Combat Evolved": {
"BINK": ["50", "51"] "BINK": {
"50": {},
"51": {}
}
}, },
"Halo: Custom Edition": { "Halo: Custom Edition": {
"BINK": ["50", "51"] "BINK": {
"50": {},
"51": {}
}
}, },
"Visual Studio 2005": { "Visual Studio 2005": {
"BINK": ["52", "53"] "BINK": {
"52": {},
"53": {}
}
}, },
"Plus! Digital Media Edition for Windows XP": { "Plus! Digital Media Edition for Windows XP": {
"BINK": ["52", "53"] "BINK": {
"52": {},
"53": {}
}
}, },
"Windows Longhorn (6.0.4033.0)": { "Windows Longhorn (6.0.4033.0)": {
"BINK": ["54", "55"] "BINK": {
"54": {},
"55": {}
}
}, },
"Windows Server 2003": { "Windows Server 2003": {
"BINK": ["54", "55", "58", "59"] "BINK": {
"54": {},
"55": {},
"58": {},
"59": {}
}
}, },
"Windows Server 2003 VLK": { "Windows Server 2003 VLK": {
"BINK": ["5A", "5B"] "BINK": {
"5A": {},
"5B": {}
}
}, },
"Windows XP Pro 64 Bit Edition VLK": { "Windows XP Pro 64 Bit Edition VLK": {
"BINK": ["64", "65"] "BINK": {
"64": {},
"65": {}
}
}, },
"Windows XP Pro 64 Bit Edition": { "Windows XP Pro 64 Bit Edition": {
"BINK": ["66", "67"], "BINK": {
"CID": { "66": {
"Retail": "[306, 370]", "Retail": [[306, 370]],
"TablePC": "[371, 410]" "TablePC": [[371, 410]]
},
"67": {
"OEM": [[5, 118]]
}
} }
}, },
"Windows Server 2003 64 Bit": { "Windows Server 2003 64 Bit": {
"BINK": ["68", "69", "6C", "6D"] "BINK": {
"68": {},
"69": {},
"6C": {},
"6D": {}
}
}, },
"Windows Server 2003 64 Bit VLK": { "Windows Server 2003 64 Bit VLK": {
"BINK": ["68", "69", "6C", "6D"] "BINK": {
"68": {},
"69": {},
"6C": {},
"6D": {}
}
}, },
"Office 2003 Applications": { "Office 2003 Applications": {
"BINK": ["6E", "6F"] "BINK": {
"6E": {},
"6F": {}
}
}, },
"Office 2003 Small Business": { "Office 2003 Small Business": {
"BINK": ["70", "71"] "BINK": {
"70": {},
"71": {}
}
}, },
"Office 2003 Student and Teacher": { "Office 2003 Student and Teacher": {
"BINK": ["70", "71"] "BINK": {
"70": {},
"71": {}
}
}, },
"Office 2003 Professional": { "Office 2003 Professional": {
"BINK": ["72", "73"] "BINK": {
"72": {},
"73": {}
}
}, },
"Windows Longhorn (6.0.4039.0 -> Pre PIDGENX)": { "Windows Longhorn (6.0.4039.0 -> Pre PIDGENX)": {
"BINK": ["74", "75"] "BINK": {
"74": {},
"75": {}
}
}, },
"Identity Lifecycle Manager 2007": { "Identity Lifecycle Manager 2007": {
"BINK": ["78", "79"] "BINK": {
"78": {},
"79": {}
}
}, },
"Visual Studio 2008": { "Visual Studio 2008": {
"BINK": ["78", "79"] "BINK": {
"78": {},
"79": {}
}
}, },
"Office 2007 Applications": { "Office 2007 Applications": {
"BINK": ["7E", "7F"] "BINK": {
"7E": {},
"7F": {}
}
}, },
"Office 2007 Basic / Small Business": { "Office 2007 Basic / Small Business": {
"BINK": ["80", "81"] "BINK": {
"80": {},
"81": {}
}
}, },
"Office 2007 Standard / Professional / Ultimate / Enterprise": { "Office 2007 Standard / Professional / Ultimate / Enterprise": {
"BINK": ["82", "83"] "BINK": {
"82": {},
"83": {}
}
}, },
"Office 2007 Home & Student": { "Office 2007 Home & Student": {
"BINK": ["88", "89"] "BINK": {
"88": {},
"89": {}
}
} }
}, },
"BINK": { "BINK": {

View File

@ -65,7 +65,7 @@ void CLI::showHelp(char *argv[]) {
fmt::print("\t-m --mode\tproduct family to activate.\n\t\t\tvalid options are \"WINDOWS\", \"OFFICEXP\", \"OFFICE2K3\", \"OFFICE2K7\" or \"PLUSDME\"\n\t\t\t(defaults to \"WINDOWS\")\n"); fmt::print("\t-m --mode\tproduct family to activate.\n\t\t\tvalid options are \"WINDOWS\", \"OFFICEXP\", \"OFFICE2K3\", \"OFFICE2K7\" or \"PLUSDME\"\n\t\t\t(defaults to \"WINDOWS\")\n");
fmt::print("\t-p --productid\tthe product ID of the Program to activate. only required for Office 2K3 and Office 2K7 programs\n"); fmt::print("\t-p --productid\tthe product ID of the Program to activate. only required for Office 2K3 and Office 2K7 programs\n");
fmt::print("\t-b --binkid\tspecify which BINK identifier to load (defaults to 2E)\n"); fmt::print("\t-b --binkid\tspecify which BINK identifier to load (defaults to 2E)\n");
fmt::print("\t-l --list\tshow which products/binks can be loaded\n"); fmt::print("\t-l --list\tshow which products/binks (and their associated channel ids) can be loaded\n");
fmt::print("\t-c --channelid\tspecify which Channel Identifier to use (defaults to 640)\n"); fmt::print("\t-c --channelid\tspecify which Channel Identifier to use (defaults to 640)\n");
fmt::print("\t-s --serial\tspecifies a serial to use in the product ID (defaults to random, BINK1998 only)\n"); fmt::print("\t-s --serial\tspecifies a serial to use in the product ID (defaults to random, BINK1998 only)\n");
fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n"); fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n");
@ -253,17 +253,52 @@ int CLI::validateCommandLine(Options* options, char *argv[], json *keys) {
} }
if (options->list) { if (options->list) {
//List each product
for (auto el : (*keys)["Products"].items()) { for (auto el : (*keys)["Products"].items()) {
int id; std::cout << el.key() << ": [";
sscanf((el.value()["BINK"][0]).get<std::string>().c_str(), "%x", &id);
std::cout << el.key() << ": " << el.value()["BINK"] << std::endl; //List each bink
if (!el.value()["CID"].is_null() && !el.value()["CID"].empty()) { bool f = false;
std::cout << "\t" << "Valid Channel IDs:" << std::endl; for (auto bink : el.value()["BINK"].items()) {
for (auto range : el.value()["CID"].items()) { if (bink.value().empty()) { //If no CIDs are associated
std::cout << "\t\t" << range.key() << ": " << range.value() << std::endl; if (f) { std::cout << ", "; } else { f = true; }
std::cout << bink.key();
} else { //If CIDs are associated
size_t padding = el.key().length() + 2;
if (!f) { std::cout << std::endl;
for (int i = 0; i < padding; i++) {
std::cout << " ";
} }
f = true;
}
std::cout << " ";
std::cout << bink.key() << ":" << std::endl;
//List each CID
for (auto cids : bink.value().items()) {
for (int i = 0; i < padding + 5; i++) {
std::cout << " ";
}
std::cout << cids.key() << ": ";
//List each CID's values
bool ff = false;
for (auto cid : cids.value().items()) {
if (ff) { std::cout << ", "; } else { ff = true; }
std::cout << cid.value();
}
std::cout << std::endl; std::cout << std::endl;
} }
for (int i = 0; i < padding; i++) {
std::cout << " ";
}
}
}
std::cout << "]" << std::endl;
} }
fmt::print("\n\n"); fmt::print("\n\n");