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");