From 87306afffe9764f343a31c7a20227b4811523574 Mon Sep 17 00:00:00 2001 From: El-Virus Date: Sat, 7 Oct 2023 17:37:02 +0200 Subject: [PATCH] Added code to display valid Channel IDs from keys.json, Added Windows XP (x64) Pro CIDs to keys.json, Added about Windows DPCDLL Viewer dumps and wardialing results of Windows XP (x64) Pro. --- doc/dpc32_dump.csv | 81 ++++++++++++++++++++++++++++++++++++++++++++++ doc/dpc64_dump.csv | 78 ++++++++++++++++++++++++++++++++++++++++++++ keys.json | 13 ++++++-- src/cli.cpp | 7 ++++ 4 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 doc/dpc32_dump.csv create mode 100644 doc/dpc64_dump.csv diff --git a/doc/dpc32_dump.csv b/doc/dpc32_dump.csv new file mode 100644 index 0000000..1b3efc9 --- /dev/null +++ b/doc/dpc32_dump.csv @@ -0,0 +1,81 @@ +ID,BINK_ID,CID_MIN,CID_MAX,LIC_TYPE,ACT_DAYS +00,21,119,119,OEM,30 +01,21,120,169,Retail,30 +02,21,400,665,Retail,30 +03,21,667,699,Retail,30 +04,21,700,754,Retail,30 +05,22,119,119,OEM,30 +06,22,120,169,Retail,30 +07,22,400,665,Retail,30 +08,22,667,699,Retail,30 +09,22,170,269,Retail,30 +10,22,700,754,Retail,30 +11,22,803,899,Retail,30 +12,06,100,199,Embedded,None +13,06,200,899,Embedded,None +14,20,005,110,Evaluation,14 +15,20,112,119,Evaluation,120 +16,21,005,085,Retail,30 +17,21,337,359,TablePC,60 +18,22,005,085,Retail,30 +19,22,337,359,TablePC,60 +20,22,755,779,Retail,30 +21,22,785,789,Retail,30 +22,23,640,699,Corporate,None +23,22,360,369,TablePC,60 +24,21,755,779,Retail,30 +25,22,085,089,Retail,30 +26,22,095,099,Retail,30 +27,24,900,904,TablePC,60 +28,24,119,119,OEM,30 +29,24,120,169,Retail,30 +30,24,400,665,Retail,30 +31,24,667,699,Retail,30 +32,24,700,754,Retail,30 +33,24,905,999,Retail,30 +34,25,119,119,OEM,30 +35,25,120,169,Retail,30 +36,25,400,665,Retail,30 +37,25,667,699,Retail,30 +38,25,170,269,Retail,30 +39,25,700,754,Retail,30 +40,25,803,899,Retail,30 +41,25,291,300,TablePC,None +42,25,301,320,Retail,30 +43,21,085,085,Retail,30 +44,21,086,095,Retail,30 +45,21,096,105,Retail,30 +46,21,106,106,Retail,30 +47,21,187,187,TablePC,60 +48,21,188,188,TablePC,60 +49,21,170,186,Retail,30 +50,21,189,189,Retail,30 +51,21,190,190,OEM,30 +52,21,191,191,OEM,30 +53,22,090,090,Retail,30 +54,22,111,111,TablePC,60 +55,22,112,112,TablePC,60 +56,22,090,090,OEM,30 +57,22,100,110,Retail,30 +58,22,113,113,OEM,30 +59,22,114,114,Retail,30 +60,23,700,701,Corporate,None +61,23,704,705,Corporate,None +62,21,107,118,Retail,30 +63,21,192,336,Retail,30 +64,21,755,899,Retail,30 +65,21,921,979,Retail,30 +66,22,271,336,Retail,30 +67,22,370,399,Retail,30 +68,22,780,784,Retail,30 +69,22,790,799,Retail,30 +70,22,900,979,Retail,30 +71,22,114,116,Retail,30 +72,21,362,376,Retail,30 +73,21,377,377,Retail,30 +74,21,984,984,Retail,30 +75,22,311,334,Retail,30 +76,22,336,336,Retail,30 +77,22,370,384,Retail,30 +78,22,385,385,Retail,30 +Wardial,0,1,3-99,, \ No newline at end of file diff --git a/doc/dpc64_dump.csv b/doc/dpc64_dump.csv new file mode 100644 index 0000000..938be1d --- /dev/null +++ b/doc/dpc64_dump.csv @@ -0,0 +1,78 @@ +ID,BINK_ID,CID_MIN,CID_MAX,LIC_TYPE,ACT_DAYS +00,42,005,084,Retail,30 +01,42,093,098,Retail,30 +02,42,099,100,TablePC,60 +03,42,111,114,TablePC,60 +04,42,337,369,TablePC,60 +05,42,370,372,TablePC,60 +06,42,373,373,Retail,30 +07,42,374,376,TablePC,60 +08,42,377,377,Retail,30 +09,42,378,379,TablePC,60 +10,42,380,380,Retail,30 +11,42,755,789,Retail,30 +12,42,101,101,Retail,30 +13,42,119,119,OEM,30 +14,42,120,163,Retail,30 +15,42,164,169,Retail,30 +16,42,170,269,Retail,30 +17,43,005,014,Evaluation,14 +18,43,015,019,Evaluation,14 +19,43,020,023,Evaluation,120 +20,43,024,063,Evaluation,14 +21,43,064,068,Evaluation,14 +22,43,101,110,Evaluation,14 +23,43,112,113,Evaluation,120 +24,43,136,145,Evaluation,14 +25,43,146,147,Evaluation,120 +26,43,152,157,Evaluation,14 +27,44,005,083,Retail,30 +28,44,085,092,Retail,30 +29,44,099,104,TablePC,60 +30,44,281,310,TablePC,60 +31,44,720,729,TablePC,60 +32,44,781,788,Retail,30 +33,44,792,794,Retail,30 +34,44,119,119,OEM,30 +35,44,119,119,OEM,30 +36,44,120,162,Retail,30 +37,44,170,269,Retail,30 +38,44,271,280,Retail,30 +39,45,640,649,Corporate,None +40,45,650,654,Corporate,None +41,45,655,656,Corporate,None +42,50,001,002,Evaluation,14 +43,50,640,649,Corporate,None +44,50,652,657,Corporate,None +45,51,306,370,Retail,30 +46,51,371,410,TablePC,60 +47,51,005,118,Retail,30 +48,51,119,119,OEM,30 +49,52,005,092,Retail,30 +50,52,095,095,Retail,30 +51,52,281,314,TablePC,60 +52,52,319,330,TablePC,60 +53,52,781,789,Retail,30 +54,52,792,792,Retail,30 +55,52,119,119,OEM,30 +56,52,120,263,Retail,30 +57,52,271,280,Retail,30 +58,53,005,014,Evaluation,14 +59,53,101,110,Evaluation,14 +60,53,112,113,Evaluation,120 +61,53,114,133,Evaluation,14 +62,53,134,135,Evaluation,120 +63,53,136,145,Evaluation,14 +64,53,146,147,Evaluation,120 +65,53,150,169,Evaluation,14 +66,53,170,171,Evaluation,120 +67,53,200,216,Evaluation,14 +68,53,217,218,Evaluation,120 +69,54,005,084,Retail,30 +70,54,090,092,Retail,30 +71,54,094,094,Retail,30 +72,54,115,118,Retail,30 +73,54,300,309,TablePC,60 +74,54,119,119,OEM,30 +75,54,120,263,Retail,30 +Wardial,306-410 \ No newline at end of file diff --git a/keys.json b/keys.json index 3e6caef..c57c260 100644 --- a/keys.json +++ b/keys.json @@ -61,7 +61,12 @@ "BINK": ["2A", "2B"] }, "Windows XP Pro": { - "BINK": ["2C", "2D"] + "BINK": ["2C", "2D"], + "CID": { + "OEM": "90, 113, 119", + "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]" + } }, "Windows XP Pro IA-64": { "BINK": ["2C", "2D"] @@ -106,7 +111,11 @@ "BINK": ["64", "65"] }, "Windows XP Pro 64 Bit Edition": { - "BINK": ["66", "67"] + "BINK": ["66", "67"], + "CID": { + "Retail": "[306, 370]", + "TablePC": "[371, 410]" + } }, "Windows Server 2003 64 Bit": { "BINK": ["68", "69", "6C", "6D"] diff --git a/src/cli.cpp b/src/cli.cpp index df1ccf0..883b17a 100644 --- a/src/cli.cpp +++ b/src/cli.cpp @@ -257,6 +257,13 @@ int CLI::validateCommandLine(Options* options, char *argv[], json *keys) { int id; sscanf((el.value()["BINK"][0]).get().c_str(), "%x", &id); std::cout << el.key() << ": " << el.value()["BINK"] << std::endl; + if (!el.value()["CID"].is_null() && !el.value()["CID"].empty()) { + std::cout << "\t" << "Valid Channel IDs:" << std::endl; + for (auto range : el.value()["CID"].items()) { + std::cout << "\t\t" << range.key() << ": " << range.value() << std::endl; + } + std::cout << std::endl; + } } fmt::print("\n\n");