Valhalla Legends Forums Archive | Battle.net Bot Development | Starcraft Keys

AuthorMessageTime
Guest
Thread contents below...
February 16, 2003, 7:29 PM
JoeTheOdd
Alright, I don't know if this is against the rules or not. If it is, please delete it.

Anyhow, seeing as how many people believe that theres a pattern in valid StarCraft keys, I decoded over 1000 from a public list of valid keys. I don't see anything (except the constant product value, but thats a give-away). Anyhow, your turn to look. Good luck, I guess?

[tt]0009871987992 -- Value 1: 0x00325326, Value 2: 0x00325326, Product: 0x00000001
0020893891689 -- Value 1: 0x0031BADB, Value 2: 0x0031BADB, Product: 0x00000001
0026893881680 -- Value 1: 0x00316CBB, Value 2: 0x00316CBB, Product: 0x00000001
0026893961894 -- Value 1: 0x003168C9, Value 2: 0x003168C9, Product: 0x00000001
0029083901896 -- Value 1: 0x0032551C, Value 2: 0x0032551C, Product: 0x00000001
0029183981967 -- Value 1: 0x00323FA0, Value 2: 0x00323FA0, Product: 0x00000001
0029393881295 -- Value 1: 0x00325527, Value 2: 0x00325527, Product: 0x00000001
0029873981927 -- Value 1: 0x00324F3E, Value 2: 0x00324F3E, Product: 0x00000001
0029893831484 -- Value 1: 0x0032590F, Value 2: 0x0032590F, Product: 0x00000001
0129093291889 -- Value 1: 0x00325865, Value 2: 0x00325865, Product: 0x00000001
0129283901882 -- Value 1: 0x003258A0, Value 2: 0x003258A0, Product: 0x00000001
0129293581999 -- Value 1: 0x0032549B, Value 2: 0x0032549B, Product: 0x00000001
0129663881887 -- Value 1: 0x003258A8, Value 2: 0x003258A8, Product: 0x00000001
0129893391921 -- Value 1: 0x00324F69, Value 2: 0x00324F69, Product: 0x00000001
0129893991022 -- Value 1: 0x00324FA5, Value 2: 0x00324FA5, Product: 0x00000001
0129943881185 -- Value 1: 0x003258A6, Value 2: 0x003258A6, Product: 0x00000001
0221893791887 -- Value 1: 0x00319475, Value 2: 0x00319475, Product: 0x00000001
0226883991973 -- Value 1: 0x0031660C, Value 2: 0x0031660C, Product: 0x00000001
0226893891791 -- Value 1: 0x0031699B, Value 2: 0x0031699B, Product: 0x00000001
0226893891968 -- Value 1: 0x0031622F, Value 2: 0x0031622F, Product: 0x00000001
0357863818981 -- Value 1: 0x004B86C0, Value 2: 0x004B86C0, Product: 0x00000001
0619813977981 -- Value 1: 0x00079EB5, Value 2: 0x00079EB5, Product: 0x00000001
0814803983485 -- Value 1: 0x00004DA8, Value 2: 0x00004DA8, Product: 0x00000001
0849793381935 -- Value 1: 0x0050D2C7, Value 2: 0x0050D2C7, Product: 0x00000001
1005120544430 -- Value 1: 0x0029336D, Value 2: 0x0029336D, Product: 0x00000001
1010500301055 -- Value 1: 0x0031AF3B, Value 2: 0x0031AF3B, Product: 0x00000001
1011720311048 -- Value 1: 0x00318C11, Value 2: 0x00318C11, Product: 0x00000001
1030240274738 -- Value 1: 0x001AB479, Value 2: 0x001AB479, Product: 0x00000001
1067760520241 -- Value 1: 0x004206E9, Value 2: 0x004206E9, Product: 0x00000001
1101700220241 -- Value 1: 0x0023D019, Value 2: 0x0023D019, Product: 0x00000001
1102060037665 -- Value 1: 0x0025C407, Value 2: 0x0025C407, Product: 0x00000001
1103420062745 -- Value 1: 0x002110E3, Value 2: 0x002110E3, Product: 0x00000001
1107560676679 -- Value 1: 0x002683AB, Value 2: 0x002683AB, Product: 0x00000001
1110430625376 -- Value 1: 0x0037C1B6, Value 2: 0x0037C1B6, Product: 0x00000001
1111420661176 -- Value 1: 0x00318027, Value 2: 0x00318027, Product: 0x00000001
1111470776613 -- Value 1: 0x00360C30, Value 2: 0x00360C30, Product: 0x00000001
1116260575465 -- Value 1: 0x00377765, Value 2: 0x00377765, Product: 0x00000001
1123350372727 -- Value 1: 0x00027502, Value 2: 0x00027502, Product: 0x00000001
1127110512277 -- Value 1: 0x0001E48A, Value 2: 0x0001E48A, Product: 0x00000001
1127400567639 -- Value 1: 0x000668CB, Value 2: 0x000668CB, Product: 0x00000001
1146770530102 -- Value 1: 0x0060A274, Value 2: 0x0060A274, Product: 0x00000001
1161400310118 -- Value 1: 0x00424107, Value 2: 0x00424107, Product: 0x00000001
1165300464629 -- Value 1: 0x0047BB7D, Value 2: 0x0047BB7D, Product: 0x00000001
1165770130732 -- Value 1: 0x00419CE4, Value 2: 0x00419CE4, Product: 0x00000001
1174700743610 -- Value 1: 0x004C7A5F, Value 2: 0x004C7A5F, Product: 0x00000001
1201460556636 -- Value 1: 0x0026C339, Value 2: 0x0026C339, Product: 0x00000001
1206530653000 -- Value 1: 0x001F06DA, Value 2: 0x001F06DA, Product: 0x00000001
1210700101554 -- Value 1: 0x0031AFEF, Value 2: 0x0031AFEF, Product: 0x00000001
1211110026233 -- Value 1: 0x00360558, Value 2: 0x00360558, Product: 0x00000001
1215650026207 -- Value 1: 0x003574D4, Value 2: 0x003574D4, Product: 0x00000001
1264520250761 -- Value 1: 0x0041D8C3, Value 2: 0x0041D8C3, Product: 0x00000001
1271610732623 -- Value 1: 0x004E7372, Value 2: 0x004E7372, Product: 0x00000001
1304260577154 -- Value 1: 0x0024DE75, Value 2: 0x0024DE75, Product: 0x00000001
1304330227347 -- Value 1: 0x0024E24E, Value 2: 0x0024E24E, Product: 0x00000001
1304730730245 -- Value 1: 0x00235BCC, Value 2: 0x00235BCC, Product: 0x00000001
1306630124719 -- Value 1: 0x0029B0A8, Value 2: 0x0029B0A8, Product: 0x00000001
1310320401640 -- Value 1: 0x0031B3A3, Value 2: 0x0031B3A3, Product: 0x00000001
1311460501353 -- Value 1: 0x003188A5, Value 2: 0x003188A5, Product: 0x00000001
1311570131512 -- Value 1: 0x003178DC, Value 2: 0x003178DC, Product: 0x00000001
1311660751208 -- Value 1: 0x00317D01, Value 2: 0x00317D01, Product: 0x00000001
1314500046634 -- Value 1: 0x00358FC5, Value 2: 0x00358FC5, Product: 0x00000001
1323730256157 -- Value 1: 0x0008A3D6, Value 2: 0x0008A3D6, Product: 0x00000001
1324030631701 -- Value 1: 0x00034116, Value 2: 0x00034116, Product: 0x00000001
1324630430504 -- Value 1: 0x0004C7A2, Value 2: 0x0004C7A2, Product: 0x00000001
1342360603436 -- Value 1: 0x005CA003, Value 2: 0x005CA003, Product: 0x00000001
1367650441057 -- Value 1: 0x00407CD0, Value 2: 0x00407CD0, Product: 0x00000001
1374670540439 -- Value 1: 0x00510724, Value 2: 0x00510724, Product: 0x00000001
1376740612172 -- Value 1: 0x004E57C5, Value 2: 0x004E57C5, Product: 0x00000001
1474500273556 -- Value 1: 0x004C8BD5, Value 2: 0x004C8BD5, Product: 0x00000001
1476040113761 -- Value 1: 0x004CD5F3, Value 2: 0x004CD5F3, Product: 0x00000001
1510320221048 -- Value 1: 0x0031B457, Value 2: 0x0031B457, Product: 0x00000001
1511540331414 -- Value 1: 0x003179BB, Value 2: 0x003179BB, Product: 0x00000001
1511600771031 -- Value 1: 0x0031720F, Value 2: 0x0031720F, Product: 0x00000001
1512350757328 -- Value 1: 0x0034F86A, Value 2: 0x0034F86A, Product: 0x00000001
1514430152164 -- Value 1: 0x002F8988, Value 2: 0x002F8988, Product: 0x00000001
1520240447141 -- Value 1: 0x0006FAF1, Value 2: 0x0006FAF1, Product: 0x00000001
1527120200306 -- Value 1: 0x0004EF67, Value 2: 0x0004EF67, Product: 0x00000001
1561200110532 -- Value 1: 0x00423AB3, Value 2: 0x00423AB3, Product: 0x00000001
1561350542746 -- Value 1: 0x003F48F6, Value 2: 0x003F48F6, Product: 0x00000001
1562470343635 -- Value 1: 0x003E1C18, Value 2: 0x003E1C18, Product: 0x00000001
1564010411002 -- Value 1: 0x00404ACC, Value 2: 0x00404ACC, Product: 0x00000001
1565560630105 -- Value 1: 0x0041AA73, Value 2: 0x0041AA73, Product: 0x00000001
1603070012137 -- Value 1: 0x0020F84A, Value 2: 0x0020F84A, Product: 0x00000001
1603150116779 -- Value 1: 0x00272262, Value 2: 0x00272262, Product: 0x00000001
1622120202720 -- Value 1: 0x00029ED3, Value 2: 0x00029ED3, Product: 0x00000001
1624050730270 -- Value 1: 0x0004CD8E, Value 2: 0x0004CD8E, Product: 0x00000001
1625370423046 -- Value 1: 0x00001E4A, Value 2: 0x00001E4A, Product: 0x00000001
1625660011016 -- Value 1: 0x000317DB, Value 2: 0x000317DB, Product: 0x00000001
1644050065277 -- Value 1: 0x0064EEBC, Value 2: 0x0064EEBC, Product: 0x00000001
1661060121021 -- Value 1: 0x0040B929, Value 2: 0x0040B929, Product: 0x00000001
1663040601176 -- Value 1: 0x00411349, Value 2: 0x00411349, Product: 0x00000001
1674650000019 -- Value 1: 0x005110CC, Value 2: 0x005110CC, Product: 0x00000001
1675630110728 -- Value 1: 0x0050E5C4, Value 2: 0x0050E5C4, Product: 0x00000001
1701130565671 -- Value 1: 0x00285AA0, Value 2: 0x00285AA0, Product: 0x00000001
1702710410615 -- Value 1: 0x0024342C, Value 2: 0x0024342C, Product: 0x00000001
1705530326764 -- Value 1: 0x00263B94, Value 2: 0x00263B94, Product: 0x00000001
1710070231069 -- Value 1: 0x0031AD52, Value 2: 0x0031AD52, Product: 0x00000001
1724140702045 -- Value 1: 0x0001CBA3, Value 2: 0x0001CBA3, Product: 0x00000001
1735440626221 -- Value 1: 0x0016E9ED, Value 2: 0x0016E9ED, Product: 0x00000001
1767240712220 -- Value 1: 0x003EE443, Value 2: 0x003EE443, Product: 0x00000001
1767370472719 -- Value 1: 0x003EE81E, Value 2: 0x003EE81E, Product: 0x00000001
1770470052039 -- Value 1: 0x004E9796, Value 2: 0x004E9796, Product: 0x00000001
1775660747036 -- Value 1: 0x00526859, Value 2: 0x00526859, Product: 0x00000001
2000732927935 -- Value 1: 0x00529622, Value 2: 0x00529622, Product: 0x00000001
2003342982527 -- Value 1: 0x004E2D35, Value 2: 0x004E2D35, Product: 0x00000001
2003412847967 -- Value 1: 0x0052D0C2, Value 2: 0x0052D0C2, Product: 0x00000001
2005712483184 -- Value 1: 0x004D0B56, Value 2: 0x004D0B56, Product: 0x00000001
2007582368660 -- Value 1: 0x005ABEE4, Value 2: 0x005ABEE4, Product: 0x00000001
2012672262986 -- Value 1: 0x003F2868, Value 2: 0x003F2868, Product: 0x00000001
2013512684931 -- Value 1: 0x00480E9B, Value 2: 0x00480E9B, Product: 0x00000001
2038812033409 -- Value 1: 0x005CCA6E, Value 2: 0x005CCA6E, Product: 0x00000001
2039395818368 -- Value 1: 0x002DBC97, Value 2: 0x002DBC97, Product: 0x00000001
2044642083781 -- Value 1: 0x0010293B, Value 2: 0x0010293B, Product: 0x00000001
2053492342850 -- Value 1: 0x0001E5D1, Value 2: 0x0001E5D1, Product: 0x00000001
2056282711876 -- Value 1: 0x00043768, Value 2: 0x00043768, Product: 0x00000001
2057192931329 -- Value 1: 0x000404DD, Value 2: 0x000404DD, Product: 0x00000001
2057942916244 -- Value 1: 0x0008A085, Value 2: 0x0008A085, Product: 0x00000001
2059635480892 -- Value 1: 0x00400FA9, Value 2: 0x00400FA9, Product: 0x00000001
2063992742700 -- Value 1: 0x002FA0B1, Value 2: 0x002FA0B1, Product: 0x00000001
2064192641688 -- Value 1: 0x0031BB17, Value 2: 0x0031BB17, Product: 0x00000001
2065392385778 -- Value 1: 0x0037A3A1, Value 2: 0x0037A3A1, Product: 0x00000001
2067432636990 -- Value 1: 0x0036721C, Value 2: 0x0036721C, Product: 0x00000001
2070282526485 -- Value 1: 0x00267080, Value 2: 0x00267080, Product: 0x00000001
2075782126089 -- Value 1: 0x0026E588, Value 2: 0x0026E588, Product: 0x00000001
2100392812500 -- Value 1: 0x004DFE03, Value 2: 0x004DFE03, Product: 0x00000001
2103642390973 -- Value 1: 0x005145B8, Value 2: 0x005145B8, Product: 0x00000001
2109772961162 -- Value 1: 0x0050D3BC, Value 2: 0x0050D3BC, Product: 0x00000001
2115252178955 -- Value 1: 0x004BBEB4, Value 2: 0x004BBEB4, Product: 0x00000001
2115772932684 -- Value 1: 0x003F4F5C, Value 2: 0x003F4F5C, Product: 0x00000001
2127815893867 -- Value 1: 0x00317CB6, Value 2: 0x00317CB6, Product: 0x00000001
2132665993999 -- Value 1: 0x0021D9F6, Value 2: 0x0021D9F6, Product: 0x00000001
2133222693293 -- Value 1: 0x005BFB19, Value 2: 0x005BFB19, Product: 0x00000001
2136482861624 -- Value 1: 0x005FB912, Value 2: 0x005FB912, Product: 0x00000001
2142685938788 -- Value 1: 0x005AA058, Value 2: 0x005AA058, Product: 0x00000001
2145585399589 -- Value 1: 0x005940B4, Value 2: 0x005940B4, Product: 0x00000001
2161472896070 -- Value 1: 0x00358074, Value 2: 0x00358074, Product: 0x00000001
2173752947185 -- Value 1: 0x0025109E, Value 2: 0x0025109E, Product: 0x00000001
2173782252945 -- Value 1: 0x00206DDE, Value 2: 0x00206DDE, Product: 0x00000001
2177392753913 -- Value 1: 0x001F6FC5, Value 2: 0x001F6FC5, Product: 0x00000001
2178362740191 -- Value 1: 0x00247061, Value 2: 0x00247061, Product: 0x00000001
2178932422232 -- Value 1: 0x00214BBC, Value 2: 0x00214BBC, Product: 0x00000001
2206932368510 -- Value 1: 0x005ACB62, Value 2: 0x005ACB62, Product: 0x00000001
2210972592767 -- Value 1: 0x003ED273, Value 2: 0x003ED273, Product: 0x00000001
2212112991117 -- Value 1: 0x00408C28, Value 2: 0x00408C28, Product: 0x00000001
2213182741587 -- Value 1: 0x004088E4, Value 2: 0x004088E4, Product: 0x00000001
2216122683901 -- Value 1: 0x003E1EDC, Value 2: 0x003E1EDC, Product: 0x00000001
2216482862240 -- Value 1: 0x003FB55E, Value 2: 0x003FB55E, Product: 0x00000001
2218572581141 -- Value 1: 0x004163B2, Value 2: 0x004163B2, Product: 0x00000001
2219412875176 -- Value 1: 0x0047A948, Value 2: 0x0047A948, Product: 0x00000001
2244995653981 -- Value 1: 0x00509019, Value 2: 0x00509019, Product: 0x00000001
2251912463804 -- Value 1: 0x00000457, Value 2: 0x00000457, Product: 0x00000001
2264302891763 -- Value 1: 0x0031B36B, Value 2: 0x0031B36B, Product: 0x00000001
2274242599030 -- Value 1: 0x002BD429, Value 2: 0x002BD429, Product: 0x00000001
2278772208422 -- Value 1: 0x002D7DD6, Value 2: 0x002D7DD6, Product: 0x00000001
2304322933817 -- Value 1: 0x004D0EE7, Value 2: 0x004D0EE7, Product: 0x00000001
2311962112184 -- Value 1: 0x003EB3A7, Value 2: 0x003EB3A7, Product: 0x00000001
2312802101087 -- Value 1: 0x0040AF79, Value 2: 0x0040AF79, Product: 0x00000001
2314072918778 -- Value 1: 0x004BEE9C, Value 2: 0x004BEE9C, Product: 0x00000001
2316812202967 -- Value 1: 0x003FBCAF, Value 2: 0x003FBCAF, Product: 0x00000001
2328585545998 -- Value 1: 0x00353908, Value 2: 0x00353908, Product: 0x00000001
2338582771351 -- Value 1: 0x005FE3D8, Value 2: 0x005FE3D8, Product: 0x00000001
2352382903639 -- Value 1: 0x00007D58, Value 2: 0x00007D58, Product: 0x00000001
2357292283127 -- Value 1: 0x0000F667, Value 2: 0x0000F667, Product: 0x00000001
2359792166654 -- Value 1: 0x00091135, Value 2: 0x00091135, Product: 0x00000001
2364152981774 -- Value 1: 0x0031AF10, Value 2: 0x0031AF10, Product: 0x00000001
2364222591193 -- Value 1: 0x0031B79B, Value 2: 0x0031B79B, Product: 0x00000001
2364662691967 -- Value 1: 0x0031B2CC, Value 2: 0x0031B2CC, Product: 0x00000001
2365162661984 -- Value 1: 0x00319465, Value 2: 0x00319465, Product: 0x00000001
2365492341299 -- Value 1: 0x00319051, Value 2: 0x00319051, Product: 0x00000001
2366512496814 -- Value 1: 0x0036795B, Value 2: 0x0036795B, Product: 0x00000001
2367082865071 -- Value 1: 0x0037F0B2, Value 2: 0x0037F0B2, Product: 0x00000001
2372985902181 -- Value 1: 0x00606E48, Value 2: 0x00606E48, Product: 0x00000001
2377052803794 -- Value 1: 0x001F8F48, Value 2: 0x001F8F48, Product: 0x00000001
2377292297106 -- Value 1: 0x00258D97, Value 2: 0x00258D97, Product: 0x00000001
2378382302210 -- Value 1: 0x00214470, Value 2: 0x00214470, Product: 0x00000001
2378742681443 -- Value 1: 0x0022DEC3, Value 2: 0x0022DEC3, Product: 0x00000001
2379322577914 -- Value 1: 0x0025FF9B, Value 2: 0x0025FF9B, Product: 0x00000001
2379342178272 -- Value 1: 0x002DB01F, Value 2: 0x002DB01F, Product: 0x00000001
2400222738876 -- Value 1: 0x005A95A3, Value 2: 0x005A95A3, Product: 0x00000001
2400832522681 -- Value 1: 0x004E1E4E, Value 2: 0x004E1E4E, Product: 0x00000001
2401292506194 -- Value 1: 0x00540DD9, Value 2: 0x00540DD9, Product: 0x00000001
2401502893210 -- Value 1: 0x004C4E5B, Value 2: 0x004C4E5B, Product: 0x00000001
2401922509100 -- Value 1: 0x0058D47F, Value 2: 0x0058D47F, Product: 0x00000001
2402022528594 -- Value 1: 0x005A4F4D, Value 2: 0x005A4F4D, Product: 0x00000001
2402202787920 -- Value 1: 0x0052E978, Value 2: 0x0052E978, Product: 0x00000001
2402292219660 -- Value 1: 0x0058C4AF, Value 2: 0x0058C4AF, Product: 0x00000001
2402292442190 -- Value 1: 0x004E6893, Value 2: 0x004E6893, Product: 0x00000001
2402342592808 -- Value 1: 0x004E4DB8, Value 2: 0x004E4DB8, Product: 0x00000001
2402752590869 -- Value 1: 0x00517269, Value 2: 0x00517269, Product: 0x00000001
2402922363844 -- Value 1: 0x004CD6F2, Value 2: 0x004CD6F2, Product: 0x00000001
2403112488006 -- Value 1: 0x005A0D06, Value 2: 0x005A0D06, Product: 0x00000001
2403372912943 -- Value 1: 0x004E3696, Value 2: 0x004E3696, Product: 0x00000001
2403972108438 -- Value 1: 0x005A10BA, Value 2: 0x005A10BA, Product: 0x00000001
2403972390743 -- Value 1: 0x005143C7, Value 2: 0x005143C7, Product: 0x00000001
2404302887016 -- Value 1: 0x00532C2B, Value 2: 0x00532C2B, Product: 0x00000001
2404382970440 -- Value 1: 0x0051B90C, Value 2: 0x0051B90C, Product: 0x00000001
2404782480262 -- Value 1: 0x0051C096, Value 2: 0x0051C096, Product: 0x00000001
2405002400882 -- Value 1: 0x0051A0C7, Value 2: 0x0051A0C7, Product: 0x00000001
2406242917480 -- Value 1: 0x00539CA3, Value 2: 0x00539CA3, Product: 0x00000001
2407082358226 -- Value 1: 0x005AB0D4, Value 2: 0x005AB0D4, Product: 0x00000001
2407362799231 -- Value 1: 0x0059266F, Value 2: 0x0059266F, Product: 0x00000001
2407642861296 -- Value 1: 0x00506475, Value 2: 0x00506475, Product: 0x00000001
2408132917644 -- Value 1: 0x0053B40C, Value 2: 0x0053B40C, Product: 0x00000001
2409002937700 -- Value 1: 0x0053CB7F, Value 2: 0x0053CB7F, Product: 0x00000001
2409202977658 -- Value 1: 0x0053D737, Value 2: 0x0053D737, Product: 0x00000001
2409242977159 -- Value 1: 0x0053D73B, Value 2: 0x0053D73B, Product: 0x00000001
2409652448607 -- Value 1: 0x005B7454, Value 2: 0x005B7454, Product: 0x00000001
2409682173357 -- Value 1: 0x004DBC80, Value 2: 0x004DBC80, Product: 0x00000001
2409732413491 -- Value 1: 0x004DCC36, Value 2: 0x004DCC36, Product: 0x00000001
2410232184282 -- Value 1: 0x004803A6, Value 2: 0x004803A6, Product: 0x00000001
2410732684794 -- Value 1: 0x0047FFDC, Value 2: 0x0047FFDC, Product: 0x00000001
2410812124956 -- Value 1: 0x0047F0F5, Value 2: 0x0047F0F5, Product: 0x00000001
2412742692084 -- Value 1: 0x003F2A1F, Value 2: 0x003F2A1F, Product: 0x00000001
2412872293719 -- Value 1: 0x003D8139, Value 2: 0x003D8139, Product: 0x00000001
2414895791939 -- Value 1: 0x00012AB5, Value 2: 0x00012AB5, Product: 0x00000001
2415922092449 -- Value 1: 0x003F4258, Value 2: 0x003F4258, Product: 0x00000001
2416592782528 -- Value 1: 0x003FAFA1, Value 2: 0x003FAFA1, Product: 0x00000001
2416772878627 -- Value 1: 0x004B95FA, Value 2: 0x004B95FA, Product: 0x00000001
2417832821520 -- Value 1: 0x00410F74, Value 2: 0x00410F74, Product: 0x00000001
2418052628128 -- Value 1: 0x004C0348, Value 2: 0x004C0348, Product: 0x00000001
2419012283111 -- Value 1: 0x003E6A92, Value 2: 0x003E6A92, Product: 0x00000001
2419092061474 -- Value 1: 0x00418F5B, Value 2: 0x00418F5B, Product: 0x00000001
2419885550084 -- Value 1: 0x00030C1C, Value 2: 0x00030C1C, Product: 0x00000001
2429985223939 -- Value 1: 0x00323410, Value 2: 0x00323410, Product: 0x00000001
2430995479380 -- Value 1: 0x002B0687, Value 2: 0x002B0687, Product: 0x00000001
2431842030813 -- Value 1: 0x00602452, Value 2: 0x00602452, Product: 0x00000001
2432592615873 -- Value 1: 0x006544C3, Value 2: 0x006544C3, Product: 0x00000001
2436682759678 -- Value 1: 0x00689F64, Value 2: 0x00689F64, Product: 0x00000001
2438642381754 -- Value 1: 0x005FE4D5, Value 2: 0x005FE4D5, Product: 0x00000001
2438745802990 -- Value 1: 0x00247337, Value 2: 0x00247337, Product: 0x00000001
2438885482500 -- Value 1: 0x00245D2C, Value 2: 0x00245D2C, Product: 0x00000001
2439825169589 -- Value 1: 0x002C3E47, Value 2: 0x002C3E47, Product: 0x00000001
2439935450982 -- Value 1: 0x002190A1, Value 2: 0x002190A1, Product: 0x00000001
2441375882993 -- Value 1: 0x00514D45, Value 2: 0x00514D45, Product: 0x00000001
2446885799014 -- Value 1: 0x00599A32, Value 2: 0x00599A32, Product: 0x00000001
2447095194899 -- Value 1: 0x0054A857, Value 2: 0x0054A857, Product: 0x00000001
2447195992395 -- Value 1: 0x00519B5D, Value 2: 0x00519B5D, Product: 0x00000001
2447695929284 -- Value 1: 0x005990DD, Value 2: 0x005990DD, Product: 0x00000001
2448522237785 -- Value 1: 0x0016BA7B, Value 2: 0x0016BA7B, Product: 0x00000001
2451532882623 -- Value 1: 0x00019574, Value 2: 0x00019574, Product: 0x00000001
2455195908492 -- Value 1: 0x004B8335, Value 2: 0x004B8335, Product: 0x00000001
2457222810781 -- Value 1: 0x0005A3B7, Value 2: 0x0005A3B7, Product: 0x00000001
2457792067941 -- Value 1: 0x00071B5F, Value 2: 0x00071B5F, Product: 0x00000001
2458352372699 -- Value 1: 0x0002E06E, Value 2: 0x0002E06E, Product: 0x00000001
2459492721659 -- Value 1: 0x00047E95, Value 2: 0x00047E95, Product: 0x00000001
2460152906392 -- Value 1: 0x0035B07A, Value 2: 0x0035B07A, Product: 0x00000001
2460922850454 -- Value 1: 0x0032946D, Value 2: 0x0032946D, Product: 0x00000001
2461482905363 -- Value 1: 0x00370CEC, Value 2: 0x00370CEC, Product: 0x00000001
2464802421587 -- Value 1: 0x0031BCB7, Value 2: 0x0031BCB7, Product: 0x00000001
2464972521087 -- Value 1: 0x0031BCAA, Value 2: 0x0031BCAA, Product: 0x00000001
2465842601681 -- Value 1: 0x0031958F, Value 2: 0x0031958F, Product: 0x00000001
2469072167975 -- Value 1: 0x00355A4A, Value 2: 0x00355A4A, Product: 0x00000001
2471262920828 -- Value 1: 0x00232727, Value 2: 0x00232727, Product: 0x00000001
2472862413828 -- Value 1: 0x001F0834, Value 2: 0x001F0834, Product: 0x00000001
2473222414899 -- Value 1: 0x0029A281, Value 2: 0x0029A281, Product: 0x00000001
2473342788164 -- Value 1: 0x002C5D95, Value 2: 0x002C5D95, Product: 0x00000001
2473672039842 -- Value 1: 0x002ACF1C, Value 2: 0x002ACF1C, Product: 0x00000001
2473972851751 -- Value 1: 0x0021F298, Value 2: 0x0021F298, Product: 0x00000001
2474142785690 -- Value 1: 0x002890ED, Value 2: 0x002890ED, Product: 0x00000001
2474632783683 -- Value 1: 0x001F6D1A, Value 2: 0x001F6D1A, Product: 0x00000001
2475432996073 -- Value 1: 0x0026DC62, Value 2: 0x0026DC62, Product: 0x00000001
2475542573894 -- Value 1: 0x001F4231, Value 2: 0x001F4231, Product: 0x00000001
2475612827814 -- Value 1: 0x00253E5A, Value 2: 0x00253E5A, Product: 0x00000001
2475832069474 -- Value 1: 0x002BBD68, Value 2: 0x002BBD68, Product: 0x00000001
2477902118477 -- Value 1: 0x002CF5DD, Value 2: 0x002CF5DD, Product: 0x00000001
2478412817405 -- Value 1: 0x0025DDB8, Value 2: 0x0025DDB8, Product: 0x00000001
2478712293602 -- Value 1: 0x001FC2EA, Value 2: 0x001FC2EA, Product: 0x00000001
2478875881429 -- Value 1: 0x005CCAAD, Value 2: 0x005CCAAD, Product: 0x00000001
2500522819623 -- Value 1: 0x00590313, Value 2: 0x00590313, Product: 0x00000001
2500762248391 -- Value 1: 0x005A9D03, Value 2: 0x005A9D03, Product: 0x00000001
2501152438804 -- Value 1: 0x005A5ABE, Value 2: 0x005A5ABE, Product: 0x00000001
2501422107894 -- Value 1: 0x005286AB, Value 2: 0x005286AB, Product: 0x00000001
2501612933874 -- Value 1: 0x004C655C, Value 2: 0x004C655C, Product: 0x00000001
2502432890154 -- Value 1: 0x005166A8, Value 2: 0x005166A8, Product: 0x00000001
2502532940580 -- Value 1: 0x00517958, Value 2: 0x00517958, Product: 0x00000001
2503192823105 -- Value 1: 0x004CA003, Value 2: 0x004CA003, Product: 0x00000001
2503392952377 -- Value 1: 0x004E3A21, Value 2: 0x004E3A21, Product: 0x00000001
2504962449547 -- Value 1: 0x0059A711, Value 2: 0x0059A711, Product: 0x00000001
2505132786857 -- Value 1: 0x00549AAF, Value 2: 0x00549AAF, Product: 0x00000001
2505352838314 -- Value 1: 0x005AF330, Value 2: 0x005AF330, Product: 0x00000001
2505422388604 -- Value 1: 0x005AF6BF, Value 2: 0x005AF6BF, Product: 0x00000001
2506942951637 -- Value 1: 0x00507469, Value 2: 0x00507469, Product: 0x00000001
2506962251878 -- Value 1: 0x00508404, Value 2: 0x00508404, Product: 0x00000001
2507362983219 -- Value 1: 0x004D384B, Value 2: 0x004D384B, Product: 0x00000001
2507602900787 -- Value 1: 0x0051EE8B, Value 2: 0x0051EE8B, Product: 0x00000001
2507832560281 -- Value 1: 0x0051EE7A, Value 2: 0x0051EE7A, Product: 0x00000001
2509542871277 -- Value 1: 0x0050D171, Value 2: 0x0050D171, Product: 0x00000001
2509862407424 -- Value 1: 0x0053D2E1, Value 2: 0x0053D2E1, Product: 0x00000001
2511932691365 -- Value 1: 0x00403411, Value 2: 0x00403411, Product: 0x00000001
2513985501992 -- Value 1: 0x00001F7A, Value 2: 0x00001F7A, Product: 0x00000001
2514032171885 -- Value 1: 0x0040FE62, Value 2: 0x0040FE62, Product: 0x00000001
2518162765585 -- Value 1: 0x00478E39, Value 2: 0x00478E39, Product: 0x00000001
2518452691060 -- Value 1: 0x00416BDA, Value 2: 0x00416BDA, Product: 0x00000001
2519482265513 -- Value 1: 0x004791F2, Value 2: 0x004791F2, Product: 0x00000001
2531932930053 -- Value 1: 0x006033AE, Value 2: 0x006033AE, Product: 0x00000001
2532142090395 -- Value 1: 0x0060B77F, Value 2: 0x0060B77F, Product: 0x00000001
2535012590845 -- Value 1: 0x0060D381, Value 2: 0x0060D381, Product: 0x00000001
2535592180469 -- Value 1: 0x0060DB81, Value 2: 0x0060DB81, Product: 0x00000001
2535885795798 -- Value 1: 0x0025A8EE, Value 2: 0x0025A8EE, Product: 0x00000001
2535962323784 -- Value 1: 0x005C4E7B, Value 2: 0x005C4E7B, Product: 0x00000001
2539862371234 -- Value 1: 0x006003B3, Value 2: 0x006003B3, Product: 0x00000001
2544705898496 -- Value 1: 0x005AEC27, Value 2: 0x005AEC27, Product: 0x00000001
2545292504876 -- Value 1: 0x001AA6B1, Value 2: 0x001AA6B1, Product: 0x00000001
2546095954897 -- Value 1: 0x0054CF49, Value 2: 0x0054CF49, Product: 0x00000001
2546845699496 -- Value 1: 0x0059B36A, Value 2: 0x0059B36A, Product: 0x00000001
2547712909511 -- Value 1: 0x001C1562, Value 2: 0x001C1562, Product: 0x00000001
2548295851491 -- Value 1: 0x004DA5BB, Value 2: 0x004DA5BB, Product: 0x00000001
2549825863782 -- Value 1: 0x0050DDF1, Value 2: 0x0050DDF1, Product: 0x00000001
2549855682867 -- Value 1: 0x00525278, Value 2: 0x00525278, Product: 0x00000001
2549925968053 -- Value 1: 0x005B78BF, Value 2: 0x005B78BF, Product: 0x00000001
2549945799246 -- Value 1: 0x0059F5C8, Value 2: 0x0059F5C8, Product: 0x00000001
2550092591656 -- Value 1: 0x00034651, Value 2: 0x00034651, Product: 0x00000001
2551102791392 -- Value 1: 0x00032E3D, Value 2: 0x00032E3D, Product: 0x00000001
2551492492655 -- Value 1: 0x000198AB, Value 2: 0x000198AB, Product: 0x00000001
2554862123861 -- Value 1: 0x0000E12E, Value 2: 0x0000E12E, Product: 0x00000001
2555212383193 -- Value 1: 0x0000BD14, Value 2: 0x0000BD14, Product: 0x00000001
2556912960477 -- Value 1: 0x0005BF6C, Value 2: 0x0005BF6C, Product: 0x00000001
2558642441488 -- Value 1: 0x00046AB1, Value 2: 0x00046AB1, Product: 0x00000001
2558682311749 -- Value 1: 0x00045AE0, Value 2: 0x00045AE0, Product: 0x00000001
2559102302680 -- Value 1: 0x00030AFF, Value 2: 0x00030AFF, Product: 0x00000001
2559602682174 -- Value 1: 0x0002FF67, Value 2: 0x0002FF67, Product: 0x00000001
2562092436787 -- Value 1: 0x00360217, Value 2: 0x00360217, Product: 0x00000001
2562312925482 -- Value 1: 0x003788BA, Value 2: 0x003788BA, Product: 0x00000001
2564852361814 -- Value 1: 0x003199E9, Value 2: 0x003199E9, Product: 0x00000001
2565172081297 -- Value 1: 0x00319130, Value 2: 0x00319130, Product: 0x00000001
2565862226397 -- Value 1: 0x003624FD, Value 2: 0x003624FD, Product: 0x00000001
2566942196661 -- Value 1: 0x0036972C, Value 2: 0x0036972C, Product: 0x00000001
2568232017975 -- Value 1: 0x003532E4, Value 2: 0x003532E4, Product: 0x00000001
2568252847103 -- Value 1: 0x00351F98, Value 2: 0x00351F98, Product: 0x00000001
2569462771974 -- Value 1: 0x00324CBB, Value 2: 0x00324CBB, Product: 0x00000001
2569812701136 -- Value 1: 0x00323D1C, Value 2: 0x00323D1C, Product: 0x00000001
2570422098152 -- Value 1: 0x002CC6A5, Value 2: 0x002CC6A5, Product: 0x00000001
2571222908564 -- Value 1: 0x002CAB79, Value 2: 0x002CAB79, Product: 0x00000001
2571472281941 -- Value 1: 0x0021A7ED, Value 2: 0x0021A7ED, Product: 0x00000001
2573722934090 -- Value 1: 0x0029A221, Value 2: 0x0029A221, Product: 0x00000001
2575852624920 -- Value 1: 0x0029DD53, Value 2: 0x0029DD53, Product: 0x00000001
2577372919614 -- Value 1: 0x002B57A4, Value 2: 0x002B57A4, Product: 0x00000001
2577822172835 -- Value 1: 0x0020FFD2, Value 2: 0x0020FFD2, Product: 0x00000001
2578032190310 -- Value 1: 0x0024528A, Value 2: 0x0024528A, Product: 0x00000001
2578452443814 -- Value 1: 0x001FBED6, Value 2: 0x001FBED6, Product: 0x00000001
2578582610506 -- Value 1: 0x00245692, Value 2: 0x00245692, Product: 0x00000001
2578782611521 -- Value 1: 0x0022D7C2, Value 2: 0x0022D7C2, Product: 0x00000001
2579242639309 -- Value 1: 0x002C26A5, Value 2: 0x002C26A5, Product: 0x00000001
2579872244739 -- Value 1: 0x002A9BDC, Value 2: 0x002A9BDC, Product: 0x00000001
2600822866717 -- Value 1: 0x005415C5, Value 2: 0x005415C5, Product: 0x00000001
2600932382145 -- Value 1: 0x004E0EAB, Value 2: 0x004E0EAB, Product: 0x00000001
2600972513866 -- Value 1: 0x004C8FA3, Value 2: 0x004C8FA3, Product: 0x00000001
2601542626890 -- Value 1: 0x00540E8F, Value 2: 0x00540E8F, Product: 0x00000001
2601682930729 -- Value 1: 0x0050ED24, Value 2: 0x0050ED24, Product: 0x00000001
2601892737031 -- Value 1: 0x00526FA1, Value 2: 0x00526FA1, Product: 0x00000001
2601992220422 -- Value 1: 0x0050ED1B, Value 2: 0x0050ED1B, Product: 0x00000001
2602842943601 -- Value 1: 0x004CC69D, Value 2: 0x004CC69D, Product: 0x00000001
2603142002890 -- Value 1: 0x004E421B, Value 2: 0x004E421B, Product: 0x00000001
2603695995861 -- Value 1: 0x00156B29, Value 2: 0x00156B29, Product: 0x00000001
2603922867068 -- Value 1: 0x0052D18D, Value 2: 0x0052D18D, Product: 0x00000001
2605432926936 -- Value 1: 0x005492BA, Value 2: 0x005492BA, Product: 0x00000001
2606712391099 -- Value 1: 0x00508BF0, Value 2: 0x00508BF0, Product: 0x00000001
2606942718264 -- Value 1: 0x005AE86D, Value 2: 0x005AE86D, Product: 0x00000001
2607132799625 -- Value 1: 0x00592B22, Value 2: 0x00592B22, Product: 0x00000001
2607372830948 -- Value 1: 0x0051DF58, Value 2: 0x0051DF58, Product: 0x00000001
2607832816615 -- Value 1: 0x0054D914, Value 2: 0x0054D914, Product: 0x00000001
2609152344919 -- Value 1: 0x00585BEC, Value 2: 0x00585BEC, Product: 0x00000001
2609312827212 -- Value 1: 0x0053C868, Value 2: 0x0053C868, Product: 0x00000001
2609422017691 -- Value 1: 0x0053E757, Value 2: 0x0053E757, Product: 0x00000001
2609672170902 -- Value 1: 0x0052456A, Value 2: 0x0052456A, Product: 0x00000001
2610702804283 -- Value 1: 0x004804B1, Value 2: 0x004804B1, Product: 0x00000001
2610902794737 -- Value 1: 0x0047E848, Value 2: 0x0047E848, Product: 0x00000001
2611072990138 -- Value 1: 0x0041A6F6, Value 2: 0x0041A6F6, Product: 0x00000001
2612932191342 -- Value 1: 0x0040A117, Value 2: 0x0040A117, Product: 0x00000001
2613122924872 -- Value 1: 0x00481F3B, Value 2: 0x00481F3B, Product: 0x00000001
2613342914082 -- Value 1: 0x00482BBB, Value 2: 0x00482BBB, Product: 0x00000001
2614932651947 -- Value 1: 0x0040EF2D, Value 2: 0x0040EF2D, Product: 0x00000001
2616062833392 -- Value 1: 0x003E3CCB, Value 2: 0x003E3CCB, Product: 0x00000001
2617635992980 -- Value 1: 0x000554C7, Value 2: 0x000554C7, Product: 0x00000001
2618352933524 -- Value 1: 0x003E504A, Value 2: 0x003E504A, Product: 0x00000001
2619045885852 -- Value 1: 0x0007930A, Value 2: 0x0007930A, Product: 0x00000001
2619812151454 -- Value 1: 0x00418844, Value 2: 0x00418844, Product: 0x00000001
2632622815196 -- Value 1: 0x00654CC7, Value 2: 0x00654CC7, Product: 0x00000001
2633082920446 -- Value 1: 0x00608554, Value 2: 0x00608554, Product: 0x00000001
2633352930849 -- Value 1: 0x0060854C, Value 2: 0x0060854C, Product: 0x00000001
2639722271828 -- Value 1: 0x006008D5, Value 2: 0x006008D5, Product: 0x00000001
2647272379950 -- Value 1: 0x001C25DE, Value 2: 0x001C25DE, Product: 0x00000001
2650092173905 -- Value 1: 0x00002D1D, Value 2: 0x00002D1D, Product: 0x00000001
2650112972967 -- Value 1: 0x0001CB50, Value 2: 0x0001CB50, Product: 0x00000001
2653192973730 -- Value 1: 0x0000583D, Value 2: 0x0000583D, Product: 0x00000001
2653902387523 -- Value 1: 0x00067688, Value 2: 0x00067688, Product: 0x00000001
2655972336850 -- Value 1: 0x00084F37, Value 2: 0x00084F37, Product: 0x00000001
2656515998870 -- Value 1: 0x004BE72D, Value 2: 0x004BE72D, Product: 0x00000001
2658212727870 -- Value 1: 0x00076D58, Value 2: 0x00076D58, Product: 0x00000001
2659292712567 -- Value 1: 0x00030475, Value 2: 0x00030475, Product: 0x00000001
2661962656855 -- Value 1: 0x00357998, Value 2: 0x00357998, Product: 0x00000001
2662432592594 -- Value 1: 0x002FE4CE, Value 2: 0x002FE4CE, Product: 0x00000001
2662812506931 -- Value 1: 0x0035E6D5, Value 2: 0x0035E6D5, Product: 0x00000001
2664822411290 -- Value 1: 0x0031B999, Value 2: 0x0031B999, Product: 0x00000001
2664882471542 -- Value 1: 0x0031ACDE, Value 2: 0x0031ACDE, Product: 0x00000001
2665602571889 -- Value 1: 0x00319665, Value 2: 0x00319665, Product: 0x00000001
2668762676580 -- Value 1: 0x0036C68F, Value 2: 0x0036C68F, Product: 0x00000001
2668942171100 -- Value 1: 0x00321339, Value 2: 0x00321339, Product: 0x00000001
2668942611271 -- Value 1: 0x003226DF, Value 2: 0x003226DF, Product: 0x00000001
2669022711814 -- Value 1: 0x0032367B, Value 2: 0x0032367B, Product: 0x00000001
2669022781109 -- Value 1: 0x00323A63, Value 2: 0x00323A63, Product: 0x00000001
2669042181572 -- Value 1: 0x00324DD1, Value 2: 0x00324DD1, Product: 0x00000001
2669842757540 -- Value 1: 0x0035573D, Value 2: 0x0035573D, Product: 0x00000001
2671182297208 -- Value 1: 0x0024A52A, Value 2: 0x0024A52A, Product: 0x00000001
2672142347986 -- Value 1: 0x00253A15, Value 2: 0x00253A15, Product: 0x00000001
2674932805744 -- Value 1: 0x0028856C, Value 2: 0x0028856C, Product: 0x00000001
2675552188219 -- Value 1: 0x002D2D50, Value 2: 0x002D2D50, Product: 0x00000001
2677282684571 -- Value 1: 0x002A36CA, Value 2: 0x002A36CA, Product: 0x00000001
2677672789138 -- Value 1: 0x002B6076, Value 2: 0x002B6076, Product: 0x00000001
2679412647818 -- Value 1: 0x00260182, Value 2: 0x00260182, Product: 0x00000001
2679472128706 -- Value 1: 0x002DAE28, Value 2: 0x002DAE28, Product: 0x00000001
2700182732801 -- Value 1: 0x004DFE84, Value 2: 0x004DFE84, Product: 0x00000001
2700252708938 -- Value 1: 0x005A8660, Value 2: 0x005A8660, Product: 0x00000001
2700762428490 -- Value 1: 0x005A9DDF, Value 2: 0x005A9DDF, Product: 0x00000001
2700812380453 -- Value 1: 0x0051179D, Value 2: 0x0051179D, Product: 0x00000001
2700902823033 -- Value 1: 0x004C7C0F, Value 2: 0x004C7C0F, Product: 0x00000001
2701552590904 -- Value 1: 0x0050E49D, Value 2: 0x0050E49D, Product: 0x00000001
2701822083752 -- Value 1: 0x004C5CA4, Value 2: 0x004C5CA4, Product: 0x00000001
2702212389209 -- Value 1: 0x0058AD94, Value 2: 0x0058AD94, Product: 0x00000001
2702992103037 -- Value 1: 0x004CCA01, Value 2: 0x004CCA01, Product: 0x00000001
2703392643583 -- Value 1: 0x004CBF1B, Value 2: 0x004CBF1B, Product: 0x00000001
2703502727899 -- Value 1: 0x0052D5A5, Value 2: 0x0052D5A5, Product: 0x00000001
2703612813682 -- Value 1: 0x004CBF3C, Value 2: 0x004CBF3C, Product: 0x00000001
2703992327232 -- Value 1: 0x0052BD85, Value 2: 0x0052BD85, Product: 0x00000001
2704392429614 -- Value 1: 0x00599457, Value 2: 0x00599457, Product: 0x00000001
2705112826588 -- Value 1: 0x0054AE7C, Value 2: 0x0054AE7C, Product: 0x00000001
2705292902755 -- Value 1: 0x004E7FA9, Value 2: 0x004E7FA9, Product: 0x00000001
2705912270286 -- Value 1: 0x0051A0EE, Value 2: 0x0051A0EE, Product: 0x00000001
2705972048520 -- Value 1: 0x005AFF70, Value 2: 0x005AFF70, Product: 0x00000001
2706272798074 -- Value 1: 0x005AE422, Value 2: 0x005AE422, Product: 0x00000001
2706502979219 -- Value 1: 0x0059463B, Value 2: 0x0059463B, Product: 0x00000001
2707122387819 -- Value 1: 0x005351EE, Value 2: 0x005351EE, Product: 0x00000001
2707332238800 -- Value 1: 0x005AA970, Value 2: 0x005AA970, Product: 0x00000001
2708452319772 -- Value 1: 0x0059CAD2, Value 2: 0x0059CAD2, Product: 0x00000001
2708812457254 -- Value 1: 0x0053B082, Value 2: 0x0053B082, Product: 0x00000001
2708852740617 -- Value 1: 0x00521A20, Value 2: 0x00521A20, Product: 0x00000001
2709332937219 -- Value 1: 0x0053C7F8, Value 2: 0x0053C7F8, Product: 0x00000001
2709872351245 -- Value 1: 0x0050CDF2, Value 2: 0x0050CDF2, Product: 0x00000001
2711192194569 -- Value 1: 0x0047D479, Value 2: 0x0047D479, Product: 0x00000001
2712152891320 -- Value 1: 0x00409912, Value 2: 0x00409912, Product: 0x00000001
2713552860499 -- Value 1: 0x00420CF8, Value 2: 0x00420CF8, Product: 0x00000001
2713742190793 -- Value 1: 0x00420CAD, Value 2: 0x00420CAD, Product: 0x00000001
2713742951974 -- Value 1: 0x00407DB1, Value 2: 0x00407DB1, Product: 0x00000001
2713802680778 -- Value 1: 0x0042041E, Value 2: 0x0042041E, Product: 0x00000001
2715942621790 -- Value 1: 0x0040D44B, Value 2: 0x0040D44B, Product: 0x00000001
2716402991363 -- Value 1: 0x004144ED, Value 2: 0x004144ED, Product: 0x00000001
2716972903643 -- Value 1: 0x003E2FDA, Value 2: 0x003E2FDA, Product: 0x00000001
2717182368604 -- Value 1: 0x004B6728, Value 2: 0x004B6728, Product: 0x00000001
2717362878071 -- Value 1: 0x004B7B07, Value 2: 0x004B7B07, Product: 0x00000001
2717732598745 -- Value 1: 0x004B7702, Value 2: 0x004B7702, Product: 0x00000001
2719222078034 -- Value 1: 0x004C2693, Value 2: 0x004C2693, Product: 0x00000001
2719415388786 -- Value 1: 0x000F40B4, Value 2: 0x000F40B4, Product: 0x00000001
2719612363805 -- Value 1: 0x003E6ED4, Value 2: 0x003E6ED4, Product: 0x00000001
2719702033906 -- Value 1: 0x003E6EF3, Value 2: 0x003E6EF3, Product: 0x00000001
2719712732581 -- Value 1: 0x004014EE, Value 2: 0x004014EE, Product: 0x00000001
2719765891916 -- Value 1: 0x00016888, Value 2: 0x00016888, Product: 0x00000001
2719985941352 -- Value 1: 0x00017820, Value 2: 0x00017820, Product: 0x00000001
2732182653871 -- Value 1: 0x005C1BD6, Value 2: 0x005C1BD6, Product: 0x00000001
2732262480917 -- Value 1: 0x00609830, Value 2: 0x00609830, Product: 0x00000001
2734152900813 -- Value 1: 0x0060E690, Value 2: 0x0060E690, Product: 0x00000001
2736935398785 -- Value 1: 0x002D7687, Value 2: 0x002D7687, Product: 0x00000001
2737482831646 -- Value 1: 0x005F9A9A, Value 2: 0x005F9A9A, Product: 0x00000001
2740675889283 -- Value 1: 0x0058CC64, Value 2: 0x0058CC64, Product: 0x00000001
2747792954175 -- Value 1: 0x001AF459, Value 2: 0x001AF459, Product: 0x00000001
2748605889701 -- Value 1: 0x0059BE97, Value 2: 0x0059BE97, Product: 0x00000001
2748875881540 -- Value 1: 0x004DA041, Value 2: 0x004DA041, Product: 0x00000001
2749945419490 -- Value 1: 0x005A01AF, Value 2: 0x005A01AF, Product: 0x00000001
2750612083959 -- Value 1: 0x00003873, Value 2: 0x00003873, Product: 0x00000001
2753842213792 -- Value 1: 0x00006FC3, Value 2: 0x00006FC3, Product: 0x00000001
2754422153985 -- Value 1: 0x0000E8EB, Value 2: 0x0000E8EB, Product: 0x00000001
2755882303370 -- Value 1: 0x0000B584, Value 2: 0x0000B584, Product: 0x00000001
2758022402977 -- Value 1: 0x0002D935, Value 2: 0x0002D935, Product: 0x00000001
2759652841145 -- Value 1: 0x00048310, Value 2: 0x00048310, Product: 0x00000001
2759792123433 -- Value 1: 0x000169D5, Value 2: 0x000169D5, Product: 0x00000001
2759832542213 -- Value 1: 0x0002E8CA, Value 2: 0x0002E8CA, Product: 0x00000001
2759842302432 -- Value 1: 0x0002F059, Value 2: 0x0002F059, Product: 0x00000001
2760212186695 -- Value 1: 0x0035B0A0, Value 2: 0x0035B0A0, Product: 0x00000001
2763172385805 -- Value 1: 0x0037425B, Value 2: 0x0037425B, Product: 0x00000001
2764122001897 -- Value 1: 0x0031B90D, Value 2: 0x0031B90D, Product: 0x00000001
2764352491192 -- Value 1: 0x0031B92E, Value 2: 0x0031B92E, Product: 0x00000001
2764502911299 -- Value 1: 0x0031B93B, Value 2: 0x0031B93B, Product: 0x00000001
2764592521381 -- Value 1: 0x0031BD15, Value 2: 0x0031BD15, Product: 0x00000001
2765882265763 -- Value 1: 0x0037A7F6, Value 2: 0x0037A7F6, Product: 0x00000001
2769512281747 -- Value 1: 0x0032497E, Value 2: 0x0032497E, Product: 0x00000001
2769552281150 -- Value 1: 0x00324592, Value 2: 0x00324592, Product: 0x00000001
2769562811017 -- Value 1: 0x00323647, Value 2: 0x00323647, Product: 0x00000001
2769582151333 -- Value 1: 0x00323DD4, Value 2: 0x00323DD4, Product: 0x00000001
2769592511008 -- Value 1: 0x00323A15, Value 2: 0x00323A15, Product: 0x00000001
2769702087003 -- Value 1: 0x00354733, Value 2: 0x00354733, Product: 0x00000001
2770682584468 -- Value 1: 0x002976E0, Value 2: 0x002976E0, Product: 0x00000001
2770992165036 -- Value 1: 0x0027DCE1, Value 2: 0x0027DCE1, Product: 0x00000001
2774392380367 -- Value 1: 0x0023F8DD, Value 2: 0x0023F8DD, Product: 0x00000001
2774882200670 -- Value 1: 0x0023F4FE, Value 2: 0x0023F4FE, Product: 0x00000001
2775912681614 -- Value 1: 0x00222FAF, Value 2: 0x00222FAF, Product: 0x00000001
2776042739932 -- Value 1: 0x002B8721, Value 2: 0x002B8721, Product: 0x00000001
2776852840475 -- Value 1: 0x0024432A, Value 2: 0x0024432A, Product: 0x00000001
2777302399653 -- Value 1: 0x002B67BD, Value 2: 0x002B67BD, Product: 0x00000001
2777802576802 -- Value 1: 0x00271578, Value 2: 0x00271578, Product: 0x00000001
2800262419243 -- Value 1: 0x00590C4F, Value 2: 0x00590C4F, Product: 0x00000001
2800762023926 -- Value 1: 0x004C8149, Value 2: 0x004C8149, Product: 0x00000001
2800912217203 -- Value 1: 0x005293E6, Value 2: 0x005293E6, Product: 0x00000001
2801742182431 -- Value 1: 0x004DDCE5, Value 2: 0x004DDCE5, Product: 0x00000001
2803102903416 -- Value 1: 0x004C9CD3, Value 2: 0x004C9CD3, Product: 0x00000001
2803182673443 -- Value 1: 0x004CB042, Value 2: 0x004CB042, Product: 0x00000001
2803942536564 -- Value 1: 0x00545935, Value 2: 0x00545935, Product: 0x00000001
2803972073275 -- Value 1: 0x004CB410, Value 2: 0x004CB410, Product: 0x00000001
2804182113124 -- Value 1: 0x004D1D84, Value 2: 0x004D1D84, Product: 0x00000001
2805182052228 -- Value 1: 0x004E7D1E, Value 2: 0x004E7D1E, Product: 0x00000001
2805252450815 -- Value 1: 0x00517EC6, Value 2: 0x00517EC6, Product: 0x00000001
2805442366791 -- Value 1: 0x0054AB1B, Value 2: 0x0054AB1B, Product: 0x00000001
2805562786613 -- Value 1: 0x00548BEB, Value 2: 0x00548BEB, Product: 0x00000001
2805632393413 -- Value 1: 0x004CEAA6, Value 2: 0x004CEAA6, Product: 0x00000001
2805932442000 -- Value 1: 0x004E7574, Value 2: 0x004E7574, Product: 0x00000001
2807502901557 -- Value 1: 0x005055F3, Value 2: 0x005055F3, Product: 0x00000001
2807522191073 -- Value 1: 0x00505D8B, Value 2: 0x00505D8B, Product: 0x00000001
2807632841354 -- Value 1: 0x005055FA, Value 2: 0x005055FA, Product: 0x00000001
2807912010007 -- Value 1: 0x0051D0AA, Value 2: 0x0051D0AA, Product: 0x00000001
2809372223133 -- Value 1: 0x004DB5E2, Value 2: 0x004DB5E2, Product: 0x00000001
2812062232298 -- Value 1: 0x003F2753, Value 2: 0x003F2753, Product: 0x00000001
2812282442165 -- Value 1: 0x003F2396, Value 2: 0x003F2396, Product: 0x00000001
2812502172975 -- Value 1: 0x003F1F79, Value 2: 0x003F1F79, Product: 0x00000001
2813172330812 -- Value 1: 0x0041EE22, Value 2: 0x0041EE22, Product: 0x00000001
2813232781178 -- Value 1: 0x00407F1E, Value 2: 0x00407F1E, Product: 0x00000001
2813542721967 -- Value 1: 0x00408301, Value 2: 0x00408301, Product: 0x00000001
2814112172589 -- Value 1: 0x003F793A, Value 2: 0x003F793A, Product: 0x00000001
2815432962533 -- Value 1: 0x003F3720, Value 2: 0x003F3720, Product: 0x00000001
2816322163838 -- Value 1: 0x003E257B, Value 2: 0x003E257B, Product: 0x00000001
2816562181717 -- Value 1: 0x00412AE7, Value 2: 0x00412AE7, Product: 0x00000001
2816822033110 -- Value 1: 0x003E1DB5, Value 2: 0x003E1DB5, Product: 0x00000001
2817292142151 -- Value 1: 0x003F8CDD, Value 2: 0x003F8CDD, Product: 0x00000001
2819965791358 -- Value 1: 0x00017A3A, Value 2: 0x00017A3A, Product: 0x00000001
2821895337285 -- Value 1: 0x0037632D, Value 2: 0x0037632D, Product: 0x00000001
2824495874280 -- Value 1: 0x00369FFB, Value 2: 0x00369FFB, Product: 0x00000001
2826965803598 -- Value 1: 0x0031BA0D, Value 2: 0x0031BA0D, Product: 0x00000001
2830042815008 -- Value 1: 0x0064E3B9, Value 2: 0x0064E3B9, Product: 0x00000001
2830582240737 -- Value 1: 0x00605372, Value 2: 0x00605372, Product: 0x00000001
2831085875091 -- Value 1: 0x00250FE2, Value 2: 0x00250FE2, Product: 0x00000001
2831422710902 -- Value 1: 0x00602897, Value 2: 0x00602897, Product: 0x00000001
2832615988124 -- Value 1: 0x002CBCAC, Value 2: 0x002CBCAC, Product: 0x00000001
2833042835216 -- Value 1: 0x006506E1, Value 2: 0x006506E1, Product: 0x00000001
2835395697295 -- Value 1: 0x0028B927, Value 2: 0x0028B927, Product: 0x00000001
2836562071184 -- Value 1: 0x005FD287, Value 2: 0x005FD287, Product: 0x00000001
2836822273679 -- Value 1: 0x005CB991, Value 2: 0x005CB991, Product: 0x00000001
2837252691307 -- Value 1: 0x005F8C5A, Value 2: 0x005F8C5A, Product: 0x00000001
2838945734798 -- Value 1: 0x002780A9, Value 2: 0x002780A9, Product: 0x00000001
2839845560786 -- Value 1: 0x00219135, Value 2: 0x00219135, Product: 0x00000001
2839895454644 -- Value 1: 0x0027A3BB, Value 2: 0x0027A3BB, Product: 0x00000001
2840265139892 -- Value 1: 0x0058C9C7, Value 2: 0x0058C9C7, Product: 0x00000001
2840365891388 -- Value 1: 0x004CE715, Value 2: 0x004CE715, Product: 0x00000001
2841452508459 -- Value 1: 0x001D5EEE, Value 2: 0x001D5EEE, Product: 0x00000001
2841785608297 -- Value 1: 0x005A297A, Value 2: 0x005A297A, Product: 0x00000001
2841785922782 -- Value 1: 0x005153E0, Value 2: 0x005153E0, Product: 0x00000001
2842695860098 -- Value 1: 0x004E1BB3, Value 2: 0x004E1BB3, Product: 0x00000001
2842985974625 -- Value 1: 0x00543240, Value 2: 0x00543240, Product: 0x00000001
2843285499700 -- Value 1: 0x0058DD4A, Value 2: 0x0058DD4A, Product: 0x00000001
2843885934063 -- Value 1: 0x0053FB90, Value 2: 0x0053FB90, Product: 0x00000001
2844185973585 -- Value 1: 0x00509090, Value 2: 0x00509090, Product: 0x00000001
2845875373986 -- Value 1: 0x0050696B, Value 2: 0x0050696B, Product: 0x00000001
2845995103814 -- Value 1: 0x005055B3, Value 2: 0x005055B3, Product: 0x00000001
2846075290989 -- Value 1: 0x004EBBC5, Value 2: 0x004EBBC5, Product: 0x00000001
2846252368058 -- Value 1: 0x001DD40A, Value 2: 0x001DD40A, Product: 0x00000001
2849065902811 -- Value 1: 0x005249F3, Value 2: 0x005249F3, Product: 0x00000001
2849125962498 -- Value 1: 0x00526161, Value 2: 0x00526161, Product: 0x00000001
2849495346281 -- Value 1: 0x00587F81, Value 2: 0x00587F81, Product: 0x00000001
2850592240367 -- Value 1: 0x0004D97B, Value 2: 0x0004D97B, Product: 0x00000001
2852095582782 -- Value 1: 0x0041EA41, Value 2: 0x0041EA41, Product: 0x00000001
2852995443839 -- Value 1: 0x00405811, Value 2: 0x00405811, Product: 0x00000001
2853302387224 -- Value 1: 0x0006777D, Value 2: 0x0006777D, Product: 0x00000001
2854322487709 -- Value 1: 0x0006E525, Value 2: 0x0006E525, Product: 0x00000001
2854505888572 -- Value 1: 0x004B9B0F, Value 2: 0x004B9B0F, Product: 0x00000001
2854592626576 -- Value 1: 0x00087F3B, Value 2: 0x00087F3B, Product: 0x00000001
2854645998720 -- Value 1: 0x004B8F49, Value 2: 0x004B8F49, Product: 0x00000001
2855422392416 -- Value 1: 0x00022607, Value 2: 0x00022607, Product: 0x00000001
2856192170420 -- Value 1: 0x0005B445, Value 2: 0x0005B445, Product: 0x00000001
2857232271956 -- Value 1: 0x00040A70, Value 2: 0x00040A70, Product: 0x00000001
2857875782974 -- Value 1: 0x0042445C, Value 2: 0x0042445C, Product: 0x00000001
2857932621011 -- Value 1: 0x0003FAF8, Value 2: 0x0003FAF8, Product: 0x00000001
2858525148687 -- Value 1: 0x004C2369, Value 2: 0x004C2369, Product: 0x00000001
2858532026208 -- Value 1: 0x0008E0B2, Value 2: 0x0008E0B2, Product: 0x00000001
2858545057996 -- Value 1: 0x00478BBF, Value 2: 0x00478BBF, Product: 0x00000001
2858552513636 -- Value 1: 0x0001439E, Value 2: 0x0001439E, Product: 0x00000001
2858585218009 -- Value 1: 0x004C043A, Value 2: 0x004C043A, Product: 0x00000001
2858612542006 -- Value 1: 0x0002C652, Value 2: 0x0002C652, Product: 0x00000001
2858875647944 -- Value 1: 0x004787DD, Value 2: 0x004787DD, Product: 0x00000001
2859042527368 -- Value 1: 0x000798B7, Value 2: 0x000798B7, Product: 0x00000001
2859455930696 -- Value 1: 0x004011E6, Value 2: 0x004011E6, Product: 0x00000001
2860962050638 -- Value 1: 0x00328CC1, Value 2: 0x00328CC1, Product: 0x00000001
2862602155695 -- Value 1: 0x00378613, Value 2: 0x00378613, Product: 0x00000001
2862972761348 -- Value 1: 0x00316002, Value 2: 0x00316002, Product: 0x00000001
2864032701093 -- Value 1: 0x0031B9EC, Value 2: 0x0031B9EC, Product: 0x00000001
2864172951507 -- Value 1: 0x00319EAC, Value 2: 0x00319EAC, Product: 0x00000001
2864492511665 -- Value 1: 0x0031B60D, Value 2: 0x0031B60D, Product: 0x00000001
2864942171665 -- Value 1: 0x0031B5DD, Value 2: 0x0031B5DD, Product: 0x00000001
2865622435192 -- Value 1: 0x0037AD53, Value 2: 0x0037AD53, Product: 0x00000001
2867902171741 -- Value 1: 0x0031D521, Value 2: 0x0031D521, Product: 0x00000001
2869402016500 -- Value 1: 0x0036CE85, Value 2: 0x0036CE85, Product: 0x00000001
2870242462280 -- Value 1: 0x002058B1, Value 2: 0x002058B1, Product: 0x00000001
2870622537913 -- Value 1: 0x0024C973, Value 2: 0x0024C973, Product: 0x00000001
2871102933719 -- Value 1: 0x001E87F3, Value 2: 0x001E87F3, Product: 0x00000001
2871552375598 -- Value 1: 0x0027CEBA, Value 2: 0x0027CEBA, Product: 0x00000001
2871812717227 -- Value 1: 0x0024AE04, Value 2: 0x0024AE04, Product: 0x00000001
2872282601643 -- Value 1: 0x00221DD2, Value 2: 0x00221DD2, Product: 0x00000001
2872372874074 -- Value 1: 0x0029C2FE, Value 2: 0x0029C2FE, Product: 0x00000001
2872692032116 -- Value 1: 0x00208397, Value 2: 0x00208397, Product: 0x00000001
2873272921006 -- Value 1: 0x0021E73C, Value 2: 0x0021E73C, Product: 0x00000001
2873845292867 -- Value 1: 0x00603051, Value 2: 0x00603051, Product: 0x00000001
2874862314525 -- Value 1: 0x002A050B, Value 2: 0x002A050B, Product: 0x00000001
2875372219210 -- Value 1: 0x002BA722, Value 2: 0x002BA722, Product: 0x00000001
2877052391726 -- Value 1: 0x00228AF8, Value 2: 0x00228AF8, Product: 0x00000001
2878202263034 -- Value 1: 0x001FC811, Value 2: 0x001FC811, Product: 0x00000001
2878332555427 -- Value 1: 0x0028F3C0, Value 2: 0x0028F3C0, Product: 0x00000001
2900372703954 -- Value 1: 0x004C859E, Value 2: 0x004C859E, Product: 0x00000001
2901692110501 -- Value 1: 0x0050E6A9, Value 2: 0x0050E6A9, Product: 0x00000001
2901702469621 -- Value 1: 0x0058DDD1, Value 2: 0x0058DDD1, Product: 0x00000001
2902342940532 -- Value 1: 0x00515FFB, Value 2: 0x00515FFB, Product: 0x00000001
2902702448313 -- Value 1: 0x005A31A9, Value 2: 0x005A31A9, Product: 0x00000001
2903552333921 -- Value 1: 0x004CA89C, Value 2: 0x004CA89C, Product: 0x00000001
2903642306903 -- Value 1: 0x005441ED, Value 2: 0x005441ED, Product: 0x00000001
2903942107727 -- Value 1: 0x0052C331, Value 2: 0x0052C331, Product: 0x00000001
2904702916331 -- Value 1: 0x0054BB57, Value 2: 0x0054BB57, Product: 0x00000001
2904972477329 -- Value 1: 0x00533894, Value 2: 0x00533894, Product: 0x00000001
2905002528578 -- Value 1: 0x005B0C5F, Value 2: 0x005B0C5F, Product: 0x00000001
2905392110232 -- Value 1: 0x005186D1, Value 2: 0x005186D1, Product: 0x00000001
2905642639067 -- Value 1: 0x005989C9, Value 2: 0x005989C9, Product: 0x00000001
2907822331125 -- Value 1: 0x00505223, Value 2: 0x00505223, Product: 0x00000001
2909272673239 -- Value 1: 0x004DB66E, Value 2: 0x004DB66E, Product: 0x00000001
2910395823285 -- Value 1: 0x0003A97F, Value 2: 0x0003A97F, Product: 0x00000001
2910712040931 -- Value 1: 0x0041CF66, Value 2: 0x0041CF66, Product: 0x00000001
2913662221838 -- Value 1: 0x00406FC1, Value 2: 0x00406FC1, Product: 0x00000001
2915672971620 -- Value 1: 0x0040C210, Value 2: 0x0040C210, Product: 0x00000001
2916442318407 -- Value 1: 0x004B8F77, Value 2: 0x004B8F77, Product: 0x00000001
2916792772513 -- Value 1: 0x003FA4C5, Value 2: 0x003FA4C5, Product: 0x00000001
2916925941919 -- Value 1: 0x0000D6C6, Value 2: 0x0000D6C6, Product: 0x00000001
2917352972668 -- Value 1: 0x003F9932, Value 2: 0x003F9932, Product: 0x00000001
2917452281651 -- Value 1: 0x004113CE, Value 2: 0x004113CE, Product: 0x00000001
2917632768558 -- Value 1: 0x004B7440, Value 2: 0x004B7440, Product: 0x00000001
2918065492490 -- Value 1: 0x0005EF6D, Value 2: 0x0005EF6D, Product: 0x00000001
2918895242177 -- Value 1: 0x0005DFD3, Value 2: 0x0005DFD3, Product: 0x00000001
2921865943682 -- Value 1: 0x0031491F, Value 2: 0x0031491F, Product: 0x00000001
2921872417248 -- Value 1: 0x00710194, Value 2: 0x00710194, Product: 0x00000001
2923195797924 -- Value 1: 0x00370DAB, Value 2: 0x00370DAB, Product: 0x00000001
2928075824961 -- Value 1: 0x0036B7C8, Value 2: 0x0036B7C8, Product: 0x00000001
2930082270121 -- Value 1: 0x006057BE, Value 2: 0x006057BE, Product: 0x00000001
2930632930501 -- Value 1: 0x0060502C, Value 2: 0x0060502C, Product: 0x00000001
2933395093496 -- Value 1: 0x0021B4BF, Value 2: 0x0021B4BF, Product: 0x00000001
2933695287391 -- Value 1: 0x0027CF53, Value 2: 0x0027CF53, Product: 0x00000001
2934572937653 -- Value 1: 0x00627EC8, Value 2: 0x00627EC8, Product: 0x00000001
2935895130789 -- Value 1: 0x00211C5D, Value 2: 0x00211C5D, Product: 0x00000001
2936862153671 -- Value 1: 0x005CB9FB, Value 2: 0x005CB9FB, Product: 0x00000001
2937632631841 -- Value 1: 0x005F9C64, Value 2: 0x005F9C64, Product: 0x00000001
2937922124477 -- Value 1: 0x0067414F, Value 2: 0x0067414F, Product: 0x00000001
2938072761303 -- Value 1: 0x005FDAEC, Value 2: 0x005FDAEC, Product: 0x00000001
2938632733768 -- Value 1: 0x005CE518, Value 2: 0x005CE518, Product: 0x00000001
2939885176627 -- Value 1: 0x002A9A0C, Value 2: 0x002A9A0C, Product: 0x00000001
2940955180695 -- Value 1: 0x004E6A01, Value 2: 0x004E6A01, Product: 0x00000001
2941085091392 -- Value 1: 0x004CBC5E, Value 2: 0x004CBC5E, Product: 0x00000001
2941782364609 -- Value 1: 0x0019F814, Value 2: 0x0019F814, Product: 0x00000001
2941815389258 -- Value 1: 0x00589B71, Value 2: 0x00589B71, Product: 0x00000001
2941845979049 -- Value 1: 0x00589F6D, Value 2: 0x00589F6D, Product: 0x00000001
2941972473160 -- Value 1: 0x000F6164, Value 2: 0x000F6164, Product: 0x00000001
2942135885086 -- Value 1: 0x0052B3DC, Value 2: 0x0052B3DC, Product: 0x00000001
2942895768623 -- Value 1: 0x005A8399, Value 2: 0x005A8399, Product: 0x00000001
2945385732991 -- Value 1: 0x0051EC60, Value 2: 0x0051EC60, Product: 0x00000001
2945495968363 -- Value 1: 0x005ABA85, Value 2: 0x005ABA85, Product: 0x00000001
2945845828402 -- Value 1: 0x005AB2B7, Value 2: 0x005AB2B7, Product: 0x00000001
2946542236080 -- Value 1: 0x00181BA1, Value 2: 0x00181BA1, Product: 0x00000001
2947285190198 -- Value 1: 0x004E9114, Value 2: 0x004E9114, Product: 0x00000001
2948452214460 -- Value 1: 0x001B4820, Value 2: 0x001B4820, Product: 0x00000001
2948835629577 -- Value 1: 0x0059D3EC, Value 2: 0x0059D3EC, Product: 0x00000001
2948945359663 -- Value 1: 0x0059D79D, Value 2: 0x0059D79D, Product: 0x00000001
2949095925102 -- Value 1: 0x0053D4E5, Value 2: 0x0053D4E5, Product: 0x00000001
2949285865401 -- Value 1: 0x0053D4EE, Value 2: 0x0053D4EE, Product: 0x00000001
2949675876875 -- Value 1: 0x00586CB0, Value 2: 0x00586CB0, Product: 0x00000001
2950292016171 -- Value 1: 0x0007E34B, Value 2: 0x0007E34B, Product: 0x00000001
2950422797376 -- Value 1: 0x00065CB3, Value 2: 0x00065CB3, Product: 0x00000001
2951702386549 -- Value 1: 0x0007B831, Value 2: 0x0007B831, Product: 0x00000001
2951762280360 -- Value 1: 0x0004B2C9, Value 2: 0x0004B2C9, Product: 0x00000001
2951782213342 -- Value 1: 0x0000171E, Value 2: 0x0000171E, Product: 0x00000001
2952062482401 -- Value 1: 0x00020385, Value 2: 0x00020385, Product: 0x00000001
2952932012451 -- Value 1: 0x00020F18, Value 2: 0x00020F18, Product: 0x00000001
2953102851560 -- Value 1: 0x00037A99, Value 2: 0x00037A99, Product: 0x00000001
2958362233648 -- Value 1: 0x00014FAF, Value 2: 0x00014FAF, Product: 0x00000001
2959855181554 -- Value 1: 0x003E83B1, Value 2: 0x003E83B1, Product: 0x00000001
2965422971608 -- Value 1: 0x003177FD, Value 2: 0x003177FD, Product: 0x00000001
2965602791424 -- Value 1: 0x00317FA9, Value 2: 0x00317FA9, Product: 0x00000001
2965822026623 -- Value 1: 0x00361381, Value 2: 0x00361381, Product: 0x00000001
2966772016937 -- Value 1: 0x003684C4, Value 2: 0x003684C4, Product: 0x00000001
2970482307278 -- Value 1: 0x0024E10C, Value 2: 0x0024E10C, Product: 0x00000001
2971195841813 -- Value 1: 0x005BEF27, Value 2: 0x005BEF27, Product: 0x00000001
2971702472783 -- Value 1: 0x00203201, Value 2: 0x00203201, Product: 0x00000001
2976472574864 -- Value 1: 0x002A636A, Value 2: 0x002A636A, Product: 0x00000001
2976902320739 -- Value 1: 0x00243529, Value 2: 0x00243529, Product: 0x00000001
2979362716441 -- Value 1: 0x00279C7D, Value 2: 0x00279C7D, Product: 0x00000001
2979562626715 -- Value 1: 0x002788FF, Value 2: 0x002788FF, Product: 0x00000001
3010810171643 -- Value 1: 0x00252834, Value 2: 0x00252834, Product: 0x00000001
3011210485352 -- Value 1: 0x001EE2EE, Value 2: 0x001EE2EE, Product: 0x00000001
3015090720118 -- Value 1: 0x00271095, Value 2: 0x00271095, Product: 0x00000001
3017330781473 -- Value 1: 0x00255342, Value 2: 0x00255342, Product: 0x00000001
3018610356075 -- Value 1: 0x002460FA, Value 2: 0x002460FA, Product: 0x00000001
3019670716331 -- Value 1: 0x00247894, Value 2: 0x00247894, Product: 0x00000001
3035840277143 -- Value 1: 0x00040B97, Value 2: 0x00040B97, Product: 0x00000001
3036800174276 -- Value 1: 0x000261DD, Value 2: 0x000261DD, Product: 0x00000001
3038210575434 -- Value 1: 0x0001390E, Value 2: 0x0001390E, Product: 0x00000001
3039550257033 -- Value 1: 0x00046D58, Value 2: 0x00046D58, Product: 0x00000001
3039610656222 -- Value 1: 0x0005F804, Value 2: 0x0005F804, Product: 0x00000001
3057610243853 -- Value 1: 0x00656192, Value 2: 0x00656192, Product: 0x00000001
3064820635268 -- Value 1: 0x004D78A5, Value 2: 0x004D78A5, Product: 0x00000001
3064900747656 -- Value 1: 0x00507A21, Value 2: 0x00507A21, Product: 0x00000001
3069040066018 -- Value 1: 0x005246F5, Value 2: 0x005246F5, Product: 0x00000001
3069320577142 -- Value 1: 0x0050D3F5, Value 2: 0x0050D3F5, Product: 0x00000001
3071750447795 -- Value 1: 0x0040843C, Value 2: 0x0040843C, Product: 0x00000001
3072230922241 -- Value 1: 0x0047F2AC, Value 2: 0x0047F2AC, Product: 0x00000001
3072300947765 -- Value 1: 0x0040595F, Value 2: 0x0040595F, Product: 0x00000001
3073100587766 -- Value 1: 0x0040323D, Value 2: 0x0040323D, Product: 0x00000001
3073230934348 -- Value 1: 0x003EA3DC, Value 2: 0x003EA3DC, Product: 0x00000001
3075760697469 -- Value 1: 0x00411C91, Value 2: 0x00411C91, Product: 0x00000001
3079020145725 -- Value 1: 0x003E6CDD, Value 2: 0x003E6CDD, Product: 0x00000001
3079570737663 -- Value 1: 0x004189FC, Value 2: 0x004189FC, Product: 0x00000001
3108670220251 -- Value 1: 0x0036B7F2, Value 2: 0x0036B7F2, Product: 0x00000001
3109200201533 -- Value 1: 0x003540F1, Value 2: 0x003540F1, Product: 0x00000001
3114750301187 -- Value 1: 0x0025D3B2, Value 2: 0x0025D3B2, Product: 0x00000001
3116730922542 -- Value 1: 0x002A0A08, Value 2: 0x002A0A08, Product: 0x00000001
3118750026309 -- Value 1: 0x00245CA8, Value 2: 0x00245CA8, Product: 0x00000001
3123970412146 -- Value 1: 0x001A0470, Value 2: 0x001A0470, Product: 0x00000001
3130100286364 -- Value 1: 0x00052477, Value 2: 0x00052477, Product: 0x00000001
3131790147241 -- Value 1: 0x00036F05, Value 2: 0x00036F05, Product: 0x00000001
3132080375038 -- Value 1: 0x00002EE8, Value 2: 0x00002EE8, Product: 0x00000001
3146070006680 -- Value 1: 0x00704A26, Value 2: 0x00704A26, Product: 0x00000001
3151230336932 -- Value 1: 0x00607756, Value 2: 0x00607756, Product: 0x00000001
3160040526941 -- Value 1: 0x00516815, Value 2: 0x00516815, Product: 0x00000001
3160400151871 -- Value 1: 0x0052F279, Value 2: 0x0052F279, Product: 0x00000001
3165700926275 -- Value 1: 0x0051E143, Value 2: 0x0051E143, Product: 0x00000001
3172090552115 -- Value 1: 0x0047DEB5, Value 2: 0x0047DEB5, Product: 0x00000001
3179120315654 -- Value 1: 0x003E8015, Value 2: 0x003E8015, Product: 0x00000001
3201530876305 -- Value 1: 0x0032AE2E, Value 2: 0x0032AE2E, Product: 0x00000001
3206930747174 -- Value 1: 0x0031B01A, Value 2: 0x0031B01A, Product: 0x00000001
3207820067554 -- Value 1: 0x00318131, Value 2: 0x00318131, Product: 0x00000001
3210160701824 -- Value 1: 0x0025213F, Value 2: 0x0025213F, Product: 0x00000001
3230810674412 -- Value 1: 0x0001FD32, Value 2: 0x0001FD32, Product: 0x00000001
3231260214795 -- Value 1: 0x0001F54F, Value 2: 0x0001F54F, Product: 0x00000001
3233940554777 -- Value 1: 0x00019F79, Value 2: 0x00019F79, Product: 0x00000001
3254710482531 -- Value 1: 0x00675696, Value 2: 0x00675696, Product: 0x00000001
3262590604413 -- Value 1: 0x004DFA57, Value 2: 0x004DFA57, Product: 0x00000001
3268150165002 -- Value 1: 0x004D90AA, Value 2: 0x004D90AA, Product: 0x00000001
3306270627944 -- Value 1: 0x0031ABD4, Value 2: 0x0031ABD4, Product: 0x00000001
3313580133753 -- Value 1: 0x0027BCC4, Value 2: 0x0027BCC4, Product: 0x00000001
3314130469537 -- Value 1: 0x002AE18A, Value 2: 0x002AE18A, Product: 0x00000001
3348110624106 -- Value 1: 0x006D9BA8, Value 2: 0x006D9BA8, Product: 0x00000001
3351290655224 -- Value 1: 0x005BE85B, Value 2: 0x005BE85B, Product: 0x00000001
3354830335459 -- Value 1: 0x005CAF5E, Value 2: 0x005CAF5E, Product: 0x00000001
3357840436332 -- Value 1: 0x0060C67F, Value 2: 0x0060C67F, Product: 0x00000001
3362840001668 -- Value 1: 0x0052A90F, Value 2: 0x0052A90F, Product: 0x00000001
3366030000961 -- Value 1: 0x0054CBF4, Value 2: 0x0054CBF4, Product: 0x00000001
3369330506278 -- Value 1: 0x00524F40, Value 2: 0x00524F40, Product: 0x00000001
3375650164827 -- Value 1: 0x003F8694, Value 2: 0x003F8694, Product: 0x00000001
3377020167801 -- Value 1: 0x0040B74B, Value 2: 0x0040B74B, Product: 0x00000001
3406440187624 -- Value 1: 0x0031A511, Value 2: 0x0031A511, Product: 0x00000001
3415250349476 -- Value 1: 0x002ACB2E, Value 2: 0x002ACB2E, Product: 0x00000001
3415360916335 -- Value 1: 0x00240CD9, Value 2: 0x00240CD9, Product: 0x00000001
3433840024734 -- Value 1: 0x00019083, Value 2: 0x00019083, Product: 0x00000001
3436130831261 -- Value 1: 0x0006FB76, Value 2: 0x0006FB76, Product: 0x00000001
3437360234598 -- Value 1: 0x00024437, Value 2: 0x00024437, Product: 0x00000001
3464020448659 -- Value 1: 0x005A4787, Value 2: 0x005A4787, Product: 0x00000001
3466560314957 -- Value 1: 0x004EA6C7, Value 2: 0x004EA6C7, Product: 0x00000001
3467750660942 -- Value 1: 0x00549E4E, Value 2: 0x00549E4E, Product: 0x00000001
3471360782433 -- Value 1: 0x00480F6F, Value 2: 0x00480F6F, Product: 0x00000001
3473190172264 -- Value 1: 0x0047D4C9, Value 2: 0x0047D4C9, Product: 0x00000001
3506250287078 -- Value 1: 0x0031B05A, Value 2: 0x0031B05A, Product: 0x00000001
3506650567686 -- Value 1: 0x0031BC36, Value 2: 0x0031BC36, Product: 0x00000001
3506710967265 -- Value 1: 0x0031B48A, Value 2: 0x0031B48A, Product: 0x00000001
3506810107141 -- Value 1: 0x0031AC80, Value 2: 0x0031AC80, Product: 0x00000001
3507380537675 -- Value 1: 0x00318984, Value 2: 0x00318984, Product: 0x00000001
3511510091421 -- Value 1: 0x0024FA8A, Value 2: 0x0024FA8A, Product: 0x00000001[/tt]
November 22, 2005, 12:11 AM
JoeTheOdd
SMF turnicated my list. Nice =).

[tt]3517950411274 -- Value 1: 0x00255486, Value 2: 0x00255486, Product: 0x00000001
3531220285523 -- Value 1: 0x00005B79, Value 2: 0x00005B79, Product: 0x00000001
3538260664532 -- Value 1: 0x0002C0FB, Value 2: 0x0002C0FB, Product: 0x00000001
3550070373280 -- Value 1: 0x00654F40, Value 2: 0x00654F40, Product: 0x00000001
3558720175231 -- Value 1: 0x005CC791, Value 2: 0x005CC791, Product: 0x00000001
3565640129518 -- Value 1: 0x005889A7, Value 2: 0x005889A7, Product: 0x00000001
3606170157681 -- Value 1: 0x0031BD38, Value 2: 0x0031BD38, Product: 0x00000001
3606410297371 -- Value 1: 0x0031B18A, Value 2: 0x0031B18A, Product: 0x00000001
3606420097123 -- Value 1: 0x0031A5E9, Value 2: 0x0031A5E9, Product: 0x00000001
3606430277861 -- Value 1: 0x0031B574, Value 2: 0x0031B574, Product: 0x00000001
3606430637878 -- Value 1: 0x0031B1B4, Value 2: 0x0031B1B4, Product: 0x00000001
3606440097431 -- Value 1: 0x0031A1FB, Value 2: 0x0031A1FB, Product: 0x00000001
3606440687302 -- Value 1: 0x00319E27, Value 2: 0x00319E27, Product: 0x00000001
3606460007944 -- Value 1: 0x0031ADB5, Value 2: 0x0031ADB5, Product: 0x00000001
3606460447180 -- Value 1: 0x0031BD6B, Value 2: 0x0031BD6B, Product: 0x00000001
3606480467070 -- Value 1: 0x0031B1CA, Value 2: 0x0031B1CA, Product: 0x00000001
3606480467360 -- Value 1: 0x0031B5B2, Value 2: 0x0031B5B2, Product: 0x00000001
3606490027660 -- Value 1: 0x0031B58B, Value 2: 0x0031B58B, Product: 0x00000001
3606490107616 -- Value 1: 0x00319A29, Value 2: 0x00319A29, Product: 0x00000001
3606490707274 -- Value 1: 0x0031B1AD, Value 2: 0x0031B1AD, Product: 0x00000001
3606510497163 -- Value 1: 0x0031B5AE, Value 2: 0x0031B5AE, Product: 0x00000001
3606510557298 -- Value 1: 0x0031B976, Value 2: 0x0031B976, Product: 0x00000001
3606510817778 -- Value 1: 0x0031B1D8, Value 2: 0x0031B1D8, Product: 0x00000001
3606520547094 -- Value 1: 0x0031B975, Value 2: 0x0031B975, Product: 0x00000001
3606520857649 -- Value 1: 0x0031ADEF, Value 2: 0x0031ADEF, Product: 0x00000001
3606540357183 -- Value 1: 0x0031BD4F, Value 2: 0x0031BD4F, Product: 0x00000001
3606560817311 -- Value 1: 0x00319A6B, Value 2: 0x00319A6B, Product: 0x00000001
3606570827016 -- Value 1: 0x00319A6A, Value 2: 0x00319A6A, Product: 0x00000001
3606580307070 -- Value 1: 0x0031B184, Value 2: 0x0031B184, Product: 0x00000001
3606580457247 -- Value 1: 0x0031ADE2, Value 2: 0x0031ADE2, Product: 0x00000001
3606590327343 -- Value 1: 0x0031AD9D, Value 2: 0x0031AD9D, Product: 0x00000001
3606600097062 -- Value 1: 0x0031B587, Value 2: 0x0031B587, Product: 0x00000001
3606600117780 -- Value 1: 0x0031BD37, Value 2: 0x0031BD37, Product: 0x00000001
3606620387365 -- Value 1: 0x0031B56B, Value 2: 0x0031B56B, Product: 0x00000001
3606620777490 -- Value 1: 0x0031B989, Value 2: 0x0031B989, Product: 0x00000001
3606650547384 -- Value 1: 0x0031BD62, Value 2: 0x0031BD62, Product: 0x00000001
3606660717814 -- Value 1: 0x00319A37, Value 2: 0x00319A37, Product: 0x00000001
3606670537486 -- Value 1: 0x0031BD60, Value 2: 0x0031BD60, Product: 0x00000001
3606680517546 -- Value 1: 0x0031ADD8, Value 2: 0x0031ADD8, Product: 0x00000001
3606710447287 -- Value 1: 0x0031BD68, Value 2: 0x0031BD68, Product: 0x00000001
3606710657291 -- Value 1: 0x0031B994, Value 2: 0x0031B994, Product: 0x00000001
3606720227789 -- Value 1: 0x0031BD53, Value 2: 0x0031BD53, Product: 0x00000001
3606720827569 -- Value 1: 0x0031B5BF, Value 2: 0x0031B5BF, Product: 0x00000001
3606730297642 -- Value 1: 0x0031ADA4, Value 2: 0x0031ADA4, Product: 0x00000001
3606770277396 -- Value 1: 0x0031B96E, Value 2: 0x0031B96E, Product: 0x00000001
3606770567293 -- Value 1: 0x0031B978, Value 2: 0x0031B978, Product: 0x00000001
3606780347748 -- Value 1: 0x0031AD9C, Value 2: 0x0031AD9C, Product: 0x00000001
3606800277424 -- Value 1: 0x0031A5D3, Value 2: 0x0031A5D3, Product: 0x00000001
3606830477548 -- Value 1: 0x0031ADE0, Value 2: 0x0031ADE0, Product: 0x00000001
3606850047505 -- Value 1: 0x00319E12, Value 2: 0x00319E12, Product: 0x00000001
3606860107233 -- Value 1: 0x0031A1F3, Value 2: 0x0031A1F3, Product: 0x00000001
3606870267161 -- Value 1: 0x0031B570, Value 2: 0x0031B570, Product: 0x00000001
3606900117143 -- Value 1: 0x0031ADAD, Value 2: 0x0031ADAD, Product: 0x00000001
3606900377767 -- Value 1: 0x0031B569, Value 2: 0x0031B569, Product: 0x00000001
3606910167530 -- Value 1: 0x0031A1F4, Value 2: 0x0031A1F4, Product: 0x00000001
3606960437753 -- Value 1: 0x0031A9F5, Value 2: 0x0031A9F5, Product: 0x00000001
3606970077042 -- Value 1: 0x0031ADB4, Value 2: 0x0031ADB4, Product: 0x00000001
3607000337392 -- Value 1: 0x00319253, Value 2: 0x00319253, Product: 0x00000001
3607030737296 -- Value 1: 0x00319278, Value 2: 0x00319278, Product: 0x00000001
3607040337389 -- Value 1: 0x0031963F, Value 2: 0x0031963F, Product: 0x00000001
3607040447187 -- Value 1: 0x0031965D, Value 2: 0x0031965D, Product: 0x00000001
3607060097621 -- Value 1: 0x00317ED5, Value 2: 0x00317ED5, Product: 0x00000001
3607070877754 -- Value 1: 0x003182FA, Value 2: 0x003182FA, Product: 0x00000001
3607100297305 -- Value 1: 0x003176F3, Value 2: 0x003176F3, Product: 0x00000001
3607110327399 -- Value 1: 0x00319252, Value 2: 0x00319252, Product: 0x00000001
3607130717970 -- Value 1: 0x00318A9A, Value 2: 0x00318A9A, Product: 0x00000001
3607130827365 -- Value 1: 0x00318EAE, Value 2: 0x00318EAE, Product: 0x00000001
3607150557383 -- Value 1: 0x00319652, Value 2: 0x00319652, Product: 0x00000001
3607150697304 -- Value 1: 0x00317716, Value 2: 0x00317716, Product: 0x00000001
3607170137796 -- Value 1: 0x00319240, Value 2: 0x00319240, Product: 0x00000001
3607190657746 -- Value 1: 0x003186BF, Value 2: 0x003186BF, Product: 0x00000001
3607200817164 -- Value 1: 0x00318EB1, Value 2: 0x00318EB1, Product: 0x00000001
3607220337862 -- Value 1: 0x00318E5B, Value 2: 0x00318E5B, Product: 0x00000001
3607230497534 -- Value 1: 0x00317B18, Value 2: 0x00317B18, Product: 0x00000001
3607270637486 -- Value 1: 0x0031966E, Value 2: 0x0031966E, Product: 0x00000001
3607270777692 -- Value 1: 0x0031927C, Value 2: 0x0031927C, Product: 0x00000001
3607330207949 -- Value 1: 0x00318694, Value 2: 0x00318694, Product: 0x00000001
3607360857062 -- Value 1: 0x00318EB3, Value 2: 0x00318EB3, Product: 0x00000001
3607410767280 -- Value 1: 0x00319662, Value 2: 0x00319662, Product: 0x00000001
3607410827564 -- Value 1: 0x00318EB0, Value 2: 0x00318EB0, Product: 0x00000001
3607420057399 -- Value 1: 0x00319247, Value 2: 0x00319247, Product: 0x00000001
3607430957078 -- Value 1: 0x00318ABC, Value 2: 0x00318ABC, Product: 0x00000001
3607440317844 -- Value 1: 0x00318685, Value 2: 0x00318685, Product: 0x00000001
3607450487508 -- Value 1: 0x0031772A, Value 2: 0x0031772A, Product: 0x00000001
3607480637470 -- Value 1: 0x00318AA6, Value 2: 0x00318AA6, Product: 0x00000001
3607490347769 -- Value 1: 0x00318E5D, Value 2: 0x00318E5D, Product: 0x00000001
3607490657369 -- Value 1: 0x00318E8F, Value 2: 0x00318E8F, Product: 0x00000001
3607500387341 -- Value 1: 0x00318689, Value 2: 0x00318689, Product: 0x00000001
3607500847508 -- Value 1: 0x00317741, Value 2: 0x00317741, Product: 0x00000001
3607520147596 -- Value 1: 0x0031923D, Value 2: 0x0031923D, Product: 0x00000001
3607520807115 -- Value 1: 0x00317357, Value 2: 0x00317357, Product: 0x00000001
3607530357196 -- Value 1: 0x00319250, Value 2: 0x00319250, Product: 0x00000001
3607540067296 -- Value 1: 0x0031924D, Value 2: 0x0031924D, Product: 0x00000001
3607550337844 -- Value 1: 0x00318684, Value 2: 0x00318684, Product: 0x00000001
3607550617182 -- Value 1: 0x00319670, Value 2: 0x00319670, Product: 0x00000001
3607550667967 -- Value 1: 0x00318E86, Value 2: 0x00318E86, Product: 0x00000001
3607570157974 -- Value 1: 0x00318A82, Value 2: 0x00318A82, Product: 0x00000001
3607570577394 -- Value 1: 0x00319268, Value 2: 0x00319268, Product: 0x00000001
3607570617399 -- Value 1: 0x00319286, Value 2: 0x00319286, Product: 0x00000001
3607580227472 -- Value 1: 0x00318A7E, Value 2: 0x00318A7E, Product: 0x00000001
3607580507426 -- Value 1: 0x00317EF8, Value 2: 0x00317EF8, Product: 0x00000001
3607590727746 -- Value 1: 0x003186B5, Value 2: 0x003186B5, Product: 0x00000001
3607610067197 -- Value 1: 0x00319248, Value 2: 0x00319248, Product: 0x00000001
3607640937130 -- Value 1: 0x00317B23, Value 2: 0x00317B23, Product: 0x00000001
3607650417181 -- Value 1: 0x0031965C, Value 2: 0x0031965C, Product: 0x00000001
3607670447683 -- Value 1: 0x0031965A, Value 2: 0x0031965A, Product: 0x00000001
3607700927077 -- Value 1: 0x00318ABF, Value 2: 0x00318ABF, Product: 0x00000001
3607770037083 -- Value 1: 0x00319632, Value 2: 0x00319632, Product: 0x00000001
3607780217341 -- Value 1: 0x00318696, Value 2: 0x00318696, Product: 0x00000001
3607800567221 -- Value 1: 0x00317EF5, Value 2: 0x00317EF5, Product: 0x00000001
3607800667165 -- Value 1: 0x00318E8B, Value 2: 0x00318E8B, Product: 0x00000001
3607830677444 -- Value 1: 0x003186BC, Value 2: 0x003186BC, Product: 0x00000001
3607840357237 -- Value 1: 0x00317ACD, Value 2: 0x00317ACD, Product: 0x00000001
3607840457030 -- Value 1: 0x00317B13, Value 2: 0x00317B13, Product: 0x00000001
3607860317655 -- Value 1: 0x0031829F, Value 2: 0x0031829F, Product: 0x00000001
3607860527168 -- Value 1: 0x00318E93, Value 2: 0x00318E93, Product: 0x00000001
3607860747751 -- Value 1: 0x003182C7, Value 2: 0x003182C7, Product: 0x00000001
3607870167240 -- Value 1: 0x0031869A, Value 2: 0x0031869A, Product: 0x00000001
3607870507343 -- Value 1: 0x003186C2, Value 2: 0x003186C2, Product: 0x00000001
3607940637659 -- Value 1: 0x003182CF, Value 2: 0x003182CF, Product: 0x00000001
3607960147161 -- Value 1: 0x00318E6B, Value 2: 0x00318E6B, Product: 0x00000001
3607960227047 -- Value 1: 0x00318691, Value 2: 0x00318691, Product: 0x00000001
3609250141457 -- Value 1: 0x00355B02, Value 2: 0x00355B02, Product: 0x00000001
3611010820201 -- Value 1: 0x00267AC0, Value 2: 0x00267AC0, Product: 0x00000001
3618340146708 -- Value 1: 0x00245F5B, Value 2: 0x00245F5B, Product: 0x00000001
3633280724603 -- Value 1: 0x00018D74, Value 2: 0x00018D74, Product: 0x00000001
3650560972017 -- Value 1: 0x0066B421, Value 2: 0x0066B421, Product: 0x00000001
3656170346392 -- Value 1: 0x006106C4, Value 2: 0x006106C4, Product: 0x00000001
3657060592521 -- Value 1: 0x0066E6D3, Value 2: 0x0066E6D3, Product: 0x00000001
3658020207262 -- Value 1: 0x005FE9A3, Value 2: 0x005FE9A3, Product: 0x00000001
3661060518506 -- Value 1: 0x005AB1C1, Value 2: 0x005AB1C1, Product: 0x00000001
3667600078433 -- Value 1: 0x005A57C9, Value 2: 0x005A57C9, Product: 0x00000001
3667600811409 -- Value 1: 0x00530901, Value 2: 0x00530901, Product: 0x00000001
3700180347523 -- Value 1: 0x00315748, Value 2: 0x00315748, Product: 0x00000001
3700190377048 -- Value 1: 0x00315F19, Value 2: 0x00315F19, Product: 0x00000001
3700270397454 -- Value 1: 0x00315B2A, Value 2: 0x00315B2A, Product: 0x00000001
3700450697617 -- Value 1: 0x00314BBA, Value 2: 0x00314BBA, Product: 0x00000001
3700460437975 -- Value 1: 0x00316341, Value 2: 0x00316341, Product: 0x00000001
3700490417501 -- Value 1: 0x00314FBF, Value 2: 0x00314FBF, Product: 0x00000001
3700530687754 -- Value 1: 0x00315B60, Value 2: 0x00315B60, Product: 0x00000001
3700570454905 -- Value 1: 0x002FC918, Value 2: 0x002FC918, Product: 0x00000001
3700740477781 -- Value 1: 0x00316EE9, Value 2: 0x00316EE9, Product: 0x00000001
3700910177222 -- Value 1: 0x00315758, Value 2: 0x00315758, Product: 0x00000001
3700910427417 -- Value 1: 0x00314BD2, Value 2: 0x00314BD2, Product: 0x00000001
3700940457004 -- Value 1: 0x00314FB7, Value 2: 0x00314FB7, Product: 0x00000001
3705530347796 -- Value 1: 0x0031E00C, Value 2: 0x0031E00C, Product: 0x00000001
3705830647275 -- Value 1: 0x0031D860, Value 2: 0x0031D860, Product: 0x00000001
3706000087208 -- Value 1: 0x00319DB3, Value 2: 0x00319DB3, Product: 0x00000001
3706000817340 -- Value 1: 0x0031AD8D, Value 2: 0x0031AD8D, Product: 0x00000001
3706000937475 -- Value 1: 0x0031B16B, Value 2: 0x0031B16B, Product: 0x00000001
3706020837270 -- Value 1: 0x0031B173, Value 2: 0x0031B173, Product: 0x00000001
3706030077084 -- Value 1: 0x0031BCDA, Value 2: 0x0031BCDA, Product: 0x00000001
3706030087650 -- Value 1: 0x0031A96C, Value 2: 0x0031A96C, Product: 0x00000001
3706030097640 -- Value 1: 0x0031AD54, Value 2: 0x0031AD54, Product: 0x00000001
3706070117791 -- Value 1: 0x0031B8EC, Value 2: 0x0031B8EC, Product: 0x00000001
3706070247920 -- Value 1: 0x0031A56C, Value 2: 0x0031A56C, Product: 0x00000001
3706070717481 -- Value 1: 0x0031BD10, Value 2: 0x0031BD10, Product: 0x00000001
3706080507047 -- Value 1: 0x0031AD74, Value 2: 0x0031AD74, Product: 0x00000001
3706100267485 -- Value 1: 0x0031BCF1, Value 2: 0x0031BCF1, Product: 0x00000001
3706110037283 -- Value 1: 0x0031BCDC, Value 2: 0x0031BCDC, Product: 0x00000001
3706110257094 -- Value 1: 0x0031B908, Value 2: 0x0031B908, Product: 0x00000001
3706110457283 -- Value 1: 0x0031BD04, Value 2: 0x0031BD04, Product: 0x00000001
3706110497441 -- Value 1: 0x0031AD7A, Value 2: 0x0031AD7A, Product: 0x00000001
3706110557297 -- Value 1: 0x0031B912, Value 2: 0x0031B912, Product: 0x00000001
3706110787603 -- Value 1: 0x00319DBC, Value 2: 0x00319DBC, Product: 0x00000001
3706110977011 -- Value 1: 0x003199FA, Value 2: 0x003199FA, Product: 0x00000001
3706130447587 -- Value 1: 0x0031BD02, Value 2: 0x0031BD02, Product: 0x00000001
3706140707835 -- Value 1: 0x0031A1A1, Value 2: 0x0031A1A1, Product: 0x00000001
3706160637295 -- Value 1: 0x0031B933, Value 2: 0x0031B933, Product: 0x00000001
3706170227787 -- Value 1: 0x0031BCF2, Value 2: 0x0031BCF2, Product: 0x00000001
3706180177276 -- Value 1: 0x0031B134, Value 2: 0x0031B134, Product: 0x00000001
3706220917747 -- Value 1: 0x0031AD81, Value 2: 0x0031AD81, Product: 0x00000001
3706240857069 -- Value 1: 0x0031B561, Value 2: 0x0031B561, Product: 0x00000001
3706260387269 -- Value 1: 0x0031B503, Value 2: 0x0031B503, Product: 0x00000001
3706260447592 -- Value 1: 0x0031B91F, Value 2: 0x0031B91F, Product: 0x00000001
3706270507286 -- Value 1: 0x0031BCFC, Value 2: 0x0031BCFC, Product: 0x00000001
3706280357703 -- Value 1: 0x00319D98, Value 2: 0x00319D98, Product: 0x00000001
3706320627913 -- Value 1: 0x003199E1, Value 2: 0x003199E1, Product: 0x00000001
3706340597166 -- Value 1: 0x0031B53D, Value 2: 0x0031B53D, Product: 0x00000001
3706340957551 -- Value 1: 0x0031A99F, Value 2: 0x0031A99F, Product: 0x00000001
3706360237693 -- Value 1: 0x0031B90B, Value 2: 0x0031B90B, Product: 0x00000001
3706360857372 -- Value 1: 0x0031B177, Value 2: 0x0031B177, Product: 0x00000001
3706420767085 -- Value 1: 0x0031BD0D, Value 2: 0x0031BD0D, Product: 0x00000001
3706940267667 -- Value 1: 0x0031B50B, Value 2: 0x0031B50B, Product: 0x00000001
3707760447095 -- Value 1: 0x0031920F, Value 2: 0x0031920F, Product: 0x00000001
3712740428173 -- Value 1: 0x002D63C1, Value 2: 0x002D63C1, Product: 0x00000001
3714540933208 -- Value 1: 0x0028C447, Value 2: 0x0028C447, Product: 0x00000001
3733380346724 -- Value 1: 0x0004A1F8, Value 2: 0x0004A1F8, Product: 0x00000001
3750140509368 -- Value 1: 0x00689BDF, Value 2: 0x00689BDF, Product: 0x00000001
3756850156243 -- Value 1: 0x0060FAA4, Value 2: 0x0060FAA4, Product: 0x00000001
3758620747118 -- Value 1: 0x005FDDA5, Value 2: 0x005FDDA5, Product: 0x00000001
3760280726039 -- Value 1: 0x00515EA8, Value 2: 0x00515EA8, Product: 0x00000001
3761020820048 -- Value 1: 0x005450BB, Value 2: 0x005450BB, Product: 0x00000001
3764050257381 -- Value 1: 0x00508F94, Value 2: 0x00508F94, Product: 0x00000001
3764360358017 -- Value 1: 0x005A3831, Value 2: 0x005A3831, Product: 0x00000001
3766450286301 -- Value 1: 0x0051A8BA, Value 2: 0x0051A8BA, Product: 0x00000001
3773950442159 -- Value 1: 0x0047C99E, Value 2: 0x0047C99E, Product: 0x00000001
3806430657445 -- Value 1: 0x0031AE3E, Value 2: 0x0031AE3E, Product: 0x00000001
3806570257561 -- Value 1: 0x0031B5EA, Value 2: 0x0031B5EA, Product: 0x00000001
3812460724248 -- Value 1: 0x00204919, Value 2: 0x00204919, Product: 0x00000001
3813220047418 -- Value 1: 0x002194EB, Value 2: 0x002194EB, Product: 0x00000001
3831670267462 -- Value 1: 0x000379FA, Value 2: 0x000379FA, Product: 0x00000001
3853230255618 -- Value 1: 0x005B90BE, Value 2: 0x005B90BE, Product: 0x00000001
3860250654514 -- Value 1: 0x004E4A7C, Value 2: 0x004E4A7C, Product: 0x00000001
3860750224408 -- Value 1: 0x004E4E3C, Value 2: 0x004E4E3C, Product: 0x00000001
3866360306231 -- Value 1: 0x0051AD79, Value 2: 0x0051AD79, Product: 0x00000001
3871700034002 -- Value 1: 0x003EE4D5, Value 2: 0x003EE4D5, Product: 0x00000001
3902560000761 -- Value 1: 0x0035ADDB, Value 2: 0x0035ADDB, Product: 0x00000001
3903010123449 -- Value 1: 0x0037058E, Value 2: 0x0037058E, Product: 0x00000001
3903660573236 -- Value 1: 0x0036FA01, Value 2: 0x0036FA01, Product: 0x00000001
3906070777146 -- Value 1: 0x0031AE9C, Value 2: 0x0031AE9C, Product: 0x00000001
3907270077276 -- Value 1: 0x00318B42, Value 2: 0x00318B42, Product: 0x00000001
3950240263539 -- Value 1: 0x006535E9, Value 2: 0x006535E9, Product: 0x00000001
3963450466700 -- Value 1: 0x0050E6C4, Value 2: 0x0050E6C4, Product: 0x00000001
3966630555054 -- Value 1: 0x004D21DC, Value 2: 0x004D21DC, Product: 0x00000001
3970120244175 -- Value 1: 0x003F1FE3, Value 2: 0x003F1FE3, Product: 0x00000001
4004093603888 -- Value 1: 0x0031BBCB, Value 2: 0x0031BBCB, Product: 0x00000001
4008363954285 -- Value 1: 0x0036C441, Value 2: 0x0036C441, Product: 0x00000001
4014903908436 -- Value 1: 0x002D0CC1, Value 2: 0x002D0CC1, Product: 0x00000001
4018933409431 -- Value 1: 0x002BFA80, Value 2: 0x002BFA80, Product: 0x00000001
4069843349054 -- Value 1: 0x0059EFD5, Value 2: 0x0059EFD5, Product: 0x00000001
4076393338683 -- Value 1: 0x004BF9A5, Value 2: 0x004BF9A5, Product: 0x00000001
4077413428986 -- Value 1: 0x004BD2D6, Value 2: 0x004BD2D6, Product: 0x00000001
4102693943787 -- Value 1: 0x00316D79, Value 2: 0x00316D79, Product: 0x00000001
4102783843481 -- Value 1: 0x00316D82, Value 2: 0x00316D82, Product: 0x00000001
4102983523905 -- Value 1: 0x003156B2, Value 2: 0x003156B2, Product: 0x00000001
4102983833767 -- Value 1: 0x00315EAA, Value 2: 0x00315EAA, Product: 0x00000001
4104033993852 -- Value 1: 0x0031B0A3, Value 2: 0x0031B0A3, Product: 0x00000001
4104083043886 -- Value 1: 0x0031BB7A, Value 2: 0x0031BB7A, Product: 0x00000001
4104103983686 -- Value 1: 0x0031BB95, Value 2: 0x0031BB95, Product: 0x00000001
4104163883494 -- Value 1: 0x0031B7B5, Value 2: 0x0031B7B5, Product: 0x00000001
4104193893373 -- Value 1: 0x0031A8E3, Value 2: 0x0031A8E3, Product: 0x00000001
4104263893818 -- Value 1: 0x0031A110, Value 2: 0x0031A110, Product: 0x00000001
4104293533890 -- Value 1: 0x0031B761, Value 2: 0x0031B761, Product: 0x00000001
4104383883755 -- Value 1: 0x0031B0B2, Value 2: 0x0031B0B2, Product: 0x00000001
4104393683853 -- Value 1: 0x0031B095, Value 2: 0x0031B095, Product: 0x00000001
4104443943980 -- Value 1: 0x0031BB91, Value 2: 0x0031BB91, Product: 0x00000001
4104493683582 -- Value 1: 0x0031BB67, Value 2: 0x0031BB67, Product: 0x00000001
4104553983931 -- Value 1: 0x00319935, Value 2: 0x00319935, Product: 0x00000001
4104763983594 -- Value 1: 0x0031B7AB, Value 2: 0x0031B7AB, Product: 0x00000001
4104793783690 -- Value 1: 0x0031B775, Value 2: 0x0031B775, Product: 0x00000001
4104833803915 -- Value 1: 0x0031A10D, Value 2: 0x0031A10D, Product: 0x00000001
4104853083599 -- Value 1: 0x0031B78F, Value 2: 0x0031B78F, Product: 0x00000001
4104853123998 -- Value 1: 0x0031B785, Value 2: 0x0031B785, Product: 0x00000001
4104883543845 -- Value 1: 0x0031B472, Value 2: 0x0031B472, Product: 0x00000001
4104893813062 -- Value 1: 0x0031ACCB, Value 2: 0x0031ACCB, Product: 0x00000001
4104963783389 -- Value 1: 0x0031BB5A, Value 2: 0x0031BB5A, Product: 0x00000001
4104973393952 -- Value 1: 0x0031B074, Value 2: 0x0031B074, Product: 0x00000001
4104983303680 -- Value 1: 0x0031BB84, Value 2: 0x0031BB84, Product: 0x00000001
4104993353682 -- Value 1: 0x0031BB85, Value 2: 0x0031BB85, Product: 0x00000001
4104993693465 -- Value 1: 0x0031ACAD, Value 2: 0x0031ACAD, Product: 0x00000001
4105083613886 -- Value 1: 0x00319456, Value 2: 0x00319456, Product: 0x00000001
4105083823580 -- Value 1: 0x00319492, Value 2: 0x00319492, Product: 0x00000001
4105183803198 -- Value 1: 0x003190AA, Value 2: 0x003190AA, Product: 0x00000001
4105183893357 -- Value 1: 0x003189A2, Value 2: 0x003189A2, Product: 0x00000001
4105193983147 -- Value 1: 0x00318D81, Value 2: 0x00318D81, Product: 0x00000001
4105213983197 -- Value 1: 0x0031909C, Value 2: 0x0031909C, Product: 0x00000001
4105403793894 -- Value 1: 0x0031905C, Value 2: 0x0031905C, Product: 0x00000001
4105493193785 -- Value 1: 0x00319461, Value 2: 0x00319461, Product: 0x00000001
4105503803998 -- Value 1: 0x003190A7, Value 2: 0x003190A7, Product: 0x00000001
4105643993487 -- Value 1: 0x00319481, Value 2: 0x00319481, Product: 0x00000001
4105693493388 -- Value 1: 0x00319443, Value 2: 0x00319443, Product: 0x00000001
4105783093399 -- Value 1: 0x00319082, Value 2: 0x00319082, Product: 0x00000001
4105783343887 -- Value 1: 0x00319474, Value 2: 0x00319474, Product: 0x00000001
4105783893636 -- Value 1: 0x00317232, Value 2: 0x00317232, Product: 0x00000001
4105803523886 -- Value 1: 0x00319430, Value 2: 0x00319430, Product: 0x00000001
4105813673890 -- Value 1: 0x00319067, Value 2: 0x00319067, Product: 0x00000001
4105833303898 -- Value 1: 0x00319087, Value 2: 0x00319087, Product: 0x00000001
4105863843694 -- Value 1: 0x003190A5, Value 2: 0x003190A5, Product: 0x00000001
4105893143915 -- Value 1: 0x003179B3, Value 2: 0x003179B3, Product: 0x00000001
4105893813454 -- Value 1: 0x003189A3, Value 2: 0x003189A3, Product: 0x00000001
4105903743984 -- Value 1: 0x00319444, Value 2: 0x00319444, Product: 0x00000001
4105913973085 -- Value 1: 0x00319484, Value 2: 0x00319484, Product: 0x00000001
4105923003998 -- Value 1: 0x0031907C, Value 2: 0x0031907C, Product: 0x00000001
4105943153998 -- Value 1: 0x00319074, Value 2: 0x00319074, Product: 0x00000001
4112993680370 -- Value 1: 0x002091C5, Value 2: 0x002091C5, Product: 0x00000001
4116973475996 -- Value 1: 0x0025D089, Value 2: 0x0025D089, Product: 0x00000001
4118423829713 -- Value 1: 0x002BF25B, Value 2: 0x002BF25B, Product: 0x00000001
4118493372184 -- Value 1: 0x00247411, Value 2: 0x00247411, Product: 0x00000001
4138783434486 -- Value 1: 0x0008FD16, Value 2: 0x0008FD16, Product: 0x00000001
4160913449686 -- Value 1: 0x0058CAC2, Value 2: 0x0058CAC2, Product: 0x00000001
4162843860689 -- Value 1: 0x004E6B5B, Value 2: 0x004E6B5B, Product: 0x00000001
4167193158862 -- Value 1: 0x005B0D91, Value 2: 0x005B0D91, Product: 0x00000001
4169713789662 -- Value 1: 0x0059FB54, Value 2: 0x0059FB54, Product: 0x00000001
4202093983623 -- Value 1: 0x0031502D, Value 2: 0x0031502D, Product: 0x00000001
4202683883652 -- Value 1: 0x003163BE, Value 2: 0x003163BE, Product: 0x00000001
4202993223496 -- Value 1: 0x00316923, Value 2: 0x00316923, Product: 0x00000001
4204033993846 -- Value 1: 0x0031B5B7, Value 2: 0x0031B5B7, Product: 0x00000001
4204333873888 -- Value 1: 0x0031BB3C, Value 2: 0x0031BB3C, Product: 0x00000001
4204433483989 -- Value 1: 0x0031BAE9, Value 2: 0x0031BAE9, Product: 0x00000001
4204493803956 -- Value 1: 0x0031B1DF, Value 2: 0x0031B1DF, Product: 0x00000001
4204593983558 -- Value 1: 0x0031B1D5, Value 2: 0x0031B1D5, Product: 0x00000001
4204743883185 -- Value 1: 0x0031BB37, Value 2: 0x0031BB37, Product: 0x00000001
4204763943896 -- Value 1: 0x0031B747, Value 2: 0x0031B747, Product: 0x00000001
4204773883852 -- Value 1: 0x0031B1DD, Value 2: 0x0031B1DD, Product: 0x00000001
4204803963396 -- Value 1: 0x0031B749, Value 2: 0x0031B749, Product: 0x00000001
4204813493092 -- Value 1: 0x0031B6FF, Value 2: 0x0031B6FF, Product: 0x00000001
4204813693188 -- Value 1: 0x0031BAFB, Value 2: 0x0031BAFB, Product: 0x00000001
4204843183916 -- Value 1: 0x0031A1EB, Value 2: 0x0031A1EB, Product: 0x00000001
4204843773995 -- Value 1: 0x0031B70C, Value 2: 0x0031B70C, Product: 0x00000001
4204883153683 -- Value 1: 0x0031BB0C, Value 2: 0x0031BB0C, Product: 0x00000001
4204893743861 -- Value 1: 0x0031ADE3, Value 2: 0x0031ADE3, Product: 0x00000001
4204903883471 -- Value 1: 0x0031AA06, Value 2: 0x0031AA06, Product: 0x00000001
4204923393196 -- Value 1: 0x0031B732, Value 2: 0x0031B732, Product: 0x00000001
4204923403987 -- Value 1: 0x0031BAE8, Value 2: 0x0031BAE8, Product: 0x00000001
4204963823385 -- Value 1: 0x0031BB39, Value 2: 0x0031BB39, Product: 0x00000001
4204963973585 -- Value 1: 0x0031BB2F, Value 2: 0x0031BB2F, Product: 0x00000001
4204983213094 -- Value 1: 0x0031B742, Value 2: 0x0031B742, Product: 0x00000001
4204993183352 -- Value 1: 0x0031B18F, Value 2: 0x0031B18F, Product: 0x00000001
4204993583639 -- Value 1: 0x00319A47, Value 2: 0x00319A47, Product: 0x00000001
4205183283966 -- Value 1: 0x003186A0, Value 2: 0x003186A0, Product: 0x00000001
4205183963868 -- Value 1: 0x003186DC, Value 2: 0x003186DC, Product: 0x00000001
4205303993094 -- Value 1: 0x00319039, Value 2: 0x00319039, Product: 0x00000001
4205373993941 -- Value 1: 0x00318EAB, Value 2: 0x00318EAB, Product: 0x00000001
4205383483966 -- Value 1: 0x003186B4, Value 2: 0x003186B4, Product: 0x00000001
4205393563883 -- Value 1: 0x003193D5, Value 2: 0x003193D5, Product: 0x00000001
4205483853797 -- Value 1: 0x00319046, Value 2: 0x00319046, Product: 0x00000001
4205523083881 -- Value 1: 0x00319400, Value 2: 0x00319400, Product: 0x00000001
4205523993586 -- Value 1: 0x00319423, Value 2: 0x00319423, Product: 0x00000001
4205583973586 -- Value 1: 0x00319424, Value 2: 0x00319424, Product: 0x00000001
4205693353991 -- Value 1: 0x00319029, Value 2: 0x00319029, Product: 0x00000001
4205803833283 -- Value 1: 0x0031942B, Value 2: 0x0031942B, Product: 0x00000001
4205833823393 -- Value 1: 0x00319044, Value 2: 0x00319044, Product: 0x00000001
4205873953597 -- Value 1: 0x00319036, Value 2: 0x00319036, Product: 0x00000001
4205883773190 -- Value 1: 0x00319000, Value 2: 0x00319000, Product: 0x00000001
4205883973453 -- Value 1: 0x00318AC4, Value 2: 0x00318AC4, Product: 0x00000001
4205893293338 -- Value 1: 0x00317319, Value 2: 0x00317319, Product: 0x00000001
4205913813854 -- Value 1: 0x00318AC7, Value 2: 0x00318AC7, Product: 0x00000001
4205933993365 -- Value 1: 0x003186D7, Value 2: 0x003186D7, Product: 0x00000001
4205953813869 -- Value 1: 0x003186E3, Value 2: 0x003186E3, Product: 0x00000001
4205963923583 -- Value 1: 0x0031941F, Value 2: 0x0031941F, Product: 0x00000001
4205983583222 -- Value 1: 0x0031771E, Value 2: 0x0031771E, Product: 0x00000001
4262583108693 -- Value 1: 0x005A9C98, Value 2: 0x005A9C98, Product: 0x00000001
4263733268995 -- Value 1: 0x005A757C, Value 2: 0x005A757C, Product: 0x00000001
4268873609246 -- Value 1: 0x0059CDA8, Value 2: 0x0059CDA8, Product: 0x00000001
4269053959021 -- Value 1: 0x0059ED0A, Value 2: 0x0059ED0A, Product: 0x00000001
4269193175680 -- Value 1: 0x0053E9C1, Value 2: 0x0053E9C1, Product: 0x00000001
4269673588137 -- Value 1: 0x005B6FAA, Value 2: 0x005B6FAA, Product: 0x00000001
4271983183746 -- Value 1: 0x00403466, Value 2: 0x00403466, Product: 0x00000001
4276853970093 -- Value 1: 0x003FC104, Value 2: 0x003FC104, Product: 0x00000001
4277203783981 -- Value 1: 0x00412440, Value 2: 0x00412440, Product: 0x00000001
4279603906836 -- Value 1: 0x00491F79, Value 2: 0x00491F79, Product: 0x00000001
4304023693988 -- Value 1: 0x0031BA98, Value 2: 0x0031BA98, Product: 0x00000001
4304033283898 -- Value 1: 0x0031B6D9, Value 2: 0x0031B6D9, Product: 0x00000001
4304083583962 -- Value 1: 0x0031AD6A, Value 2: 0x0031AD6A, Product: 0x00000001
4304083943184 -- Value 1: 0x0031BAD0, Value 2: 0x0031BAD0, Product: 0x00000001
4304183443986 -- Value 1: 0x0031BA8A, Value 2: 0x0031BA8A, Product: 0x00000001
4304383593809 -- Value 1: 0x0031A59A, Value 2: 0x0031A59A, Product: 0x00000001
4304383903910 -- Value 1: 0x0031A1D0, Value 2: 0x0031A1D0, Product: 0x00000001
4304393183946 -- Value 1: 0x0031B513, Value 2: 0x0031B513, Product: 0x00000001
4304393783481 -- Value 1: 0x0031BA95, Value 2: 0x0031BA95, Product: 0x00000001
4304393883147 -- Value 1: 0x0031B563, Value 2: 0x0031B563, Product: 0x00000001
4304413483889 -- Value 1: 0x0031BA83, Value 2: 0x0031BA83, Product: 0x00000001
4304613183992 -- Value 1: 0x0031B6B9, Value 2: 0x0031B6B9, Product: 0x00000001
4304633953988 -- Value 1: 0x0031BACE, Value 2: 0x0031BACE, Product: 0x00000001
4304643883493 -- Value 1: 0x0031B6EB, Value 2: 0x0031B6EB, Product: 0x00000001
4304653923981 -- Value 1: 0x0031BAC8, Value 2: 0x0031BAC8, Product: 0x00000001
4304683893166 -- Value 1: 0x0031AD92, Value 2: 0x0031AD92, Product: 0x00000001
4304713843992 -- Value 1: 0x0031B6EE, Value 2: 0x0031B6EE, Product: 0x00000001
4304823683857 -- Value 1: 0x0031B157, Value 2: 0x0031B157, Product: 0x00000001
4304823803091 -- Value 1: 0x0031B6F1, Value 2: 0x0031B6F1, Product: 0x00000001
4304843193493 -- Value 1: 0x0031B6BC, Value 2: 0x0031B6BC, Product: 0x00000001
4304883313842 -- Value 1: 0x0031B526, Value 2: 0x0031B526, Product: 0x00000001
4304883503096 -- Value 1: 0x0031B698, Value 2: 0x0031B698, Product: 0x00000001
4304923793597 -- Value 1: 0x0031B6A6, Value 2: 0x0031B6A6, Product: 0x00000001
4304943093879 -- Value 1: 0x0031A94D, Value 2: 0x0031A94D, Product: 0x00000001
4304973813197 -- Value 1: 0x0031B6EC, Value 2: 0x0031B6EC, Product: 0x00000001
4304983853150 -- Value 1: 0x0031B17A, Value 2: 0x0031B17A, Product: 0x00000001
4305063893189 -- Value 1: 0x003193C5, Value 2: 0x003193C5, Product: 0x00000001
4305193383284 -- Value 1: 0x003193AD, Value 2: 0x003193AD, Product: 0x00000001
4305293743890 -- Value 1: 0x00318F9D, Value 2: 0x00318F9D, Product: 0x00000001
4305303983928 -- Value 1: 0x003176D0, Value 2: 0x003176D0, Product: 0x00000001
4305383383953 -- Value 1: 0x00318A2E, Value 2: 0x00318A2E, Product: 0x00000001
4305383453894 -- Value 1: 0x00318F92, Value 2: 0x00318F92, Product: 0x00000001
4305393803184 -- Value 1: 0x003193CB, Value 2: 0x003193CB, Product: 0x00000001
4305493783906 -- Value 1: 0x00317E9F, Value 2: 0x00317E9F, Product: 0x00000001
4305653923986 -- Value 1: 0x003193B8, Value 2: 0x003193B8, Product: 0x00000001
4305693793866 -- Value 1: 0x0031866F, Value 2: 0x0031866F, Product: 0x00000001
4305893383043 -- Value 1: 0x00318E17, Value 2: 0x00318E17, Product: 0x00000001
4305903083785 -- Value 1: 0x0031939A, Value 2: 0x0031939A, Product: 0x00000001
4305913803946 -- Value 1: 0x00318E4B, Value 2: 0x00318E4B, Product: 0x00000001
4305993803243 -- Value 1: 0x00318E53, Value 2: 0x00318E53, Product: 0x00000001
4309233083086 -- Value 1: 0x003257A4, Value 2: 0x003257A4, Product: 0x00000001
4309233833821 -- Value 1: 0x00323FA8, Value 2: 0x00323FA8, Product: 0x00000001
4309243083812 -- Value 1: 0x003233C6, Value 2: 0x003233C6, Product: 0x00000001
4309283153799 -- Value 1: 0x003253B4, Value 2: 0x003253B4, Product: 0x00000001
4309283383516 -- Value 1: 0x003233D4, Value 2: 0x003233D4, Product: 0x00000001
4309283933038 -- Value 1: 0x00323BB8, Value 2: 0x00323BB8, Product: 0x00000001
4309293473698 -- Value 1: 0x003253E7, Value 2: 0x003253E7, Product: 0x00000001
4309363693867 -- Value 1: 0x00324F0C, Value 2: 0x00324F0C, Product: 0x00000001
4309383843224 -- Value 1: 0x00323FAA, Value 2: 0x00323FAA, Product: 0x00000001
4309443823902 -- Value 1: 0x003237D3, Value 2: 0x003237D3, Product: 0x00000001
4309493473911 -- Value 1: 0x003233A3, Value 2: 0x003233A3, Product: 0x00000001
4309543923795 -- Value 1: 0x003253EF, Value 2: 0x003253EF, Product: 0x00000001
4309723693801 -- Value 1: 0x00323798, Value 2: 0x00323798, Product: 0x00000001
4309723953286 -- Value 1: 0x003257D1, Value 2: 0x003257D1, Product: 0x00000001
4309733783941 -- Value 1: 0x0032472F, Value 2: 0x0032472F, Product: 0x00000001
4309823003959 -- Value 1: 0x00324364, Value 2: 0x00324364, Product: 0x00000001
4309873293032 -- Value 1: 0x00323BAD, Value 2: 0x00323BAD, Product: 0x00000001
4309873783667 -- Value 1: 0x00324F03, Value 2: 0x00324F03, Product: 0x00000001
4309883403636 -- Value 1: 0x00323B72, Value 2: 0x00323B72, Product: 0x00000001
4309903003846 -- Value 1: 0x0032474A, Value 2: 0x0032474A, Product: 0x00000001
4309903113800 -- Value 1: 0x003237A0, Value 2: 0x003237A0, Product: 0x00000001
4309903553387 -- Value 1: 0x003257C1, Value 2: 0x003257C1, Product: 0x00000001
4309943423817 -- Value 1: 0x0032339E, Value 2: 0x0032339E, Product: 0x00000001
4309963223954 -- Value 1: 0x0032437C, Value 2: 0x0032437C, Product: 0x00000001
4309963863529 -- Value 1: 0x00323FA5, Value 2: 0x00323FA5, Product: 0x00000001
4309973123828 -- Value 1: 0x00323F77, Value 2: 0x00323F77, Product: 0x00000001
4310883070845 -- Value 1: 0x00204FE8, Value 2: 0x00204FE8, Product: 0x00000001
4353343299097 -- Value 1: 0x006830B3, Value 2: 0x006830B3, Product: 0x00000001
4362053388975 -- Value 1: 0x005A93C1, Value 2: 0x005A93C1, Product: 0x00000001
4363053198975 -- Value 1: 0x005A6C9D, Value 2: 0x005A6C9D, Product: 0x00000001
4366883203840 -- Value 1: 0x005087BC, Value 2: 0x005087BC, Product: 0x00000001
4372693852297 -- Value 1: 0x004231B3, Value 2: 0x004231B3, Product: 0x00000001
4375493028394 -- Value 1: 0x004B810F, Value 2: 0x004B810F, Product: 0x00000001
4379373851803 -- Value 1: 0x003E6CD4, Value 2: 0x003E6CD4, Product: 0x00000001
4402283803821 -- Value 1: 0x00314DDE, Value 2: 0x00314DDE, Product: 0x00000001
4402393833932 -- Value 1: 0x003149F7, Value 2: 0x003149F7, Product: 0x00000001
4402493883079 -- Value 1: 0x00315997, Value 2: 0x00315997, Product: 0x00000001
4402803583088 -- Value 1: 0x00316F14, Value 2: 0x00316F14, Product: 0x00000001
4404683987358 -- Value 1: 0x0037C9FC, Value 2: 0x0037C9FC, Product: 0x00000001
4405083693870 -- Value 1: 0x00318088, Value 2: 0x00318088, Product: 0x00000001
4415833662995 -- Value 1: 0x0023D6BD, Value 2: 0x0023D6BD, Product: 0x00000001
4433583480799 -- Value 1: 0x0001F6CE, Value 2: 0x0001F6CE, Product: 0x00000001
4457293751981 -- Value 1: 0x005C9DE1, Value 2: 0x005C9DE1, Product: 0x00000001
4459163185834 -- Value 1: 0x0063124A, Value 2: 0x0063124A, Product: 0x00000001
4463483828344 -- Value 1: 0x005A6BA6, Value 2: 0x005A6BA6, Product: 0x00000001
4466453879928 -- Value 1: 0x0059A07E, Value 2: 0x0059A07E, Product: 0x00000001
4468423909723 -- Value 1: 0x0059C6BD, Value 2: 0x0059C6BD, Product: 0x00000001
4474433818195 -- Value 1: 0x004BA97E, Value 2: 0x004BA97E, Product: 0x00000001
4478773008805 -- Value 1: 0x004C031C, Value 2: 0x004C031C, Product: 0x00000001
4504383083863 -- Value 1: 0x0031AAE0, Value 2: 0x0031AAE0, Product: 0x00000001
4504833893451 -- Value 1: 0x0031AF1D, Value 2: 0x0031AF1D, Product: 0x00000001
4530093593855 -- Value 1: 0x00034BFB, Value 2: 0x00034BFB, Product: 0x00000001
4560043819814 -- Value 1: 0x0058AA03, Value 2: 0x0058AA03, Product: 0x00000001
4561903964794 -- Value 1: 0x00540E4D, Value 2: 0x00540E4D, Product: 0x00000001
4563393485928 -- Value 1: 0x0052B7F9, Value 2: 0x0052B7F9, Product: 0x00000001
4567683499266 -- Value 1: 0x00598862, Value 2: 0x00598862, Product: 0x00000001
4567833279380 -- Value 1: 0x00598F68, Value 2: 0x00598F68, Product: 0x00000001
4604413493995 -- Value 1: 0x0031B88F, Value 2: 0x0031B88F, Product: 0x00000001
4605563887692 -- Value 1: 0x0037AC51, Value 2: 0x0037AC51, Product: 0x00000001
4618203642995 -- Value 1: 0x00247313, Value 2: 0x00247313, Product: 0x00000001
4655293916791 -- Value 1: 0x0066F9AD, Value 2: 0x0066F9AD, Product: 0x00000001
4655993361813 -- Value 1: 0x005C32E3, Value 2: 0x005C32E3, Product: 0x00000001
4661843082926 -- Value 1: 0x0050E439, Value 2: 0x0050E439, Product: 0x00000001
4664493238972 -- Value 1: 0x005AE3E3, Value 2: 0x005AE3E3, Product: 0x00000001
4668153789208 -- Value 1: 0x0059BF8C, Value 2: 0x0059BF8C, Product: 0x00000001
4668333128296 -- Value 1: 0x005B615C, Value 2: 0x005B615C, Product: 0x00000001
4669363939072 -- Value 1: 0x0059FA51, Value 2: 0x0059FA51, Product: 0x00000001
4759283901447 -- Value 1: 0x005D0280, Value 2: 0x005D0280, Product: 0x00000001
4760883854479 -- Value 1: 0x0054243A, Value 2: 0x0054243A, Product: 0x00000001
4761893481017 -- Value 1: 0x004C5409, Value 2: 0x004C5409, Product: 0x00000001
4765843339908 -- Value 1: 0x00592238, Value 2: 0x00592238, Product: 0x00000001
4768533409381 -- Value 1: 0x0059DE72, Value 2: 0x0059DE72, Product: 0x00000001
4774173298782 -- Value 1: 0x004BAD7C, Value 2: 0x004BAD7C, Product: 0x00000001
4774333998620 -- Value 1: 0x004B958E, Value 2: 0x004B958E, Product: 0x00000001
4774633888263 -- Value 1: 0x004BA538, Value 2: 0x004BA538, Product: 0x00000001
4803803592003 -- Value 1: 0x0032B798, Value 2: 0x0032B798, Product: 0x00000001
4804173263896 -- Value 1: 0x0031B9BC, Value 2: 0x0031B9BC, Product: 0x00000001
4804273083963 -- Value 1: 0x0031AE31, Value 2: 0x0031AE31, Product: 0x00000001
4815903280524 -- Value 1: 0x0020AEAE, Value 2: 0x0020AEAE, Product: 0x00000001
4817983525234 -- Value 1: 0x00258C88, Value 2: 0x00258C88, Product: 0x00000001
4836383922575 -- Value 1: 0x0005B868, Value 2: 0x0005B868, Product: 0x00000001
4848323183270 -- Value 1: 0x006F302B, Value 2: 0x006F302B, Product: 0x00000001
4861993064317 -- Value 1: 0x0053F78B, Value 2: 0x0053F78B, Product: 0x00000001
4865063834194 -- Value 1: 0x0054AB5F, Value 2: 0x0054AB5F, Product: 0x00000001
4865783184548 -- Value 1: 0x0054A748, Value 2: 0x0054A748, Product: 0x00000001
4867013038940 -- Value 1: 0x005B080A, Value 2: 0x005B080A, Product: 0x00000001
4867323299118 -- Value 1: 0x00596DD1, Value 2: 0x00596DD1, Product: 0x00000001
4868953263308 -- Value 1: 0x00509812, Value 2: 0x00509812, Product: 0x00000001
4873723872484 -- Value 1: 0x004211A3, Value 2: 0x004211A3, Product: 0x00000001
4903083562810 -- Value 1: 0x0032B41C, Value 2: 0x0032B41C, Product: 0x00000001
4904293763196 -- Value 1: 0x0031BA45, Value 2: 0x0031BA45, Product: 0x00000001
4904413873699 -- Value 1: 0x0031BA70, Value 2: 0x0031BA70, Product: 0x00000001
4904523183859 -- Value 1: 0x0031B26E, Value 2: 0x0031B26E, Product: 0x00000001
4905353643887 -- Value 1: 0x0031971E, Value 2: 0x0031971E, Product: 0x00000001
4905933943242 -- Value 1: 0x00318F72, Value 2: 0x00318F72, Product: 0x00000001
4909853674109 -- Value 1: 0x0036CF0E, Value 2: 0x0036CF0E, Product: 0x00000001
4915483135842 -- Value 1: 0x00255A4C, Value 2: 0x00255A4C, Product: 0x00000001
4918843525400 -- Value 1: 0x0025DF29, Value 2: 0x0025DF29, Product: 0x00000001
4931843842474 -- Value 1: 0x0004A75F, Value 2: 0x0004A75F, Product: 0x00000001
4933993473061 -- Value 1: 0x0003727F, Value 2: 0x0003727F, Product: 0x00000001
4954753186690 -- Value 1: 0x00672208, Value 2: 0x00672208, Product: 0x00000001
4959513973174 -- Value 1: 0x00601596, Value 2: 0x00601596, Product: 0x00000001
4960643558830 -- Value 1: 0x005A3981, Value 2: 0x005A3981, Product: 0x00000001
4961023368788 -- Value 1: 0x005A2DA1, Value 2: 0x005A2DA1, Product: 0x00000001
4962013868509 -- Value 1: 0x005A83D8, Value 2: 0x005A83D8, Product: 0x00000001
4962953210930 -- Value 1: 0x004E4ADF, Value 2: 0x004E4ADF, Product: 0x00000001
4964993030619 -- Value 1: 0x004EA0BF, Value 2: 0x004EA0BF, Product: 0x00000001
4966663259588 -- Value 1: 0x0059B87F, Value 2: 0x0059B87F, Product: 0x00000001
4967223694814 -- Value 1: 0x0054E234, Value 2: 0x0054E234, Product: 0x00000001
4967783685703 -- Value 1: 0x00535F82, Value 2: 0x00535F82, Product: 0x00000001
4968183775449 -- Value 1: 0x0053B57C, Value 2: 0x0053B57C, Product: 0x00000001
4968623608537 -- Value 1: 0x005B4AFB, Value 2: 0x005B4AFB, Product: 0x00000001[/tt]
November 22, 2005, 12:13 AM
UserLoser.
[quote author=Joe link=topic=13318.msg134957#msg134957 date=1132619144]
Noticed something, all Bnet valid CD Keys have product code of 00000001. Not all installer-valid keys do. Go me!
[/quote]

That's like so 8 years ago.  Installer doesn't care about product code.  And there is definately something wrong with that...all your "Value 1" are the same as your "Value 2"
November 22, 2005, 12:29 AM
JoeTheOdd
Yeah, I fixed that.
November 22, 2005, 12:52 AM
Myndfyr
Is value 1 always equal to value 2?  At a glance it appears to.  Or is this a bug in your output?
November 22, 2005, 12:57 AM
Yegg
[quote author=MyndFyre link=topic=13318.msg134960#msg134960 date=1132621056]
Is value 1 always equal to value 2?  At a glance it appears to.  Or is this a bug in your output?
[/quote]
I checked many of his values. It seems all of his value's for 1 are equal to value 2. I don't know if that's a bug or it's correct. This certainly isn't an area I'm experienced in.
November 22, 2005, 1:31 AM
kamakazie
[quote author=MyndFyre link=topic=13318.msg134960#msg134960 date=1132621056]
Is value 1 always equal to value 2?  At a glance it appears to.  Or is this a bug in your output?
[/quote]

No it's a bug. I have generated a csv file full of these cdkeys and their public/private/product values in decimal. One thing I noticed is the private values range from [0, 999], and the public values range from [1111, 7405972]. So brute force of the private value given the cdkey hash is extremely easy if the range holds true for all cdkeys.

Edit: I have generated some scatter plots of the data.

Public vs Private for Product Id = 1
[img]http://img507.imageshack.us/img507/7166/cdkey10bs.th.jpg[/img]

There is a big ass line going down the middle. Interesting.

Public vs Private for Product Id = 2
[img]http://img378.imageshack.us/img378/5091/cdkey21ls.th.jpg[/img]

This is even more interesting. Might just be bad data though.
November 22, 2005, 2:26 AM
UserLoser.
[quote author=MyndFyre link=topic=13318.msg134960#msg134960 date=1132621056]
Is value 1 always equal to value 2?  At a glance it appears to.  Or is this a bug in your output?
[/quote]

I jsut said that
November 22, 2005, 5:18 AM
JoeTheOdd
hm, generating all keys with ProductID of 1. Interesting results (see val1)

[code][6:52:15 AM] 0000333999887 -- Value 1: 0x001C11DF, Value 2: 0x00000120, Product: 0x00000001
[6:52:15 AM] 0000333999898 -- Value 1: 0x001C0DF7, Value 2: 0x00000120, Product: 0x00000001
[6:52:15 AM] 0000333999986 -- Value 1: 0x001C11DF, Value 2: 0x0000012A, Product: 0x00000001
[6:52:15 AM] 0000333999997 -- Value 1: 0x001C0DF7, Value 2: 0x0000012A, Product: 0x00000001[/code]

Two keys, one public value. Word.
November 22, 2005, 12:53 PM
Myndfyr
[quote author=dxoigmn link=topic=13318.msg134968#msg134968 date=1132626362]
I have generated a csv file full of these cdkeys[/quote]
Any chance you could post the CSV file?  We have some nice statistical analysis software here at school, and I'd love to run some regression series on them.
November 22, 2005, 8:44 PM
Arta
A link to a spreadsheet would be rather more useful than 2 massive posts.

Just so you know, the statistical approach has been attempted before, to no avail - I'll be interested to see your results anyway, though.
November 23, 2005, 1:39 AM
kamakazie
[quote author=MyndFyre link=topic=13318.msg135035#msg135035 date=1132692243]
[quote author=dxoigmn link=topic=13318.msg134968#msg134968 date=1132626362]
I have generated a csv file full of these cdkeys[/quote]
Any chance you could post the CSV file?  We have some nice statistical analysis software here at school, and I'd love to run some regression series on them.
[/quote]

Here you go. I doubt anything good will come of it. Would be nice to have access to BNLS, log all the cdkeys and run an analysis on those. Although, I am sure this kind of thing has already be done (Arta's comment suggest that).
November 23, 2005, 4:53 AM
Arta
Hmm, I doubt it's been done on BNLS. BNLS doesn't log keys! :)
November 23, 2005, 12:56 PM
JoeTheOdd
[quote author=Arta[vL] link=topic=13318.msg135075#msg135075 date=1132709991]
A link to a spreadsheet would be rather more useful than 2 massive posts.

Just so you know, the statistical approach has been attempted before, to no avail - I'll be interested to see your results anyway, though.
[/quote]

I don't have Excell, nor OpenOffice, so eh?

When I get home from school I'll make a text-file of them.
November 23, 2005, 1:13 PM
LordNevar
It's been confirmed that it is a strict BNLS issue, and the change works in any manner of manipulating the last number of the assigned key.
November 23, 2005, 1:55 PM
QwertyMonster
Thanks ringo ;)
November 23, 2005, 4:09 PM
LordNevar
I have been doing alot of research on this with a massive list of working keys for battle.net, and I'm talking 10's of thousands of working keys. I have noticed something in there construction so far. This is just an observation not a confirmation of truth. This was done using the list provided by Joe, and Ringo, and also my personal lists, and some lists from other people. I did not test all these key's, nor want to spend the time too. So we'll take in affect that say 75% of them work.

Ex: 0000600003862 <~~~ Joe's First Key [Verified]

Now if I am correct this is how the basic structure of them is composed.
This table will be listed by first to last digit of the respective key.

1.)The first number cannot be higher than (4), as far as I know. I do not have any key's that start with a 5. They range from 0-4.

2.)The second number can be as high as (9).

3.)Third number can go as high as (6).

4.)Forth number can be as high as (9).

5.)Fifth number can be as high as (9).

6.)Sixth number can be as high as (9).

7.)Seventh number can be as high as (5).

8.)Eighth number can be as high as (9).

9.)Ninth number can be as high as (9).

10.)Tenth number can be as high as (7).

11.)Eleventh number can be as high as (9).

12.)Twelth number can be as high as (9).

13.)Thirteenth can be any number you want it to be from 0-9 as long as the key is correct, cause regardless if you change the last number of any starcraft/battle.net cdkey you can log on with it. Unless of course your using BNLS witch will give you an invalid key.

Note: If you change the last digit of any working stacraft/battle.net cdkey, if the key works or is muted or voided or inuse it will give you the same response for any number you assign to it.

This is just what I have so far, I have not gotten into the barebones of it. If anyone can supply a key that disproves any of my statements above, please contact me so I can make adjustments to this.

So far only creating keys in this sequence, I have managed to make 3 working key's out of 65 attempts at it, so I am obviously either very lucky or on the right track.



November 25, 2005, 12:14 PM
Arta
You guys should figure out how the decode routine works if you want to do this properly.
November 26, 2005, 1:53 PM
KkBlazekK
Pffft, everyone already knows that starcraft keys are really poorly encrypted love messages between Yoni and Skywing.
November 26, 2005, 3:54 PM
MesiaH
[quote author=Blaze link=topic=13318.msg135380#msg135380 date=1133020446]
Pffft, everyone already knows that starcraft keys are really poorly encrypted love messages between Yoni and Skywing.
[/quote]

For one, I didn't know cdkeys were encrypted at all....

For another, why would they use cdkeys as a means of sharing love? Isn't that why they made the Botnet?

Anyways, on a more productive side of things, Arta is correct. To decipher and interperet the decoding technique will play a key role in analyzing how these keys are truely put together. However the server validates them, we will never know. But what we can do, is take a look at the key ideas, and use them to help analyze the decoding methods while reversing.

I, personally, do not know what file would be decompiled to look for such data, But I have seen many examples of code to emulate this routine.

To emulate such a complex matter, we can verify that we know how to "spoof" this routine. But this does not mean that we have "cracked" it full-proof.

Any information on what should/could be reversed to help aid in this matter would be great. I'm not the greatest with asm, but with all this useful data, and active users on this topic, I think we are not too farfetched from our answer. So lets keep this going guys...

Imagine, releasing our bots, without the need of a personal cdkey purchased from a store...

Imagine, the ease of usage for our users, and users to come... This could be a good thing, as long as we keep it away from those vile fools who abuse such information. Keep up the good work.
November 26, 2005, 11:51 PM
Kp
[quote author=Mesiah / haiseM link=topic=13318.msg135413#msg135413 date=1133049082]Imagine, releasing our bots, without the need of a personal cdkey purchased from a store...

Imagine, the ease of usage for our users, and users to come... This could be a good thing, as long as we keep it away from those vile fools who abuse such information. Keep up the good work.[/quote]

Do you really think that the information would be long withheld from abusers if it goes into a publicly released client?  Also, remember what Blizzard did when bots emulating Diablo (a cdkey-free product) became too troublesome: confined all Diablo clients to a fairly useless subset of channels.  Do you doubt that they'll do the same to Starcraft if it becomes possible for any average user to make up a working cdkey?  As soon as keys can be generated, their anti-piracy measures and anti-abuser measures are rendered totally useless.  Anyone can download an illegal copy of Starcraft, synthesize a key, and log on to play on battle.net.  (Yes, people can do this already with third-party servers, but Blizzard seems to be much less interested in this - perhaps because there's no easy way for them to stop it.)  I could go on about the other dangers associated with a publicly available algorithm for key generation, but I think you'll get the point.
November 27, 2005, 12:01 AM
UserLoser.
Pattern matching probably won't get you really far.  Do what Arta said first
November 27, 2005, 6:15 AM
shadypalm88
The last digit in a StarCraft CD key is a check digit:  A value computed from the other 12 digits is equal to this value in valid keys.

C(++) code that does this:[code]int accum, i;
// Verification
accum = 3;
for (i = 0; i < (keyLen - 1); i++) {
    accum += ((cdkey[i] - '0') ^ (accum * 2));
}

if ((accum % 10) != (cdkey[12] - '0'))
    return 0;[/code]

So, seed the verification value with 3.  For each of the digits in the key, except for the last one, add that digit's numeric value XOR the current verification value x 2 to the current verification value.  The value modulo 10 (so that the check digit can be only one digit) should equal the last digit in the key.  If not, the key is invalid.

I guess you could just generate the first 12 digits and then calculate the check digit, but that's not very helpful.

Shuffling happens next during the decode and is fairly self-explanatory; here's a small program that takes a key, shuffles it, and then returns to the original key:[code]
// file: keyshuffle.c
#include <string.h>
#include <stdio.h>

int main (int argc, char const* argv[])
{
char* cdkey;
int pos, i;
char temp;

if (argc < 2) {
fprintf(stderr, "usage: %s {cd-key}\n", argv[0]);
return 1;
}
cdkey = (char*) argv[1];
printf("Original   = \"%s\"\n", cdkey);

// Shuffling
pos = 0x0B;
for (i = 0xC2; i >= 7; i -= 0x11) {
temp = cdkey[pos];
cdkey[pos] = cdkey[i % 0x0C];
cdkey[i % 0x0C] = temp;
pos--;
}

printf("Shuffled   = \"%s\"\n", cdkey);

// Unshuffling
pos = 0;
for (i = 7; i <= 0xC2; i += 0x11) {
temp = cdkey[i % 0x0C];
cdkey[i % 0x0C] = cdkey[pos];
cdkey[pos] = temp;
pos++;
}

printf("Unshuffled = \"%s\"\n", cdkey);
return 0;
}[/code]The last step in the process follows; I can't think atm how you would take the known product value, public value (value1), and private value (value2) and reverse this step (and then unshuffle it) to produce an actual key.  Maybe someone less mathematically ignorant than I am can shed light on this.[code]// Final Value
for (i = (keyLen - 2); i >= 0; i--) {
temp = toupper(cdkey[i]);
cdkey[i] = temp;
if (temp <= '7') {
cdkey[i] ^= (char) (hashKey & 7);
hashKey >>= 3;
} else if (temp < 'A') {
cdkey[i] ^= ((char) i & 1);
}
}

// Final Calculations
sscanf(cdkey, "%2ld%7ld%3ld", &product, &value1, &value2);[/code]
November 27, 2005, 5:57 PM
JoeTheOdd
I haven't studied the method used here, but as far as I know once the key is decoded to its three values, its basically like a hashing method. You're going to have to bruteforce to get the original key back.
November 27, 2005, 7:22 PM
Arta
If I remember rightly, the encode procedure is the same for encoding and decoding - it's an XOR cipher.
November 27, 2005, 10:23 PM
shadypalm88
[quote author=Arta[vL] link=topic=13318.msg135504#msg135504 date=1133130204]
If I remember rightly, the encode procedure is the same for encoding and decoding - it's an XOR cipher.
[/quote]Good call.

encodekey.c

[quote author=Terminal][color=lime]$[/color]  gcc -Wall -o sckey encodekey.c
[color=lime]$[/color] ./sckey 2379322577914
Product       = 0x00000001
Public Value  = 0x0025FF9B
Private Value = 0x0000018C
[color=lime]$[/color] ./sckey 0x0025FF9B 0x0000018C
CD-Key = 2379322577914[/quote]
November 28, 2005, 12:18 AM
Myndfyr
I believe you shouldn't use Len(key) - 1.  That would be valid if you were using 0-based arrays, but since you're using i = 1 to ..., you'll probably want to go to Len(key).
November 28, 2005, 4:08 PM
l2k-Shadow
Ringo:
Code in my next post.

@ MyndFyre: Actually his way is correct because you only calculate the first 12 digits and not the 13th one which is the digit you are trying to end up with. His mistake was elsewhere though as you see..
November 28, 2005, 11:11 PM
l2k-Shadow
Sorry about that I kinda skimmed through it and didn't notice what I did... anyway this works:
[code]
Public Function VerifyKey(CdKey As String) As Boolean
' Function ported to VB6 from C++ by l2k-Shadow
    Dim Value As Long, i As Integer
    Value = 3
    For i = 1 To 12
        Value = Value + (Mid$(CdKey, i, 1) Xor (Value * 2))
    Next i
    If (Value Mod 10) = Right$(CdKey, 1) Then VerifyKey = True
End Function
[/code]
November 29, 2005, 12:13 AM
l2k-Shadow
Well after about 20 minutes, here is a successful VB6 port of the whole file.
November 29, 2005, 1:51 AM
Kp
[quote author=Ringo link=topic=13318.msg135640#msg135640 date=1133226784]
idk where my friend got -30 from :P
I take it c++ Integer's go higher than VB6's?[/quote]

Probably it was supposed to be 0x30, the value of '0'.  C++ integers generally go to the size of the machine word, or beyond.  It's a VB defect that its integers are still stuck in the days of Win16.
November 29, 2005, 2:40 AM
JoeTheOdd
I've got FinishSCKey memorized by heart. =p

[code]Public Sub FinishSCKey(ByRef p_sKey As String)
    Dim I As Byte, Accum As Integer
    I = 3
    For I = 1 To 12
        Accum = Accum + (Val(Mid(p_sKey, I, 1)) Xor (Accum * 2))
    Next I
    p_sKey = p_sKey & CStr(Accum Mod 10)
End Sub[/code]

Pretty encouraging that I started something here. Looks like we're making some good progress, little thanks to me, sad to say. All bow down to King Arta for showing us how to create SC keys. <3
November 29, 2005, 3:18 AM
l2k-Shadow
Well I don't know how it was shown to create keys... I created a simple generator according the current known research and I keep getting keys which pass BNCSUtil and BNLS check but then I get Invalid CD-Key and IPBanned from battle.net.
November 29, 2005, 4:59 AM
UserLoser.
[quote author=Joe link=topic=13318.msg135660#msg135660 date=1133234284]
I've got FinishSCKey memorized by heart. =p

[code]Public Sub FinishSCKey(ByRef p_sKey As String)
    Dim I As Byte, Accum As Integer
    I = 3
    For I = 1 To 12
        Accum = Accum + (Val(Mid(p_sKey, I, 1)) Xor (Accum * 2))
    Next I
    p_sKey = p_sKey & CStr(Accum Mod 10)
End Sub[/code]

Pretty encouraging that I started something here. Looks like we're making some good progress, little thanks to me, sad to say. All bow down to King Arta for showing us how to create SC keys. <3
[/quote]

Making progress?  You're going backwards.  That function was written somewhere else back in like 1997.
November 29, 2005, 5:49 AM
l2k-Shadow
[quote author=UserLoser link=topic=13318.msg135677#msg135677 date=1133243364]
[quote author=Joe link=topic=13318.msg135660#msg135660 date=1133234284]
I've got FinishSCKey memorized by heart. =p

[code]Public Sub FinishSCKey(ByRef p_sKey As String)
    Dim I As Byte, Accum As Integer
    I = 3
    For I = 1 To 12
        Accum = Accum + (Val(Mid(p_sKey, I, 1)) Xor (Accum * 2))
    Next I
    p_sKey = p_sKey & CStr(Accum Mod 10)
End Sub[/code]

Pretty encouraging that I started something here. Looks like we're making some good progress, little thanks to me, sad to say. All bow down to King Arta for showing us how to create SC keys. <3
[/quote]

Making progress?  You're going backwards.  That function was written somewhere else back in like 1997.
[/quote]

Major burn.
November 29, 2005, 6:01 AM
Arta
King Arta, that sounds good  8)


Anyway, you've figured out how to encode keys. That's a good step. The hard part (the part no one's managed yet) is to figure out what computation you do to derive a private from a public.
November 29, 2005, 10:38 AM
JoeTheOdd
From my lists, its looked like private keys never go above 0x000000FF. Perhaps thats a start?
November 29, 2005, 1:07 PM
kamakazie
Do all those work on battle.net? If so: On average, how long does it take you to generate a cdkey?

Edit: Also, what is "key-gaps"?
November 29, 2005, 6:19 PM
Arta
Pocket? Can you post/pm code? How many invalid keys are you generating for each valid one?
November 29, 2005, 6:21 PM
rabbit
[quote author=Arta[vL] link=topic=13318.msg135715#msg135715 date=1133288483]
Pocket? Can you post/pm code? How many invalid keys are you generating for each valid one?
[/quote]I think the invalid:valid is the key-gaps.
November 29, 2005, 11:22 PM
JoeTheOdd
Ringo, is there anything you can't do? =p
November 30, 2005, 12:38 AM
rabbit
Pull his lower lip over his head, down his back, around his feet, and back up to his face.
November 30, 2005, 1:22 AM
HdxBmx27
I have 'just' been given access to 2 labs of 30 computers. (512MB RAM, 3.5GHz CPUs, and NetSupport ;D )
Does anyone know or have noticed a pattern or bounds in the public/private keys?
I'd rather not have to all 9989999001 possible combenations of public and private keys (1-9999999 public and 1-999 private)
And as for the lip thing.. You never know FoFo....
~-~(HDX)~-~
November 30, 2005, 2:18 AM
l2k-Shadow
May I ask what "pocket" is? Also I see that the product for those is 2 and not 1... and when using the encoding algorithm for those, it outputs an incorrect key. Any ideas?

EDIT: Also, Arta, if I may ask, where do you conclude that there is an actual computation you can do to derive a private value from a public value?
November 30, 2005, 2:36 AM
UserLoser.
This whole idea is very bad.  This shouldn't be on a public forum like this...especially when it's populated by nothing but Battle.netters.....just letting you know ahead of time.
November 30, 2005, 3:20 AM
Newby
[quote author=UserLoser link=topic=13318.msg135787#msg135787 date=1133320801]
This whole idea is very bad.  This shouldn't be on a public forum like this...especially when it's populated by nothing but Battle.netters.....just letting you know ahead of time.
[/quote]

To UserLoser: Are you excluding yourself from the Battle.netters? I'm curious.

Who cares if they figure out how to differentiate real CD-Keys from fake CD-Keys? Does Battle.net REALLY mean that much to you? Do you REALLY think they're going to get anywhere, and if they do, and Battle.net ends up dying (which it probably won't, since they still have Diablo II/Warcraft III) what does it matter?
November 30, 2005, 3:56 AM
UserLoser.
[quote author=Newby link=topic=13318.msg135792#msg135792 date=1133323008]
[quote author=UserLoser link=topic=13318.msg135787#msg135787 date=1133320801]
This whole idea is very bad.  This shouldn't be on a public forum like this...especially when it's populated by nothing but Battle.netters.....just letting you know ahead of time.
[/quote]

To UserLoser: Are you excluding yourself from the Battle.netters? I'm curious.

Who cares if they figure out how to differentiate real CD-Keys from fake CD-Keys? Does Battle.net REALLY mean that much to you? Do you REALLY think they're going to get anywhere, and if they do, and Battle.net ends up dying (which it probably won't, since they still have Diablo II/Warcraft III) what does it matter?
[/quote]

No I'm not excluding my self, but I'm not about to become one of the morons who ruin a free service like B.net for the rest of us.  The whole point is all you stupid kiddies out there who sit there all day chatting on your Starcraft bots will be stuck in public channels like Diablo is.  What's your problem anyways?  You always have to come back with such a direct personal attack to me.  You have nothing to contribute to this thread or this development forum as a whole.  I already put my two cents in and I'm not about to help them figure out how to generate working CdKeys from what I know.  Go to hell, get a job, get a girl, just get a life and don't reply to my posts anymore.
November 30, 2005, 4:21 AM
JoeTheOdd
UserLoser, I hate to break it to you, but Battle.net is already dying. All we can do is speed its agonizing death.

Another thing, how many random people who come to this website know how to program? I mean, sure, we know what this stuff means, but programmers are a small fraction of the world. Beyond that, how many of us would write a program (and release it) that spews out every single real key, so that a floodbot could easily use it. I don't know about you guys, but I wouldn't.
November 30, 2005, 4:31 AM
l2k-Shadow
Also I'd like to point out, myself (and I'm sure quite others who are contributing to this research) are only doing this as an interest factor in our free time... we have nothing to gain or lose by this but it's an interesting topic to entertain us with. If it wasn't, then I'm sure it would not have been discussed for 4 pages of replies.
November 30, 2005, 5:02 AM
Myndfyr
[quote author=Joe link=topic=13318.msg135797#msg135797 date=1133325119]
UserLoser, I hate to break it to you, but Battle.net is already dying. All we can do is speed its agonizing death.
[/quote]
If its death is SO agonizing, then 1.) Blizzard would have just shut it down, and 2.) why don't you just go do something else?

Why do you want to finish off something that's free and fun?
November 30, 2005, 6:39 AM
JoeTheOdd
See the next paragraph. I hope the programmers of the world are more responsible than that.
November 30, 2005, 12:56 PM
Arta
[quote author=UserLoser link=topic=13318.msg135787#msg135787 date=1133320801]
This whole idea is very bad.  This shouldn't be on a public forum like this...especially when it's populated by nothing but Battle.netters.....just letting you know ahead of time.
[/quote]

Userloser is exactly right. I'll pass on the advice Sky gave me when I was doing some of this stuff a few years back: if you figure it out, Blizzard will probably add the same restrictions to Starcraft that exist for Diablo 1.


[quote author=l2k-Shadow link=topic=13318.msg135781#msg135781 date=1133318205]
Also, Arta, if I may ask, where do you conclude that there is an actual computation you can do to derive a private value from a public value?
[/quote]

Because that's how the system works. We deduce that this is possible because it's the only way that Battle.net could verify your hashed cd key data.

All the other data in the hash is passed in plaintext: the private is not (hence the name). Thus, in order to compute a hash and compare it to the hash provided by the client, Battle.net must be able to compute the value of the private *somehow*. If you think about it, and look at the other data available during the logon, it becomes clear that the key's private value is the only real candidate.


I think that this is a worthwhile thing to be looking into, but I also think that there are ethical concerns that you should take into account. If you did figure out the public->private formula, or even if you just bruteforce all the valid keys (it would take a while, but I'm sure it's tractible - you can do it in constant time, I think: O(10^10)), you're going to be producing keys that other people have paid for, and using those keys wouldn't really be very polite. Additionally, it's likely that any successful attempt on your part would lead to the restriction of stacraft and broodwar clients on Battle.net. I think you should proceed carefully.
November 30, 2005, 4:21 PM
Myndfyr
You can't "unhash."  Hashing functions (at least the ones used by Battle.net) are one-way.  Theoretically, you could hash multiple values and have the same hash value (this is called a collision, and it's how bruteforce hash-cracking works), but you'll never know with certainty which of the values was the one used to compute the initial hash.  There are 2[sup]160[/sup] possible values for SHA-1, which means that ideally there are 2[sup]160[/sup] possible inputs that each produce distinct values.
November 30, 2005, 5:09 PM
Myndfyr
Because you hash something and the output is always the same.

A very trivial hashing function H(x) might only emit values 1-10 for any particular input.  For example:
H("a") = 1
H("b") = 2
H("c") = 3
...
H("j") = 10
H("k") = 1

But no matter what, H("a") is always equal to 1.  So, Blizzard can verify whether I know my password without them actually knowing my password if I simply give them a hash of it.

H("password") always equals H("password").  And, if they store H("password") on their server, they know the hash of my password, and then if we do H(client key + server key + H("password")) or some other type of similar order, then the hash will always be the same given that input.  That's why the client and server keys are exchanged; the password hash itself is always known by both sides, and the client/server keys add a random element that would make someone sniffing packets do twice as much work just to bruteforce one password.
November 30, 2005, 6:11 PM
l2k-Shadow
[quote author=Ringo link=topic=13318.msg135841#msg135841 date=1133369185]
[quote author=Arta[vL] link=topic=13318.msg135836#msg135836 date=1133367707]
All the other data in the hash is passed in plaintext: the private is not (hence the name). Thus, in order to compute a hash and compare it to the hash provided by the client, Battle.net must be able to compute the value of the private *somehow*. If you think about it, and look at the other data available during the logon, it becomes clear that the key's private value is the only real candidate.
[/quote]
I was thinking about this, and the best idea of how it was all going on bnet's end was that:
when bnet gets your cdkey hash, it uses the product code in the packet to check for wrong product (and maybe the key lengh), and if that pass's, it uses then client token and the server token issued to unhash the cdkey hash data (maybe a quick function to get 1 DWORD of it?) to get the private value.
Then uses the product value in the packet/unhash cdkey, to point to a data base/box, or somthing to check the cdkey in.
When that thing gets the private value (witch would be a pointer to another data base maybe) which searchs a public value list for a match and return invalid if not found.
Thats probly far from how it works, hah

I have some pritty crazzy ideas of how things work :(
[/quote]

If I understand correctly, I don't think the server token/client token have anything to do with the cd-key... since the private value is always the same for every key, how would u use 2 random values to calculate it? -.- I think it's more to do with the public value itself OR public value + the CDKey hash. Now I think we should figure out if it uses only public value or the public value and CDKey hash... before trying to make any computations.
November 30, 2005, 6:41 PM
l2k-Shadow
Right, sorry I misread Arta's reply post.
November 30, 2005, 6:48 PM
kamakazie
[quote author=Arta[vL] link=topic=13318.msg135836#msg135836 date=1133367707]
Because that's how the system works. We deduce that this is possible because it's the only way that Battle.net could verify your hashed cd key data.

All the other data in the hash is passed in plaintext: the private is not (hence the name). Thus, in order to compute a hash and compare it to the hash provided by the client, Battle.net must be able to compute the value of the private *somehow*. If you think about it, and look at the other data available during the logon, it becomes clear that the key's private value is the only real candidate.
[/quote]

What is stopping Battle.net from looking up the public and product values in a database for the corresponding private value and comparing hashes that way? Would be one huge database, but it would also be very fast.

Edit: If this is the case, then it is possible private values are completely random.
November 30, 2005, 6:52 PM
Myndfyr
[quote author=l2k-Shadow link=topic=13318.msg135851#msg135851 date=1133376065]
If I understand correctly, I don't think the server token/client token have anything to do with the cd-key... since the private value is always the same for every key, how would u use 2 random values to calculate it? -.- I think it's more to do with the public value itself OR public value + the CDKey hash. Now I think we should figure out if it uses only public value or the public value and CDKey hash... before trying to make any computations.
[/quote]
It doesn't necessarily.  I was referring to the username/password authentication scheme where Battle.net requires a double-hash of data, the second time including the server and client tokens.  Since he was asking about hashing in general, I thought I'd illustrate that example.
November 30, 2005, 7:20 PM
Arta
[quote author=dxoigmn link=topic=13318.msg135854#msg135854 date=1133376720]
What is stopping Battle.net from looking up the public and product values in a database for the corresponding private value and comparing hashes that way? Would be one huge database, but it would also be very fast.

Edit: If this is the case, then it is possible private values are completely random.
[/quote]

I suppose that's plausible for Starcraft keys, but I think a computation would be quicker (and definitely more memory-efficient). Additionally, it would be completely implausible for Diablo II or Warcraft III keys, and I rather suspect that they all use the same system, but with different key formats/calculations.
December 1, 2005, 2:29 AM
rabbit
Well, we know Warcraft II and StarCraft use the same system, or at least SC uses one derived from WC2, as we find that the reversed StarCraft has a case changing call...which makes not sense with a set of digits.  I have some theories, but I want to do more research before I actually post anything.
December 1, 2005, 2:35 AM
Myndfyr
[quote author=rabbit link=topic=13318.msg135881#msg135881 date=1133404515]
Well, we know Warcraft II and StarCraft use the same system, or at least SC uses one derived from WC2, as we find that the reversed StarCraft has a case changing call...which makes not sense with a set of digits.  I have some theories, but I want to do more research before I actually post anything.
[/quote]

How do you know this?  Starcraft came out well before Warcraft II: Battle.net Edition and Diablo II, both of which use 16-character alphanumeric keys as opposed to Starcraft's 13-digit numeric-only key.
December 1, 2005, 4:18 AM
rabbit
From what I've learned of assembly, and the code segments for decoding keys I've been shown (I still can't actually FIND them...), I've noticed both start off with a case change.

[edit]
Unless I'm mistaken, which I may very well be.  I tend to suck at assembly.
December 1, 2005, 4:23 AM
l2k-Shadow
I am working on encoding function for w2/d2 keys. So far they are well following the system for sc keys but i am stuck on the 'shuffling' part of it and can't seem to get it working. Thing is when you 'shuffle' the d2 key, it outputs less values then before the algorithm, that's what's fux0ring me up.
Here's the decode:
[code]
Private Sub DecodeD2Key(ByVal CDKey As String, ByRef Product As Long, ByRef PublicValue As Long, ByRef PrivateValue As Long)
Dim i&, r&, n&, n2&, v&, V2&, C&, c1&, c2&, keyvalue&
Dim CodeValues$, tKey$(15), tStr$
    CDKey = UCase$(CDKey)
    CodeValues = "246789BCDEFGHJKMNPRTVWXZ"
    r = 1
    'Fill Array
    For i = 0 To 15
        tKey(i) = Mid$(CDKey, i + 1, 1)
    Next i
    For i = 0 To 15 Step 2
        c1 = InStr(CodeValues, tKey(i)) - 1
        n = c1 * 3
        c2 = InStr(CodeValues, tKey(i + 1)) - 1
        n = c2 + n * 8
        If n >= &H100 Then
            n = n - &H100
            keyvalue = keyvalue Or r
        End If
        n2 = n
        n2 = n2 \ 16
        tKey(i) = Hex$(n2)
        tKey(i + 1) = Hex$(n)
        r = r * 2
    Next i
    'Shuffling
    For i = 15 To 0 Step -1
        C = Asc(tKey(i))
        If i > 8 Then
            n = i - 9
        Else
            n = &HF - (8 - i)
        End If
        n = n And &HF
        c2 = Asc(tKey(n))
        tKey(i) = Chr$(c2)
        tKey(n) = Chr$(C)
    Next i
    'Final Values
    V2 = &H13AC9741
    For i = 15 To 0 Step -1
        C = Asc(UCase$(tKey(i)))
        If C <= 55 Then
            tKey(i) = Chr$((((V2 And &HFF) And 7) Xor C))
            V2 = V2 \ 8
        ElseIf C < 65 Then
            tKey(i) = Chr$(((i And 1) Xor C))
        End If
    Next i
    tStr = Join(tKey, vbNullString)
    Product = CLng("&H" & Left$(tStr, 2))
    PublicValue = CLng("&H" & Mid$(tStr, 3, 6))
    PrivateValue = CLng("&H" & Mid$(tStr, 9))
End Sub
[/code]
I got the encoding fine for the final values but I need a poke in the right direction as to how to 'unshuffle'. Any ideas plz?
December 1, 2005, 7:52 AM
ThePro
I think you waste your time at all.

If an original Starcraft CD has been created, the CD-Key which will land on the CD-Cover will be registred to bnet. Thats what I think, how Blizzard handle that, so it's impossible to calculate a working battle.net cd-key.
December 1, 2005, 2:48 PM
Arta
Well, that's already been demonstrated not to be the case.
December 1, 2005, 3:51 PM
Yegg
[quote author=ThePro link=topic=13318.msg135963#msg135963 date=1133448530]
I think you waste your time at all.

If an original Starcraft CD has been created, the CD-Key which will land on the CD-Cover will be registred to bnet. Thats what I think, how Blizzard handle that, so it's impossible to calculate a working battle.net cd-key.
[/quote]
Are you suggesting that a 13-digit variable (being the Starcraft key in this case) does not exist until it is put on a CD case and shipped from its warehouse?
December 1, 2005, 8:15 PM
tA-Kane
[quote author=Yegg link=topic=13318.msg135984#msg135984 date=1133468123]
[quote author=ThePro link=topic=13318.msg135963#msg135963 date=1133448530]
I think you waste your time at all.

If an original Starcraft CD has been created, the CD-Key which will land on the CD-Cover will be registred to bnet. Thats what I think, how Blizzard handle that, so it's impossible to calculate a working battle.net cd-key.
[/quote]
Are you suggesting that a 13-digit variable (being the Starcraft key in this case) does not exist until it is put on a CD case and shipped from its warehouse?
[/quote]That's what I have believed for a very long while. though, it may be entirely false. Blizzard could have only the algorithm to verify that keys are valid instead of a database of which keys have been generated and distributed by them. It would be interesting to create a database of keys which are valid for install, but whose public values are known to not contain a matching valid private value which allows it onto Battle.net. Then, re-check the database every few months to see if any of them have changed from invalid to valid (even if being valid, theyv'e already been muted or jailed or whatever).
December 1, 2005, 8:25 PM
Adron
[quote author=Ringo link=topic=13318.msg135991#msg135991 date=1133471461]
[EDIT]:
Removed post contents and PM'ed to arta :)
(Could be classed as harmfull infomation)
[/quote]

Hmmm? Sounds like something interesting?
December 1, 2005, 9:43 PM
Topaz
That's very possible, Kane; But if they do use an algorithm, then it's easy to generate working keys. After all, more than a million copies of Starcraft have been sold.
December 1, 2005, 11:34 PM
Arta
I have replied :P

Sorry, it's been a busy week. Feel free to repost my comments if you want.
December 3, 2005, 3:13 PM
Kp
[quote author=Ringo link=topic=13318.msg136202#msg136202 date=1133621821]Maybe, it was mainly a observation to go with the data-base idea :P
Arta hasnt replyed -- so im asumeing its nothing important, or an observation of somthing that was already known.

On the data-base subject:
If there was nothing more than a algorithm to generate valids cdkeys, it would mean blizzard possibly activated millions of valid cdkeys when they created the algorithm for SC keys, before they had even released a single copy of the game.
And if there was just a algorithm, there would have to be some kind of data base to keep record of banned, muted and inuse keys.
A 'CDKey' data base could do all of this, with out over confusing things and becoming messy.
But lets say theres nothing more than a algorithm, how would blizzard beable to check if the cdkey is banned, void or inuse?[/quote]

There's no reason they'd need to turn on all valid keys when they first ship.  Suppose they have some function f such that f(public) = private.  The server uses this function to check whether a key could possibly be valid.  The server then has a second listing of what potentially valid keys are actually valid.  For instance, they might say that only keys which have a public value in [2000,2000000) are valid, even though f can compute (and therefore be used to check) the validity of all keys, regardless of their public value.  This listing of keys can be maintained much more cheaply than a full database, since it is just a set of ranges, not an enumeration of every key in the range.

Such a scheme would also encourage the use of sequential public values for CDs stamped at the same time, since you then create only one range on the server.  This in turn leads to several ways that they could keep the listing of banned/jailed/muted keys cheaply.  For instance, a balanced binary tree where the key's public value is the key to the node and the action (jail, mute, ban) is the value of the node.  If a key's value is not found in the tree, the default action is 'none': user has done nothing prohibited, so allow a full logon.  This is just what I've come up with offhand.  Blizzard had days, weeks, or maybe even months to pick out how they wanted to implement cdkey storage, and they still have the flexibility to change the underlying data structures since they never share the database or associated checking code.

Also - why're you posting public messages telling Arta when you've replied to him?  He can see it in the forum header, and the rest of us gain nothing from knowing which of you is waiting on the other to reply next.
December 3, 2005, 5:26 PM
Arta
A calculation would be faster than a database for determining the correctness of the private. A binary tree would be a nice way to hold a list of banned/muted/inuse keys in memory.

December 3, 2005, 7:12 PM
tA-Kane
[quote author=Kp link=topic=13318.msg136212#msg136212 date=1133630770]
[quote author=Ringo link=topic=13318.msg136202#msg136202 date=1133621821]Maybe, it was mainly a observation to go with the data-base idea :P
Arta hasnt replyed -- so im asumeing its nothing important, or an observation of somthing that was already known.

On the data-base subject:
If there was nothing more than a algorithm to generate valids cdkeys, it would mean blizzard possibly activated millions of valid cdkeys when they created the algorithm for SC keys, before they had even released a single copy of the game.
And if there was just a algorithm, there would have to be some kind of data base to keep record of banned, muted and inuse keys.
A 'CDKey' data base could do all of this, with out over confusing things and becoming messy.
But lets say theres nothing more than a algorithm, how would blizzard beable to check if the cdkey is banned, void or inuse?[/quote]

There's no reason they'd need to turn on all valid keys when they first ship. Suppose they have some function f such that f(public) = private. The server uses this function to check whether a key could possibly be valid. The server then has a second listing of what potentially valid keys are actually valid. For instance, they might say that only keys which have a public value in [2000,2000000) are valid, even though f can compute (and therefore be used to check) the validity of all keys, regardless of their public value. This listing of keys can be maintained much more cheaply than a full database, since it is just a set of ranges, not an enumeration of every key in the range.

Such a scheme would also encourage the use of sequential public values for CDs stamped at the same time, since you then create only one range on the server. This in turn leads to several ways that they could keep the listing of banned/jailed/muted keys cheaply. For instance, a balanced binary tree where the key's public value is the key to the node and the action (jail, mute, ban) is the value of the node. If a key's value is not found in the tree, the default action is 'none': user has done nothing prohibited, so allow a full logon. This is just what I've come up with offhand. Blizzard had days, weeks, or maybe even months to pick out how they wanted to implement cdkey storage, and they still have the flexibility to change the underlying data structures since they never share the database or associated checking code.[/quote]Using a balanced AVL tree (see: here) for that is a pretty neat concept, but why not just use something a little easier to sync with other servers on the same gateway? Eg, SQL?

And yes, Ringo... a binary tree will work better & faster in C++ (actually, I'd venture a guess that anything would work better & faster in C++ than in VB).
December 3, 2005, 7:37 PM
Kp
[quote author=tA-Kane link=topic=13318.msg136225#msg136225 date=1133638656]Using a balanced AVL tree (see: here) for that is a pretty neat concept, but why not just use something a little easier to sync with other servers on the same gateway? Eg, SQL?

And yes, Ringo... a binary tree will work better & faster in C++ (actually, I'd venture a guess that anything would work better & faster in C++ than in VB).[/quote]

SQL sounds like a perfectly workable solution as well, though keeping it in a local data structure could give better search performance (assuming a good data structure is used in both cases, so SQL has the necessary overhead of querying the remote server).  Automatic synchronization would be a definite plus for having it centralized, but they can reduce network load and code complexity by keeping it local.  It's all about trade-offs. :)

[quote author=Ringo link=topic=13318.msg136236#msg136236 date=1133643919]*wunders how smart blizzard were in 97*  ::)[/quote]

For the purpose of keeping the list of disallowed keys, it doesn't matter how smart they were when they implemented it.  As I noted above, they don't grant outside access to it, so they're theoretically free to change the internal structure whenever they want.
December 3, 2005, 10:14 PM
Arta
For the record, I think they were considerably smarter in '97 than they are now. I think a lot of the people behind battle.net left.
December 4, 2005, 12:47 AM
rabbit
Has anyone looked at Blizzard's site recently?  Most of their news is "New Job Opening" stuff...
December 4, 2005, 1:32 AM
Quarantine
D2 team broke off into many projects like Hellgate: London. Don't know about SC Team. What makes this hard is since they left no one knows where shit is in the code (which may contribute to some bugs that have happened)
December 4, 2005, 3:38 AM
rabbit
All of those are 7xx7xxxxxxxx*...hrm?
December 5, 2005, 1:47 AM
FrOzeN
With a little closer look they all are 7x17xx3xx4xxx*

[EDIT] Looking some more any that have the second digit a '3' have the twelfth as a '9', and any with the second digit a '8' or '9' have the twelfth a '4'.
December 5, 2005, 2:14 AM
rabbit
A small block in particular, [quote]7917843934646
7917873924743
7917883324245
7917883674340
7917893754140[/quote]

All 79177x3x4x4*
Grah?
December 5, 2005, 3:44 AM
Spht
[quote author=Ringo link=topic=13318.msg136371#msg136371 date=1133729871]
Uh, i just figgered somthing out, and noticed there can be 7XXXXXXXXXXXX* keys as well[/quote]

Congrats.  Keep it up.

[quote author=FrOzeN link=topic=13318.msg136406#msg136406 date=1133748880]
With a little closer look they all are 7x17xx3xx4xxx*

[EDIT] Looking some more any that have the second digit a '3' have the twelfth as a '9', and any with the second digit a '8' or '9' have the twelfth a '4'.
[/quote]

So...?
December 5, 2005, 3:50 AM
FrOzeN
[quote author=Spht link=topic=13318.msg136424#msg136424 date=1133754635]
[quote author=Ringo link=topic=13318.msg136371#msg136371 date=1133729871]
Uh, i just figgered somthing out, and noticed there can be 7XXXXXXXXXXXX* keys as well[/quote]

Congrats.  Keep it up.

[quote author=FrOzeN link=topic=13318.msg136406#msg136406 date=1133748880]
With a little closer look they all are 7x17xx3xx4xxx*

[EDIT] Looking some more any that have the second digit a '3' have the twelfth as a '9', and any with the second digit a '8' or '9' have the twelfth a '4'.
[/quote]

So...?
[/quote]
I was just elaborating on what rabbit said. The stuff in the edit was just a assumption which spiked a bit of curiosity on the list.
December 5, 2005, 4:08 AM
GoaL
Here's what you may think is a stupid question, but why doesn't someone just for the hell of it, make a program that trys out 0000000000000 - 9999999999999 on the Starcraft Installer. Of course they wouldn't ALL be working on battle.net. But couldn't you then take that list and get better information from that. My personal idea is to do that, take that list, create a key tester and proxie scanner, then have the key tester update it's proxie list every 10 key tries, and have the proxie scanner append the proxie list with every new proxie, and let it run 24/7/365 on my windows server. If anyone would like to code this sort of program I would be more then happy to run it on my server. I do believe it would get better results then all of this guessing, it would give you a better portion of data to research on.
December 5, 2005, 11:53 AM
laurion
[quote author=GoaL link=topic=13318.msg136451#msg136451 date=1133783604]
Here's what you may think is a stupid question, but why doesn't someone just for the hell of it, make a program that trys out 0000000000000 - 9999999999999 on the Starcraft Installer. Of course they wouldn't ALL be working on battle.net. But couldn't you then take that list and get better information from that. My personal idea is to do that, take that list, create a key tester and proxie scanner, then have the key tester update it's proxie list every 10 key tries, and have the proxie scanner append the proxie list with every new proxie, and let it run 24/7/365 on my windows server. If anyone would like to code this sort of program I would be more then happy to run it on my server. I do believe it would get better results then all of this guessing, it would give you a better portion of data to research on.
[/quote]
Joe's sckmg.
December 5, 2005, 12:08 PM
JoeTheOdd
[quote author=Tazo link=topic=13318.msg136452#msg136452 date=1133784493]
[quote author=GoaL link=topic=13318.msg136451#msg136451 date=1133783604]
Here's what you may think is a stupid question, but why doesn't someone just for the hell of it, make a program that trys out 0000000000000 - 9999999999999 on the Starcraft Installer. Of course they wouldn't ALL be working on battle.net. But couldn't you then take that list and get better information from that. My personal idea is to do that, take that list, create a key tester and proxie scanner, then have the key tester update it's proxie list every 10 key tries, and have the proxie scanner append the proxie list with every new proxie, and let it run 24/7/365 on my windows server. If anyone would like to code this sort of program I would be more then happy to run it on my server. I do believe it would get better results then all of this guessing, it would give you a better portion of data to research on.
[/quote]
Joe's sckmg.
[/quote]
=).

I'll probablly port that to VC++ either in class today or when I get home.
December 5, 2005, 1:09 PM
Arta
[quote author=GoaL link=topic=13318.msg136451#msg136451 date=1133783604]
Here's what you may think is a stupid question, but why doesn't someone just for the hell of it, make a program that trys out 0000000000000 - 9999999999999 on the Starcraft Installer. Of course they wouldn't ALL be working on battle.net. But couldn't you then take that list and get better information from that. My personal idea is to do that, take that list, create a key tester and proxie scanner, then have the key tester update it's proxie list every 10 key tries, and have the proxie scanner append the proxie list with every new proxie, and let it run 24/7/365 on my windows server. If anyone would like to code this sort of program I would be more then happy to run it on my server. I do believe it would get better results then all of this guessing, it would give you a better portion of data to research on.
[/quote]

The means by which the installer validates keys is well understood. There's no particular need to try a bruteforce in that range, because we already know which keys will pass the installer and which won't. Bruteforcing all valid keys using a connection to Battle.net would take a very long time: there are 10^9, or 1,000,000,000 possible combinations (not 10^10 as stated earlier! Oops.) This would take a very long time to test, and I daresay that someone at Blizzard might notice. Figuring out the algorithm is (a) more interesting, and (b) more useful.

That said, I rather agree that all this guessing isn't very useful unless these observations are placed in the perspective of some theory and tested.
December 5, 2005, 3:48 PM
GoaL
So we already know the exact check the installer uses, then why not as I said run 0000000000000-9999999999999 through it, someone give me a list and i'll start testing lol?. I'm sure once i have a list of a few million real keys. It would be alot easier for research.
December 6, 2005, 4:03 AM
GoaL
I just had a program made in C++ that takes 0000000000000-9999999999999 and throws them through to make sure they are valid (only to install with), then output's to a key file. I cannot say who made it, but 20 hours and it will list every key. Anyone like to comment on this, and tell me what they think I should do?
December 6, 2005, 10:15 AM
FrOzeN
About 3 hours ago I tried the same thing with my code being:
[code]#include <iostream.h>
#include <stdio.h>

int main ()
{
FILE * pFile;
long i;

cout << "Press enter to start." << endl;
cin.get();
cout << "Making CdKey list..." << endl;

pFile = fopen ("cdkeylist.txt","w");
for (i = 0; i < 9999999999999; i++) {
fprintf (pFile, "%013d\n", i);
}
fclose (pFile);

  cout << "\nFinished.";
cin.get();
return 0;
}[/code]

Though I remembered after that a Long isn't 'that' long and there's no basic cd-key validation or anything.
Seems kind of stupid idea. Here's what my file looked like after 2 and a 1/2 hours when I decided to close it:

[img]http://img214.imageshack.us/img214/3542/cdkeylist3eg.jpg[/img]

I had just posted a topic about it on StealthBot.net here, oh well.

[EDIT] I realise this may be irrelevant, if so delete it.
December 6, 2005, 10:32 AM
LordNevar
There's quite a few programs out there that will generate every possible set of 13 digit numbers in a specific range. Which is pointless cause that is not what is trying to be done here. That would take way too long, and would take way too many resources to check all those possibilities. Sure it can be done but with alot of work and time consumption. Also let me see you check that many key's against B.net without them catching on.....

The whole point of what is trying to be done is to figure out how it is being done. Not let's make a list and just find them all with the process of elimination. There's a specific combination for every key string, and yes Ringo and some others are noticing it. Every set of numbers is staged with the same number marking a dividing spot in the key string. This number is used to calculate the ending number in a certain multiple and is also used to derive the outcome of the public key, and the private key. Although this is the case, actually generating the right key group is still not worth it. True you will find valid key's, but you will also find that they are valid cause they are purchased copies and belong to other people. After alot of research and trial and error, I have come to a base conclusion, that as someone stated before a key is only valid when it is put on the case. In my results from testing this is very possible. I took a generated list of keys that I did not have in any prior lists, and ran a test on them for a week. Out of each one of the 200 keys tested approximately (71) were invalid, (14) were voided, (23) were muted, (45) were banned, and (47) of them fell in use by different people. Either coicindental or not still doesn't deafeat the fact that even if I am wrong which is still very plausible, you are still going to end up with someone elses key. You need to look at all the possible outcomes of keys, and all the people that actually own a copy. True the odds of you always finding a key inuse is slim but it is still possible. Now I tested a small list of 200 and of those 200 (129) were used at one point or at the present. This list was only tested on the west realm.
December 6, 2005, 1:09 PM
JoeTheOdd
Frozen, unsigned long long.

As Arta said, the installer verification is very well understood. The code disassembled right from the installer is..
[code]  mov    eax, 3
  mov    esi, ecx
  mov    ebp, edx
  xor    ecx, ecx
Top:
  movsx  edx, byte ptr [ecx+esi]
  sub    edx, 30h       
  lea    edi, [eax+eax] 
  xor    edx, edi       
  add    eax, edx       
  inc    ecx           
  cmp    ecx, 0Ch       
  jl      short Top
  xor    edx, edx 
  mov    ecx, 0Ah 
  div    ecx       
 
  movsx  eax, byte ptr [esi+0Ch]
  movsx  edx, dl
  add    edx, 30h
  cmp    eax, edx
  jnz    bottom
  mov    eax, 1 
  retn    8
bottom:
  xor    eax, eax
  retn    8[/code]

In C++, its..
[code]bool verifyStarcraftCDKey(char *cdkey)
{
  int accum = 3;
  for(int i = 0; i < 13; i++)
      accum += ((cdkey[i] - '0') ^ (accum * 2));

  return ((accum % 10) == (cdkey[13] - '0'));
}[/code]

In SCKMG, I've modified this function to checksum the first 12 digits of the CD-Key and return the last one. That way instead of verifing ten, we generate one, and end up running ten times as fast.
December 6, 2005, 1:14 PM
kamakazie
Argh. As someone already pointed out, stop looking at encoded cdkeys. You're not going to get anywhere. You guys should be look at the public and private value relationship *after* decoding the cdkeys. A good experiment to run is try to find all public values that map to the same private value (i.e. public values ranging [0, 9999999] and a private value of 1). Note: this would require hammering the battle.net servers but seems doable with enough proxies.
December 6, 2005, 5:26 PM
Arta
You won't get anywhere significant, nor will you arrive at a decent understanding of the mechanisms involved, without concentrating your efforts on decoded keys.
December 7, 2005, 12:27 AM
GoaL
Well, my way of thinking through it, is: If I have every key in a list, then I could do equations, and I would have the result, like ... 1x + 2 = 6, I have the end result, which makes figuring out the equation a bit easier, and maybe I read it wrong but I believe one of the posts said something along the lines as I only have 0000000000000-9999999999999, I do not, they are all being ran through the installer's check. Then that list I will use MANY proxies and check 1000 out of each range , 1*,2*, etc.
December 7, 2005, 3:50 AM
GoaL
The list is finished, it is only 1.39 GB. I have uploaded it to a site, if anyone want's it, let me know. I do believe I can get a good number of keys ringo, I get a few thousand proxies per scan, and I and another person are working on a key tester in C++, I am going to incoporate the key tester with the proxie scanner, so they work together, then allow that to run 24/7 on my windows server.
December 7, 2005, 4:10 AM
Arta
lol :)
December 7, 2005, 5:11 AM
GoaL
Of the entire list, or of 1000 of each range?
December 7, 2005, 11:30 AM
JoeTheOdd
[quote author=GoaL link=topic=13318.msg136693#msg136693 date=1133955046]
Of the entire list, or of 1000 of each range?
[/quote]I don't claim to be an expert mathematician, but anyone knows that percents stay the same no matter how many things there is total.

Ringo, if they pound the server with, say, 1000 keys per second, they could be done in about I week, methinks. Probably a lot faster.

As for wrong products, is there any way to have an invalid product other than the product of 1?
December 7, 2005, 1:11 PM
GoaL
Hmmm, best I can do is about 1000 proxies, but I'm waiting on my tester in c++ to be finished because VB can't handel 1.39GB.
December 7, 2005, 1:23 PM
tA-Kane
The forum's reply with quote is broken for me.  :(

VB doesn't support 1.39GB files? That surprises me. I wouldn't be surprised if it didn't support 2.0GB files, though... or even 1.99GB. I wonder what its limit is, then?
December 7, 2005, 1:30 PM
UserLoser.
[quote author=Ringo link=topic=13318.msg136724#msg136724 date=1133975035]
[quote author=Joe link=topic=13318.msg136698#msg136698 date=1133961062]
I don't claim to be an expert mathematician, but anyone knows that percents stay the same no matter how many things there is total.[/quote]
Nore do i :P
I have a calculator.

[quote="Joe"]
Ringo, if they pound the server with, say, 1000 keys per second, they could be done in about I week, methinks. Probably a lot faster.[/quote]
Thats a big if :P


[quote author=GoaL link=topic=13318.msg136693#msg136693 date=1133955046]
Of the entire list, or of 1000 of each range?
[/quote]
The whole list.
980,000,000,000 wrong product
19,980,000,000 invalid
20,000,000 valid

I think that makes 98% wrong product, 1.998% invalid and 0.002% valid?

[/quote]


Hmm...my list now consists of ~36000 Starcraft CdKeys...where only so far 11000 or so of them are sequential (based on public value) :P Here's 20 of my CdKeys, maybe it could help you guys:

3300650087719 (1-03230230-669)
3300040017812 (1-03230231-080)
3300870047616 (1-03230232-965)
1316200251637 (1-03230233-764)
1316570261337 (1-03230234-037)
3300300097518 (1-03230235-348)
1316150261038 (1-03230236-407)
1316540201039 (1-03230237-001)
2162582601910 (1-03230238-591)
3300390027718 (1-03230239-673)
3300950727612 (1-03230240-863)
3300040787317 (1-03230241-029)
1316010511431 (1-03230242-540)
2162132191911 (1-03230243-098)
1316170551535 (1-03230244-454)
3300200787117 (1-03230245-209)
1316450541531 (1-03230246-155)
1316340551330 (1-03230247-634)
3300680707216 (1-03230248-321)
2162892171613 (1-03230249-966)

I'm suprised none of you pattern finding people figured out the pattern with the private value on the original CdKey.  It's nothing really special, but eh.  xxxxAxxxBxCxx.  ABC are all based on the private value.  For example, any key that has private of 999 will have A=8, B=8, C=9, 998 will have A=8, B=9, C=9 and so on as my example list shows:

0129893391921 (1-03297129-998)
0226883991973 (1-03237388-998)
0226893891968 (1-03236399-998)
2414895791939 (1-00076469-998)
0409891597988 (1-03299449-998)
0629873891932 (1-03296696-998)
0729843691998 (1-03298265-998)
0825813990909 (1-03300880-998)
4101803792967 (1-03305471-998)
2826835493962 (1-03253842-998)
2629855593968 (1-03295354-998)
2820815393925 (1-03237830-998)
2626865993946 (1-03251687-998)
2826825293969 (1-03253823-998)
0820893791949 (1-03254869-998)
0920823591989 (1-03259953-998)
0920893191979 (1-03257909-998)
0970873794980 (1-06759976-998)
2716875893913 (1-00254796-998)
2329835393943 (1-03297632-998)
2326815993960 (1-03253380-998)
2326845193992 (1-03258615-998)
2327845193995 (1-03248615-998)
2329815393901 (1-03293630-998)
2920815793948 (1-03231970-998)
2926845693933 (1-03256965-998)
2927835293946 (1-03241922-998)
2927865693936 (1-03246967-998)
4004853193921 (1-03251514-998)
4005853693941 (1-03247564-998)
4102803793932 (1-03230471-998)
4202803793902 (1-03233771-998)
4304863093919 (1-03252607-998)
4405863393947 (1-03247137-998)
4502843293939 (1-03230025-998)
4504843393916 (1-03252035-998)
4505833093900 (1-03243002-998)
4604863793900 (1-03253377-998)
0009871987992 (1-03298086-999)
0029873981927 (1-03297086-999)
2857875782974 (1-04342876-999)
4204843183916 (1-03252715-999)
4661843082926 (1-05301305-999)
0629873281991 (1-03298326-999)
0729843381992 (1-03298235-999)
0825873980913 (1-03301886-999)
2961881983992 (1-03308988-999)
2827815783958 (1-03240870-999)
2420855983953 (1-03230484-999)
0326853881993 (1-03238394-999)
0809841087987 (1-03299805-999)
0909871887956 (1-03295996-999)
0926893381907 (1-03230929-999)
2129865483962 (1-03295447-999)
2904811989985 (1-05849980-999)
2227895483953 (1-03240259-999)
2220825283997 (1-03238723-999)
2720885383975 (1-03232728-999)
2826845583970 (1-03252855-999)
2827845283907 (1-03245825-999)
2926875083968 (1-03253906-999)
4302853583961 (1-03235654-999)
4404833683905 (1-03253162-999)
4604853583922 (1-03251354-999)
4605833483962 (1-03245342-999)
4704843483950 (1-03256245-999)
4705813183948 (1-03247210-999)
4705843383914 (1-03242235-999)
December 7, 2005, 10:02 PM
LordNevar
[quote author=Ringo link=topic=13318.msg136748#msg136748 date=1133993728]
[quote author=UserLoser link=topic=13318.msg136746#msg136746 date=1133992958]
I'm suprised none of you pattern finding people figured out the pattern with the private value on the original CdKey.  It's nothing really special, but eh.  xxxxAxxxBxCxx.  ABC are all based on the private value.  For example, any key that has private of 999 will have A=8, B=8, C=9, 998 will have A=8, B=9, C=9 and so on as my example list shows:
[/quote]
What makes you think i hadnt? :)

[/quote]

Agreed ;)
December 8, 2005, 12:59 AM
GoaL
Well, VB i'm sure can handel it, but ... not as well as i would like. If anyone has a cdkey tester in C++, please tell me. The one that was getting made, well... most likely isn't. Can't someone find a pattern finding program, or make one, then run the list through it? (the way i put it sounds so childish... but yeah ... you know what i mean)
December 8, 2005, 6:19 AM
Kp
The problem with trying to determine the algorithm from examining the patterns is that you have no constraints on the nature of the algorithm.  In particular, you don't know the order of the algorithm, whether it has logarithms or trigonometric functions involved, or the values of the multipliers in the equation.  Since the only goal for this algorithm is that it be reasonably efficient to compute on the server, Blizzard could've chosen any equation they wanted to relate public and private values.
December 8, 2005, 7:28 AM
laurion
which makes a pattern finding program nonexistant, or impossible to make. If it did exist, I'm sure that everyone would have 5000 keys or whatever..
December 8, 2005, 8:16 PM
Arta
Extremely difficult. Not impossible. A discernable pattern may exist.
December 9, 2005, 2:42 AM
LordNevar
Let's see who else noticed that his 998-999 all begin with even numbers, and the rest begin with odd and even. That the 11th digit is always the second number in the private value. Also take notice on some of the private values on the odd number keys, you will notice something changes with the 11th digit in some of the keys. This DOES NOT happen with real Even working Keys. This only happens with odd keys. I have not noticed a difference in working and non odd keys.

December 11, 2005, 3:09 AM
JoeTheOdd
When SCKMG generated all valid (by installer check) CD-Keys, the resulting file was about 4GB.
December 13, 2005, 5:00 AM
LordNevar
After further testing I have noticed something with all private values of 998, not only do all keys with a private value of 998 begin with even numbers, the 10th digit is always 1. I have tested this with 200 working bnet keys with a private value of 998, and every key has had the 1. I have not found any other key with something other than a 1 to work.

Note: The public value must be within a certain range. Any public value outside this range will be invalid.
December 13, 2005, 12:52 PM
UserLoser.
[quote author=LordNevar link=topic=13318.msg137385#msg137385 date=1134478343]
After further testing I have noticed something with all private values of 998, not only do all keys with a private value of 998 begin with even numbers, the 10th digit is always 1. I have tested this with 200 working bnet keys with a private value of 998, and every key has had the 1. I have not found any other key with something other than a 1 to work.

Note: The public value must be within a certain range. Any public value outside this range will be invalid.
[/quote]

10th digit of 2826835493962 isn't 1.
December 13, 2005, 9:23 PM
LordNevar
Didn't say it was improbable that it couldn't be something other than a 1, I just happened to notice that the 10th digit on the one's I had were 1. Although yours is a 3, it would be interesting to know if you have any with an even number there instead of an odd with the same public and private range.
December 14, 2005, 12:35 AM
QwertyMonster
On the subject of 'odd and even' numbers, maybe all valid ones have an odd number for the 10th digit?  I haven't tested this, i'm only suggesting.. Anybody care to test this?
December 14, 2005, 4:05 PM
shadypalm88
[quote author=Saphire link=topic=13318.msg137602#msg137602 date=1134576323]
On the subject of 'odd and even' numbers, maybe all valid ones have an odd number for the 10th digit?  I haven't tested this, i'm only suggesting.. Anybody care to test this?
[/quote]Why are you looking at the digits of the encoded key?
December 14, 2005, 4:41 PM
QwertyMonster
Umm, i didn't say i was. I was just commenting on UserLoser's and LordNevar's post..  :-\
December 14, 2005, 4:44 PM
JoeTheOdd
I got bored. Hopefully this helps someone. Merry Christmas!

[code]/*
* StarCraft CD-Key Generator
* Author: Joe[e2]
* References: iago[x86]'s JavaOp1
* Date: 26 December 2005
* Merry Christmas!
*
* Checks if the CD-Key is valid using the installers algorithm, and then
* checks the product value to make sure it's 0x1.
*/

public class Main {

public static void main(String args[]) {
String cdkey = "";
int invalid = 0;
Math.random(); // It always returns 0 the first time, because it just creates the generator.
while(true) {
cdkey = installerFinish(makeRandomKey());
if(isValid(cdkey)) {
System.out.println("Starcraft CD-Key: " + cdkey);
System.out.println("[DEBUG] Invalid CD-Keys: " + String.valueOf(invalid));
System.exit(0);
} else {
invalid++;
}
}
}

/**
* Checks if a CD-Key is valid
* @param cdkey: 13-digit CD-Key
* @return: Validity
*/
static boolean isValid(String cdkey) {
if(cdkey == null) {
// CD-Key is missing
return false;
}
if(cdkey.length() != 13) {
// CD-Key is invalid length
return false;
}
if(installerVerify(cdkey) == false) {
// CD-Key checksum doesn't match check digit
return false;
}
if(getProductValue(cdkey) != 1) {
// CD-Key has invalid product value
return false;
}

// CD-Key is valid length, checksum matches, and has correct product value
return true;
}

/**
* Create a random CD-Key
* @return: a 12-character string of random integers
* NOTE: Pass this to installerFinish() to create the actual key!
*/
static String makeRandomKey() {
String ret = "";
for(int i = 0; i < 12; i++) {
ret += String.valueOf(String.valueOf((char)(Math.random() * 10 + 0x30)));
}
return ret;
}

/**
* Verifies a StarCraft CD-Key identical to the installer's method
* @param cdkey: The CD-Key to verify
* @return: Validity.
*/
static boolean installerVerify(String cdkey) {
int accum = 3;
for(int i = 0; i < (cdkey.length() - 1); i++) {
accum += ((cdkey.charAt(i) - '0') ^ (accum * 2));
}
return ((accum % 10) == (cdkey.charAt(12) - '0'));
}

/**
* Finishes a 12-digit CD-Key.
* @param cdkey: 12-digit key to checksum and finish
* @return: 13-digit key
*/
static String installerFinish(String cdkey) {
int accum = 3;
for(int i=0; i < (cdkey.length() - 1); i++) {
accum += ((cdkey.charAt(i) - '0') ^ (accum * 2));
}
return cdkey + String.valueOf(accum % 10);
}

/**
* Retreives the product value of a CD-Key
* @param cdkey: The CD-Key to get the product value from
* @return: The product value of the CD-Key
*/
static int getProductValue(String cdkey) {
return Integer.parseInt(cdkey.substring(0, 2));
}

}[/code]
December 27, 2005, 12:30 AM
l2k-Shadow
Just so you know, there are also valid keys with product value of 2.
https://davnit.net/bnet/vL/index.php?topic=13318.msg135710#msg135710

EDIT: Also I notice you're not even decoding the key. You have to actually decode the key to get the first 2 places of the key to determine the product value. Or is there something I'm missing?
December 27, 2005, 11:16 PM
JoeTheOdd
Yeah, I didn't realize that until after I wrote that. =p
December 29, 2005, 1:44 PM
GoaL
I have a program under development that is about 65% done, it is in C++ http://www.grimhosting.com/grim`mass - Check it out. I'm going to put the list of 1.39GB of keys I have (after using the check the installer uses and running 0000000000000-9999999999999 through it) and let it just run, it auto-refreshes proxies and i'm going to have a scanner running 24/7 outputting the the bot's proxie file. I'll post the results here.
December 31, 2005, 3:15 PM
JoeTheOdd
[quote author=GoaL link=topic=13318.msg139944#msg139944 date=1136042125]
I have a program under development that is about 65% done, it is in C++ http://www.grimhosting.com/grim`mass - Check it out. I'm going to put the list of 1.39GB of keys I have (after using the check the installer uses and running 0000000000000-9999999999999 through it) and let it just run, it auto-refreshes proxies and i'm going to have a scanner running 24/7 outputting the the bot's proxie file. I'll post the results here.
[/quote]

On a Linux box, that 1.39GB list can be created by using the command "sckmg > /home/joe/keys.txt", after downloading and building sckmg.
December 31, 2005, 9:37 PM
Trejo
[quote author=GoaL link=topic=13318.msg139944#msg139944 date=1136042125]
I have a program under development that is about 65% done, it is in C++ http://www.grimhosting.com/grim`mass - Check it out. I'm going to put the list of 1.39GB of keys I have (after using the check the installer uses and running 0000000000000-9999999999999 through it) and let it just run, it auto-refreshes proxies and i'm going to have a scanner running 24/7 outputting the the bot's proxie file. I'll post the results here.
[/quote]

That's really not a good plan.  It'll probably take you a few years or so to complete...
December 31, 2005, 11:12 PM
GoaL
It's not just a list from 0000000000000-9999999999999 it's all them run through the check the installer uses then discarding the ones that don't meet the check. So how do you figure that so joe?
January 1, 2006, 2:15 PM
Arta
Many of them will have the wrong product value. This has already been discussed. If you want to do this, you should create valid decoded keys and then encode them for testing.
January 1, 2006, 4:40 PM
Lenny
I haven't gone through all the pages, but the only feasable way I see this problem can be approached is statistically. 

No one is going to find the something that generates keys at a 100% success rate.


But I'm not sure why this post was ignored.  IMO, this is very useful. 


[quote author=dxoigmn link=topic=13318.msg134968#msg134968 date=1132626362]
[quote author=MyndFyre link=topic=13318.msg134960#msg134960 date=1132621056]
Is value 1 always equal to value 2?  At a glance it appears to.  Or is this a bug in your output?
[/quote]

No it's a bug. I have generated a csv file full of these cdkeys and their public/private/product values in decimal. One thing I noticed is the private values range from [0, 999], and the public values range from [1111, 7405972]. So brute force of the private value given the cdkey hash is extremely easy if the range holds true for all cdkeys.

Edit: I have generated some scatter plots of the data.

Public vs Private for Product Id = 1
[img]http://img507.imageshack.us/img507/7166/cdkey10bs.th.jpg[/img]

There is a big ass line going down the middle. Interesting.

Public vs Private for Product Id = 2
[img]http://img378.imageshack.us/img378/5091/cdkey21ls.th.jpg[/img]

This is even more interesting. Might just be bad data though.
[/quote]

Let's assume if dxoigmn had the entire population to graph that it would follow the pattern in the second graph giving it solid lines.  Now if the public and private values fell on those lines, wouldn't it have a much higher chance of being valid than it falling somewhere else?

So this might be worthwhile to check on a decoded key (I haven't worked on anything Bnet in a very long time, so I won't be testing this):
-If it's one of the 10 public values seen in the second graph
-Because for each public value, there are 200 private values (integers only), check if the associated private value falls in the 300-400 range or the 600-700 range

Now one of you has generated a list of decoded CDkeys that can verify or prove this inference wrong, since the population in that list is bound to include invalid bnet keys.  If you were to graph it and the same pattern arose, then what I have said is useless....

One problem I already see if all valid keys were to follow that pattern, there would only be at most 200,000 valid keys in existence on Bnet.  But maybe we don't have the entire population.  It's very possible that Bnet uses multiple CDkey algorithms. 

Or (if 9 million copies of SC were sold according to wikipedia), Bnet has been banning 45 people for every one CDkey ;D, which people wouldn't really notice.
January 2, 2006, 8:39 PM
UserLoser
What program was used to create those graphs?  I have 35151 CdKeys that should be graphed...could be helpful ;).  A few thousand are sequential via public value...And I even have keys with public values 2-9..that's interesting, eh? :)
January 3, 2006, 7:43 AM
PaiD
UL: I thought you where against this?
January 3, 2006, 2:02 PM
GoaL
So wait, if I was to input my 1.39GB of keys into that.... wouldn't the graph that gives me/everyone be like the exact values needed?
January 3, 2006, 4:15 PM
kamakazie
[quote author=UserLoser link=topic=13318.msg140228#msg140228 date=1136274184]
What program was used to create those graphs?  I have 35151 CdKeys that should be graphed...could be helpful ;).  A few thousand are sequential via public value...And I even have keys with public values 2-9..that's interesting, eh? :)
[/quote]

excel
January 3, 2006, 4:26 PM
GoaL
Figures, has to be one I don't have.  >:(
January 3, 2006, 4:34 PM
Lenny
Could someone generate a small list (500 or so) of cdkeys with their public and private values (with a product ID of 2) based off the installer check only?

This way I can determine if the trends in dxoigmn graph are useful or not...
January 3, 2006, 8:03 PM
GoaL
How bout all of them? 0000000000000-9999999999999 with installer check? :-D ?
January 3, 2006, 8:07 PM
UserLoser
[quote author=Lenny link=topic=13318.msg140283#msg140283 date=1136318617]
Could someone generate a small list (500 or so) of cdkeys with their public and private values (with a product ID of 2) based off the installer check only?

This way I can determine if the trends in dxoigmn graph are useful or not...
[/quote]

How about 900?  Check PM.
January 3, 2006, 9:18 PM
kamakazie
[quote author=Lenny link=topic=13318.msg140283#msg140283 date=1136318617]
Could someone generate a small list (500 or so) of cdkeys with their public and private values (with a product ID of 2) based off the installer check only?

This way I can determine if the trends in dxoigmn graph are useful or not...
[/quote]

Not going to do you any good.
January 3, 2006, 9:21 PM
Lenny
Here is the figure generated from the data UL sent me (thanks UL).

As you can see, the graph shows that the private values range from 0-1000 when invalid keys are included.  From I have now, it's fair to conclude that if the private value does not fall in the 300-400 range or the 600-700 range, it's not valid to Bnet.


Also, to correct my earlier post, I have found that there is a unique public value assigned to every cdkey (or at least there is for the csv file dxoigmn posted) (thanks dxoigmn).  But this unique public value only spans certain ranges, the lines in dxoigmn's figure are actually blocks which represent those number ranges.  Because the resolution of the x axis is so high, they only appear to be lines.  My figure shows one of those 20 blocks.
January 3, 2006, 10:05 PM
JoeTheOdd
GoaL, I hate to break it to you, but I'm not stupid. If you would be so kind as to look at SCKMG, you'd realize that I've already done exactly what you're telling me I should be doing.
January 3, 2006, 10:28 PM
Lenny
Out of curiosity, what product has a product value of 2 anyway?
January 3, 2006, 11:42 PM
MysT_DooM
0001600833174 has a product value of 2

questionΨ  is it true that there are 2 keys for every public / private value?
January 4, 2006, 4:10 AM
UserLoser
[quote author=Lenny link=topic=13318.msg140297#msg140297 date=1136325911]
Here is the figure generated from the data UL sent me (thanks UL).

As you can see, the graph shows that the private values range from 0-1000 when invalid keys are included.  From I have now, it's fair to conclude that if the private value does not fall in the 300-400 range or the 600-700 range, it's not valid to Bnet.


Also, to correct my earlier post, I have found that there is a unique public value assigned to every cdkey (or at least there is for the csv file dxoigmn posted) (thanks dxoigmn).  But this unique public value only spans certain ranges, the lines in dxoigmn's figure are actually blocks which represent those number ranges.  Because the resolution of the x axis is so high, they only appear to be lines.  My figure shows one of those 20 blocks.

[/quote]

Hmm? My list has a CdKey for every private value, so that draws a line through the idea about 300-400 and 600-700 range, unless I am misunderstanding what you mean.  Also it ranges 0-999.  All those CdKeys should be valid, too.
January 4, 2006, 6:19 AM
laurion
something about that last post tells me ringo has a lot of cdkeys  :P
January 4, 2006, 5:34 PM
LoRd
There is no sister key.
January 4, 2006, 5:37 PM
LoRd
[quote author=Ringo link=topic=13318.msg140485#msg140485 date=1136396750]
[quote author=Lord[nK] link=topic=13318.msg140481#msg140481 date=1136396223]
There is no sister key.
[/quote]
Really?
[tt]
[color=teal]3000617[/color]  [color=Orange]708[/color]  [color=Red]02[/color]  [color=yellow]0703720295112[/color]
[color=teal]3000617[/color]  [color=Orange]782[/color]  [color=Red]01[/color]  [color=yellow]3703720235814[/color]
[color=teal]3000618[/color]  [color=Orange]136[/color]  [color=Red]02[/color]  [color=yellow]0703480275315[/color]
[color=teal]3000618[/color]  [color=Orange]503[/color]  [color=Red]01[/color]  [color=yellow]3703080225010[/color]
[color=teal]3000619[/color]  [color=Orange]051[/color]  [color=Red]02[/color]  [color=yellow]0703590205518[/color]
[color=teal]3000619[/color]  [color=Orange]234[/color]  [color=Red]01[/color]  [color=yellow]3703790255316[/color]
[/tt]

[/quote]

Those keys have no direct relation with each other than the fact that they share the same public values thus it is not a brother/sister relationship.

Here's a question: Have all the keys that you've found to have a product ID of 0x02 been obtained through bruteforce?
January 4, 2006, 6:11 PM
LoRd
[quote author=Ringo link=topic=13318.msg140488#msg140488 date=1136399003]
[quote="Lord[nK]"]
Here's a question: Have all the keys that you've found to have a product ID of 0x02 been obtained through bruteforce?
[/quote]
Yes, about 1% of all valid keys so far. (about 200k+)
[/quote]

I've never seen a valid StarCraft key with a product value of 0x02 in all my years of work with Battle.net-related projects (has anyone else?) which is why I find this odd.  I wonder if these keys are even in production?
January 4, 2006, 6:26 PM
GoaL
Ok, a few things. First, you all will think I am a complete newb, but I'd like to think I'm not, but can someone explain to me what exactly the public / private / product values are, and what they are for? Also, if you were to take all the possible keys (like a list ran threw the installer) Then put them into a skatter plot, but arranging them by the 3 things that determine them, the numbers are so great and random, wouldn't that just give you like a non-ending dot-to-dot?
January 4, 2006, 6:33 PM
UserLoser
[quote author=Lord[nK] link=topic=13318.msg140489#msg140489 date=1136399205]
[quote author=Ringo link=topic=13318.msg140488#msg140488 date=1136399003]
[quote="Lord[nK]"]
Here's a question: Have all the keys that you've found to have a product ID of 0x02 been obtained through bruteforce?
[/quote]
Yes, about 1% of all valid keys so far. (about 200k+)
[/quote]

I've never seen a valid StarCraft key with a product value of 0x02 in all my years of work with Battle.net-related projects (has anyone else?) which is why I find this odd.  I wonder if these keys are even in production?
[/quote]

I have seen many.  I have many.
January 4, 2006, 9:09 PM
Arta
[quote author=Ringo link=topic=13318.msg140485#msg140485 date=1136396750]
[quote author=Lord[nK] link=topic=13318.msg140481#msg140481 date=1136396223]
There is no sister key.
[/quote]
Really?
[tt]
[color=teal]3000617[/color]  [color=Orange]708[/color]  [color=Red]02[/color]  [color=yellow]0703720295112[/color]
[color=teal]3000617[/color]  [color=Orange]782[/color]  [color=Red]01[/color]  [color=yellow]3703720235814[/color]
[color=teal]3000618[/color]  [color=Orange]136[/color]  [color=Red]02[/color]  [color=yellow]0703480275315[/color]
[color=teal]3000618[/color]  [color=Orange]503[/color]  [color=Red]01[/color]  [color=yellow]3703080225010[/color]
[color=teal]3000619[/color]  [color=Orange]051[/color]  [color=Red]02[/color]  [color=yellow]0703590205518[/color]
[color=teal]3000619[/color]  [color=Orange]234[/color]  [color=Red]01[/color]  [color=yellow]3703790255316[/color]
[/tt]

[/quote]

Actually, this is a significant find. It's good evidence that the public->private algorithm is product-dependent, even when using the same key schema.
January 5, 2006, 5:06 AM
Lenny
Well now that we know that a unique product/public value exists for EVERY SINGLE cdkey that is valid on Bnet we can also guess why this is so.

9 million copies of Starcraft were sold, and for each product value only 10 million keys are available.  Once Blizzard realized they were nearing their limit they decided to start using product 2 to increase their cdkey supply to 20 million, more than enough to answer demand.  This would explain why product 2 values are much harder to find.


Also given this info, the worst success rate you could possibly ever have for ANY cdkey generator would be 1 cdkey for every 1000 keys.
January 5, 2006, 5:44 AM
GoaL
I've discovered something, I was told product values are only 01 and 02, But I have a key (2159492072321). Once valid, but I got it muted or banned, i forget. But it does not contain 01 or 02. Explain?
January 7, 2006, 9:22 AM
l2k-Shadow
Key: 2159492072321

Product Value: 01
Public Value: 193039
Private Value: 136

You must decode the CD-Key to generate its product, public, and private values.

January 7, 2006, 3:40 PM
MysT_DooM
What would be the code for opening a file of cdkeys then taking the data from that file and putting it through the decode function and then printing that data out into another file..
this is what i got so far

[code]
Private Sub Command1_Click()
cd.ShowOpen
msg = cd.FileName
If msg = "" Then MsgBox "Pick A File to Decode": Exit Sub
Me.Cls
Me.Command1.Enabled = False
Me.Caption = "Loading..."
Gen = True
Open cd.FileName For Append As #1

Top:

Dim Decode As String
Decode = Left(ScKeyDecode(cd.FileName), 12)
cd.ShowSave
msg = cd.FileName
Open cd.FileName For Append As #2
Print #2, Decode
Close #2

End Sub

[/code]

January 8, 2006, 7:01 PM
l2k-Shadow
I'm in a good mood today so I'll code it for you since I can't make much sense out of your code:

[code]

'Written by l2k-Shadow
Option Base 0
Option Explicit
Option Compare Text

Public Sub Keys()
Dim InFile As String, tStr As String
    CD.ShowOpen
    InFile = CD.FileName
    If InFile <> vbNullString Then
        Dim FF As Integer, FF2 As Integer, Product As Long, PublicValue As Long, PrivateValue As Long
        FF = FreeFile
        Open App.Path & "\OutFile.txt" For Output As #FF
        FF2 = FreeFile
        Open InFile For Input As #FF2
            Do Until EOF(FF2)
                Line Input #FF2, tStr
                If tStr <> vbNullString Then
                    Call DecodeSCKey(tStr, Product, PublicValue, PrivateValue)
                    Print #FF, Product & Space(3) & PublicValue & Space(3) & PrivateValue
                End If
            Loop
        Close #FF2
        Close #FF
    End If
    MsgBox "Finished!"
End Sub

Public Sub DecodeSCKey(ByVal CDKey As String, ByRef Product As Long, ByRef PublicValue As Long, ByRef PrivateValue As Long)
Dim tKey(12) As String, tStr As String, tLng As Long, hashKey As Long, pos As Integer, i As Integer
    'Fill array
    For i = 0 To 12
        tKey(i) = Mid$(CDKey, i + 1, 1)
    Next i
    'Verify Key
    tLng = 3
    For i = 0 To 11
        tLng = tLng + (tKey(i) Xor (tLng * 2))
    Next i
    If tKey(12) = (tLng Mod 10) Then
        'Shuffling
        pos = &HB
        For i = &HC2 To 7 Step -&H11
            tStr = tKey(pos)
            tLng = i Mod &HC
            tKey(pos) = tKey(tLng)
            tKey(tLng) = tStr
            pos = pos - 1
        Next i
        'Final Values
        hashKey = &H13AC9741
        For i = 11 To 0 Step -1
            tStr = tKey(i)
            If Asc(tStr) <= 55 Then
                tKey(i) = (((hashKey And &HFF) And 7) Xor tStr)
                hashKey = hashKey \ 8
            ElseIf Asc(tStr) < 65 Then
                tKey(i) = ((i And 1) Xor tStr)
            End If
        Next i
        tStr = Join(tKey, vbNullString)
        Product = CLng("&H" & Left$(tStr, 2))
        PublicValue = CLng(Mid$(tStr, 3, 7))
        PrivateValue = CLng(Mid$(tStr, 10))
    End If
End Sub
[/code]

Hope it helps.
January 8, 2006, 11:05 PM
rabbit
Hrm..is it just me, or are these values a little wanky?

[img]http://www.liquid-server.org/images/weird.png[/img]

[edit]
Reconstructing, by using the private and public values decoded, change that first key to 3940140577719, which is decodes correctly.

Reconstructing the second key, it becomes 2848162025364.

The third becomes 0598383798773.

The fourth becomes 3327490657450.

The reconstructed keys have the proper product codes.  Hrm.
January 8, 2006, 11:55 PM
UserLoser
What are you talking about
January 9, 2006, 12:40 AM
rabbit
I have a list of keys and some of them work on Battle.Net, but have weird product values (0x32, for example), and when I run their public and privates to generate the key, I got a different key.  It just seems odd..
January 9, 2006, 1:07 AM
Lenny
I would either check your decoding and encoding.  The first thing Battle.net does when they receive your decoded key is verify the correct product value...
January 9, 2006, 1:47 AM
l2k-Shadow
Not to mention those are not valid Battle.net keys.. probably why you're getting fucked values.
January 9, 2006, 2:36 AM
kamakazie
[quote author=rabbit link=topic=13318.msg141133#msg141133 date=1136768836]
I have a list of keys and some of them work on Battle.Net, but have weird product values (0x32, for example), and when I run their public and privates to generate the key, I got a different key.  It just seems odd..
[/quote]

Something is wrong with the way you're encoding the cdkey from the product/public/private values (either you're not supply the same values, or the actual algorithm has a bug).  If I wasn't so lazy, I could probably pinpoint exactly where the flaw in your code is by just the samples you posted. I'll leave that as an excercise for you.

Edit: Oh see, you're just using the public and private values and a static value of 1 for the product. Of course changing the product value will completely change the encoded cdkey. Someone should verify that those keys (with the weird product ids) do work on battle.net.
January 9, 2006, 3:44 AM
UserLoser
[quote author=dxoigmn link=topic=13318.msg141159#msg141159 date=1136778281]
[quote author=rabbit link=topic=13318.msg141133#msg141133 date=1136768836]
I have a list of keys and some of them work on Battle.Net, but have weird product values (0x32, for example), and when I run their public and privates to generate the key, I got a different key.  It just seems odd..
[/quote]

Something is wrong with the way you're encoding the cdkey from the product/public/private values (either you're not supply the same values, or the actual algorithm has a bug).  If I wasn't so lazy, I could probably pinpoint exactly where the flaw in your code is by just the samples you posted. I'll leave that as an excercise for you.

Edit: Oh see, you're just using the public and private values and a static value of 1 for the product. Of course changing the product value will completely change the encoded cdkey. Someone should verify that those keys (with the weird product ids) do work on battle.net.
[/quote]

They do work, yet don't.  You get the bad product code response back.
January 9, 2006, 5:43 AM
rabbit
Hm...I'll recheck that then, I swear they worked.

Anyway, I'm using the program posted earlier:
[code]#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

void decode(char* cdkey);
void encode(char* public_s, char* private_s);

int main (int argc, char* argv[])
{
switch (argc) {
case 2:
decode(argv[1]);
break;
case 3:
encode(argv[1], argv[2]);
break;
default:
fprintf(stderr, "usage:\n\t%s {cd key}\n-or-\n\t%s {public value} "
"{private value}\n", argv[0], argv[0]);
return 1;
}

return 0;
}

void decode(char* cdkey)
{
int accum, pos, i;
char temp;
int hashKey = 0x13AC9741;
unsigned long value1, value2, product;
int keyLen = 13;

// Verification
accum = 3;
for (i = 0; i < (keyLen - 1); i++) {
accum += ((tolower(cdkey[i]) - '0') ^ (accum * 2));
}

if ((accum % 10) != (cdkey[12] - '0')) {
printf("Error: Verification failed.\n");
return;
}

// Shuffling
pos = 0x0B;
for (i = 0xC2; i >= 7; i -= 0x11) {
temp = cdkey[pos];
cdkey[pos] = cdkey[i % 0x0C];
cdkey[i % 0x0C] = temp;
pos--;
}

// Final Value
for (i = (keyLen - 2); i >= 0; i--) {
temp = toupper(cdkey[i]);
cdkey[i] = temp;
if (temp <= '7') {
cdkey[i] ^= (char) (hashKey & 7);
hashKey >>= 3;
} else if (temp < 'A') {
cdkey[i] ^= ((char) i & 1);
}
}

// Final Calculations
sscanf(cdkey, "%2ld%7ld%3ld", &product, &value1, &value2);
printf("Product      = 0x%08lX (%08d)\n", product, product);
printf("Public Value  = 0x%08lX (%08d)\n", value1, value1);
printf("Private Value = 0x%08lX (%08d)\n", value2, value2);
}

void encode(char* public_s, char* private_s)
{
char cdkey[14] = "\0";
unsigned long public, private;
int pos, i;
char temp;
int keyLen = 13;
int hashKey = 0x13AC9741;
int accum;

public = strtoul(public_s, NULL, 0);
private = strtoul(private_s, NULL, 0);
sprintf(cdkey, "%02u%07lu%03lu", (unsigned) 1, public, private);

// Final Value
for (i = (keyLen - 2); i >= 0; i--) {
temp = toupper(cdkey[i]);
cdkey[i] = temp;

if (temp <= '7') {
cdkey[i] ^= (char) (hashKey & 7);
hashKey >>= 3;
} else if (temp < 'A') {
cdkey[i] ^= ((char) i & 1);
}
}

// Unshuffling
pos = 0;
for (i = 7; i <= 0xC2; i += 0x11) {
temp = cdkey[i % 0x0C];
cdkey[i % 0x0C] = cdkey[pos];
cdkey[pos] = temp;
pos++;
}

// Calculate check digit
accum = 3;
for (i = 0; i < (keyLen - 1); i++) {
accum += ((tolower(cdkey[i]) - '0') ^ (accum * 2));
}
cdkey[12] = (char) (accum % 10) + '0';

printf("CD-Key = %s\n", cdkey);
}
[/code]by I-forget-who.
January 9, 2006, 1:49 PM
Lenny
This really depends on your definition of working key  ;D

Bad product keys should be lower than invalid keys because they couldn't even pass the product check that the server first does (as already stated in my last message).  Battle.net doesn't ipban for these keys because it's not even a threat to their system.  With invalid keys, you still have at least 1 in a 1000 chance of getting a valid.

Mayhaps we can assume the actual cdkey check is fairly complex if they're willing to check the product code before they start anything at all...
January 9, 2006, 5:11 PM
Kp
[quote author=Lenny link=topic=13318.msg141201#msg141201 date=1136826671]
This really depends on your definition of working key  ;D

Bad product keys should be lower than invalid keys because they couldn't even pass the product check that the server first does (as already stated in my last message).  Battle.net doesn't ipban for these keys because it's not even a threat to their system.  With invalid keys, you still have at least 1 in a 1000 chance of getting a valid.

Mayhaps we can assume the actual cdkey check is fairly complex if they're willing to check the product code before they start anything at all...
[/quote]

Possibly, but I don't think that's a safe assumption.  It's a fairly common programming optimization that you check the easy stuff first, and checking that the product code is 1 (or maybe 2) is a very easy check. :)
January 10, 2006, 2:57 AM
rabbit
Pfft..yeah right, that takes like.... 8 whole cycles.  Fuck me if I'll do THAT!

But on a more serious note, I kept meaning to test those keys out again, but I realized I just didn't care that much.
January 10, 2006, 3:36 AM
Trejo
[quote author=Afflicted link=topic=13318.msg141479#msg141479 date=1137038491]
I Decoded 1000 Keys... All using the same Public Values.
The Public Value being: 3240285
The CDKey Range being: 3307x609x7x13 (x = Random... For randomizing Private Values.)
The Product Value being: 01
The Private Value being: Random

There are 499 Invalid, 500 Wrong Product and 1 Valid (Muted or Voided or Working)
Therefore, Your odds are now 1 in 500. After you remove all the keys with the product
of: 01 < *

Which raises the question: Where does the value 5460083 come from... I know its a
valid public value..... but what relationship does it have with the key.... its like a sister
key of the "Product Value"..... Help me out here?

Note: Delete the Wrong Product values and encode all the values to get the 1 in 500
Odds.[/quote]

You know the 3 x's are based on the private value, right? Where did you get the other 10 digits from?
January 12, 2006, 4:06 AM
Lenny
And also there's 1000 possible keys associated with a specific product/public value pair.  So your chances are still 1/1000.....
January 12, 2006, 5:55 AM
~Mike~
Well after I decode my keys, i think i'm gettin an extra digit for my private value. i.e

2571472281941  1  2205677  5991

Where i thinks it is adding the 1 to end of private value from the 13th #. Any solutions?
January 16, 2006, 2:24 AM
rabbit
If it's always a 1, ignore it.
January 16, 2006, 3:14 AM
~Mike~
Well, if the CD ends in 2 it puts 2 at end of private value, is it just a bad decode function?
January 16, 2006, 3:52 AM
JoeTheOdd
Rabbit, your code automatically encodes keys with a product ID of 1, where the key in question has a product ID of 2. Might wanna fix that.
January 16, 2006, 4:22 AM
rabbit
Meh.  I got that code from earlier in the thread.
January 16, 2006, 4:30 AM
~Mike~
So how would i implement the encode function after decoding. I mean I read earlier that its the same, but the code must be different. like would u reverse the operations taken?
January 16, 2006, 5:56 AM
rabbit
Yep.

Any xor operation can be reversed by doing...the same operation.
January 16, 2006, 6:23 PM
~Mike~
So lets say for sake of argument, the decode function is :

[code] Public Sub DecodeSCKey(ByVal CDKey As String, ByRef Product As Long, ByRef PublicValue As Long, ByRef PrivateValue As Long)
Dim tKey(12) As String, tStr As String, tLng As Long, hashKey As Long, pos As Integer, i As Integer
    'Fill array
    For i = 0 To 12
        tKey(i) = Mid$(CDKey, i + 1, 1)
    Next i
    'Verify Key
    tLng = 3
    For i = 0 To 11
        tLng = tLng + (tKey(i) Xor (tLng * 2))
    Next i
    If tKey(12) = (tLng Mod 10) Then
        'Shuffling
        pos = &HB
        For i = &HC2 To 7 Step -&H11
            tStr = tKey(pos)
            tLng = i Mod &HC
            tKey(pos) = tKey(tLng)
            tKey(tLng) = tStr
            pos = pos - 1
        Next i
        'Final Values
        hashKey = &H13AC9741
        For i = 11 To 0 Step -1
            tStr = tKey(i)
            If Asc(tStr) <= 55 Then
                tKey(i) = (((hashKey And &HFF) And 7) Xor tStr)
                hashKey = hashKey \ 8
            ElseIf Asc(tStr) < 65 Then
                tKey(i) = ((i And 1) Xor tStr)
            End If
        Next i
        tStr = Join(tKey, vbNullString)
        Product = CLng("&H" & Left$(tStr, 2))
        PublicValue = CLng(Mid$(tStr, 3, 7))
        PrivateValue = CLng(Mid$(tStr, 10))
    End If
End Sub [/code]

I'm having trouble reversing that code.
January 17, 2006, 5:35 AM
Null
hmm they gonna love you around here
January 17, 2006, 7:48 AM
JoeTheOdd
[quote author=effect link=topic=13318.msg142130#msg142130 date=1137484094]
hmm they gonna love you around here
[/quote]

At least he's doing something with his life, more than trolling.
January 17, 2006, 1:17 PM
l2k-Shadow
[quote author=~Mike~ link=topic=13318.msg142121#msg142121 date=1137476124]
So lets say for sake of argument, the decode function is :

[code] Public Sub DecodeSCKey(ByVal CDKey As String, ByRef Product As Long, ByRef PublicValue As Long, ByRef PrivateValue As Long)
Dim tKey(12) As String, tStr As String, tLng As Long, hashKey As Long, pos As Integer, i As Integer
    'Fill array
    For i = 0 To 12
        tKey(i) = Mid$(CDKey, i + 1, 1)
    Next i
    'Verify Key
    tLng = 3
    For i = 0 To 11
        tLng = tLng + (tKey(i) Xor (tLng * 2))
    Next i
    If tKey(12) = (tLng Mod 10) Then
        'Shuffling
        pos = &HB
        For i = &HC2 To 7 Step -&H11
            tStr = tKey(pos)
            tLng = i Mod &HC
            tKey(pos) = tKey(tLng)
            tKey(tLng) = tStr
            pos = pos - 1
        Next i
        'Final Values
        hashKey = &H13AC9741
        For i = 11 To 0 Step -1
            tStr = tKey(i)
            If Asc(tStr) <= 55 Then
                tKey(i) = (((hashKey And &HFF) And 7) Xor tStr)
                hashKey = hashKey \ 8
            ElseIf Asc(tStr) < 65 Then
                tKey(i) = ((i And 1) Xor tStr)
            End If
        Next i
        tStr = Join(tKey, vbNullString)
        Product = CLng("&H" & Left$(tStr, 2))
        PublicValue = CLng(Mid$(tStr, 3, 7))
        PrivateValue = CLng(Mid$(tStr, 10))
    End If
End Sub [/code]

I'm having trouble reversing that code.
[/quote]

I have already ported the C++ code into VB6.. Here
January 17, 2006, 1:27 PM
shout
[quote author=~Mike~ link=topic=13318.msg142121#msg142121 date=1137476124]
I'm having trouble reversing that code.
[/quote]

You're not going to be reversing anything from that.
January 17, 2006, 1:30 PM
JoeTheOdd
[quote author=Shout link=topic=13318.msg142151#msg142151 date=1137504647]
[quote author=~Mike~ link=topic=13318.msg142121#msg142121 date=1137476124]
I'm having trouble reversing that code.
[/quote]

You're not going to be reversing anything from that.
[/quote]

He means literally reversing, not reverse engineering: he wants to encode.

PS: Get on AIM, shout.
January 17, 2006, 1:33 PM
shout
[quote author=Joe link=topic=13318.msg142153#msg142153 date=1137504796]
PS: Get on AIM, shout.
[/quote]

I'm at school.
January 17, 2006, 6:47 PM
rabbit
[quote author=~Mike~ link=topic=13318.msg142121#msg142121 date=1137476124]
I'm having trouble reversing that code.
[/quote]Make it go backwards.
January 18, 2006, 3:44 AM
MysT_DooM
                [color=Red]$                                    $[/color]
2410232920389           01   4319580   733
2661822870735           01   3302597   976
4504383083863           01   3255008   289
4801843752850           01   3306824   984
1463010740306           01   4363562   535
1114440170132           01   3310007   116
3004330937306           01   3271180   632
3937360771038           01   0442965   606
0010183599892           01   0838558   088
0012181999890           01   2878088   088

Ok look under the $ signs as you can see the middle digit in every private value is 11th digit in the cdkey.  Does anyone see any other similarites or something else related.
January 18, 2006, 5:49 PM
kamakazie
[quote author=MysT_DooM link=topic=13318.msg142316#msg142316 date=1137606566]
                [color=Red]$                                    $[/color]
2410232920389          01  4319580  733
2661822870735          01  3302597  976
4504383083863          01  3255008  289
4801843752850          01  3306824  984
1463010740306          01  4363562  535
1114440170132          01  3310007  116
3004330937306          01  3271180  632
3937360771038          01  0442965  606
0010183599892          01  0838558  088
0012181999890          01  2878088  088

Ok look under the $ signs as you can see the middle digit in every private value is 11th digit in the cdkey.  Does anyone see any other similarites or something else related.
[/quote]

What is your point? What we're trying to establish is the relationship between the private, public and product values (i.e. there exists some function F such that F(public, product) = private). The encoded form of the cdkey does not matter what-so-ever.
January 18, 2006, 9:51 PM
Lenny
:o
It doesn't matter?

F(public,product) = encoded...Wouldn't that be just as useful?

There more than a few ways to look for patterns.  There are 4 values, encoded, product, public and private.  Patterns found between any 3 of those 4 values would be very useful. 

The only reason the encoded isn't the best choice is because many of the patterns are only as a result of the 'encode' function.
We already have part of the actual algorithm (known as decode cdkey).  But that doesn't mean the encoded value is useless.

The pattern that Myst_DooM has found is not a result of decoding.  You can check this yourself...And it's a rather frequent pattern in valid cdkeys (however there are a few exceptions).
January 19, 2006, 3:24 AM
kamakazie
[quote author=Lenny link=topic=13318.msg142404#msg142404 date=1137641077]
:o
It doesn't matter?

F(public,product) = encoded...Wouldn't that be just as useful?

There more than a few ways to look for patterns.  There are 4 values, encoded, product, public and private.  Patterns found between any 3 of those 4 values would be very useful. 

The only reason the encoded isn't the best choice is because many of the patterns are only as a result of the 'encode' function.
We already have part of the actual algorithm (known as decode cdkey).  But that doesn't mean the encoded value is useless.

The pattern that Myst_DooM has found is not a result of decoding.  You can check this yourself...And it's a rather frequent pattern in valid cdkeys (however there are a few exceptions).
[/quote]

No that is not useful.

If any of you actually took the time to see what the decoding process does, then you'd realize what I am saying. Notice that when the cdkey is shuffled, that digit doesn't really move (nor does the last digit because it is a check digit):

[code]
Regular:  0123456789ABC
Shuffled: 60293B1754A8C
[/code]

The only reason that digit will change is in the xor stage. The pattern he found is a result of decoding. My advice, ignore any encoded form of the cdkey, and just look for relationships between private and public values of the same product.
January 19, 2006, 5:05 AM
Lenny
[quote]
The only reason that digit will change is in the xor stage. The pattern he found is a result of decoding. My advice, ignore any encoded form of the cdkey, and just look for relationships between private and public values of the same product.
[/quote]

I'm not following.  You're agreeing that the xor will change the 11th digit of the encoded key (or decoded since as you already said, the shuffling actually shuffles it back to the same place). 

Also, you can verify this yourself via the encode function.  For a product/public value pair, you can generate 1000 possible keys (only 1 being valid).  But of those 1000, not all follow the pattern.  Now if it were a result of the decode, wouldn't all 1000 keys follow this pattern?
January 19, 2006, 5:49 AM
Arta
Patterns in 'encoded', or between the encoded and decoded forms, are completely irrelevant.
January 19, 2006, 10:50 AM
Lenny
Not if the pattern or trend is only apparent in valid keys and not a result of the actual decode.

Or are you still trying to find the definite algorithm for key generation (ie the F(public,product)=private)?  Because that's not feasable and would be exponentially more difficult if there were multiple algorithms involved (which is very possible).
January 19, 2006, 3:47 PM
Arta
[quote author=Lenny link=topic=13318.msg142459#msg142459 date=1137685656]
Not if the pattern or trend is only apparent in valid keys and not a result of the actual decode.
[/quote]

I don't really know what you mean.

To look for patterns between the encoded/decoded forms is completely pointless. We understand how one produces an encoded key, and how one produces a decoded key. No additional information is present in either form. The decoded version contains the data that Battle.net processes; therefore, it is data that is closest to the algorithms of interest. To look for patterns that exist as a result of an algorithm we already understand is a complete waste of time.


[quote author=Lenny link=topic=13318.msg142459#msg142459 date=1137685656]
Or are you still trying to find the definite algorithm for key generation (ie the F(public,product)=private)?
[/quote]

Of course. That's the only algorithm of interest here.


[quote author=Lenny link=topic=13318.msg142459#msg142459 date=1137685656]
Because that's not feasable and would be exponentially more difficult if there were multiple algorithms involved (which is very possible).
[/quote]

It has been my assertion all along that this task is very difficult. It is not, however, impossible -- especially if Blizzard's algorithm is based on some other, existing, algorithm. Given Blizzard's history, this is plausible. Either way, a mathematically gifted person may well notice some pattern between public, product and private values that could yield a working theory on the relationship between these numbers.

Like I said, it's certainly difficult, but not impossible.
January 21, 2006, 1:20 AM
Lenny
It's simple process of elimination, nothing more.  You simply look for trends that ARE NOT a result of the decoding/encoding which is already known.  Any pattern which is found to be apparently only in valid keys while not in invalid keys (which were generated via encode or decoding) is valuable simply because you''re narrowing your set of possible keys.

Now ask yourself, is this a pattern generated by all keys which are encoded correctly?

Also, the problem with finding the actual algorithm are arbitrary functions which would prevent any 'mathematically gifted' person from simply finding the actual algorithm. 
Example:
if(key < 5)
  key = sqrt(43);
else if(sqrt(key) < e)
  key = ln(643);

There's no mathematical basis for such operations which could easily be in several parts of the algorithm.

I doubt blizzard would need any outside sources to implement this algorithm.  It's not difficult to create it (cracking it is a different story).  And if such a 'common' algorithm used existed, it would work in such which knowing what operations are done still makes it unfeasable to break (ie encryption).
January 21, 2006, 8:16 AM
PaiD
[quote]It has been my assertion all along that this task is very difficult. It is not, however, impossible -- especially if Blizzard's algorithm is based on some other, existing, algorithm. Given Blizzard's history, this is plausible. Either way, a mathematically gifted person may well notice some pattern between public, product and private values that could yield a working theory on the relationship between these numbers.[/quote]

Someone get Yoni over here  :)
January 21, 2006, 8:33 AM
JoeTheOdd
[quote author=Savior link=topic=13318.msg142623#msg142623 date=1137832399]
[quote]It has been my assertion all along that this task is very difficult. It is not, however, impossible -- especially if Blizzard's algorithm is based on some other, existing, algorithm. Given Blizzard's history, this is plausible. Either way, a mathematically gifted person may well notice some pattern between public, product and private values that could yield a working theory on the relationship between these numbers.[/quote]

Someone get Yoni over here  :)
[/quote]

ROFL.
January 21, 2006, 9:30 AM
Arta
[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
It's simple process of elimination, nothing more.  You simply look for trends that ARE NOT a result of the decoding/encoding which is already known.  Any pattern which is found to be apparently only in valid keys while not in invalid keys (which were generated via encode or decoding) is valuable simply because you''re narrowing your set of possible keys.
[/quote]

Any patterns you see in an encoded key are likely to have been produced by the encoding process. The observation of such patterns is thus not useful. The observation of patterns in keys' decoded form is all that is of interest. The encoded form contains no more information that the decoded form, and the relationship between the encoded and decoded forms is understood, so there is no benefit in further analysis on that front.

I understand why it's appealing -- compared to the other avenues of investigation, it's very easy -- but it is not worth pursuing.


[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
Now ask yourself, is this a pattern generated by all keys which are encoded correctly?
[/quote]

Any trend in an encoded key that is produced by all valid keys would have an analagous trend in the decoded form. It's that trend that is worth investigating.


[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
Also, the problem with finding the actual algorithm are arbitrary functions which would prevent any 'mathematically gifted' person from simply finding the actual algorithm. 
Example:
if(key < 5)
  key = sqrt(43);
else if(sqrt(key) < e)
  key = ln(643);

There's no mathematical basis for such operations which could easily be in several parts of the algorithm.
[/quote]

That's plausible, but not confirmed. I agree that this task is very difficult, and is perhaps impossible, and I have made that quite clear in my posts from the beginning of this thread. I spent quite some time studying CD keys a few years ago, and concluded that I was unlikely to find anything useful.

There are really only two ways that the algorithm could be discovered:

1: It's based on an existing known algorithm with recognisable behaviour;
2: It's very simple.

If it's very simple, then the analysis of a large enough set of keys by an appropriately skilled person could yield useful results. As I said before, if it is neither of these things, then the task is likely impossible.


[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
I doubt blizzard would need any outside sources to implement this algorithm.
[/quote]

That's a matter of opinion :)
January 21, 2006, 2:27 PM
UserLoser
IMO, the best set of data known/we have to work with:

Cd-Key (Product-Public-Private)

1125310113636 (1-0000002-660)
1125400163437 (1-0000003-147)
1125370153335 (1-0000004-634)
3133400395019 (1-0000005-418)
1125650153437 (1-0000006-344)
January 21, 2006, 5:22 PM
Lenny
[quote author=Arta[vL] link=topic=13318.msg142638#msg142638 date=1137853661]
[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
It's simple process of elimination, nothing more.  You simply look for trends that ARE NOT a result of the decoding/encoding which is already known.  Any pattern which is found to be apparently only in valid keys while not in invalid keys (which were generated via encode or decoding) is valuable simply because you''re narrowing your set of possible keys.
[/quote]

Any patterns you see in an encoded key are likely to have been produced by the encoding process. The observation of such patterns is thus not useful. The observation of patterns in keys' decoded form is all that is of interest. The encoded form contains no more information that the decoded form, and the relationship between the encoded and decoded forms is understood, so there is no benefit in further analysis on that front.

I understand why it's appealing -- compared to the other avenues of investigation, it's very easy -- but it is not worth pursuing.


[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
Now ask yourself, is this a pattern generated by all keys which are encoded correctly?
[/quote]

Any trend in an encoded key that is produced by all valid keys would have an analagous trend in the decoded form. It's that trend that is worth investigating.


[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
Also, the problem with finding the actual algorithm are arbitrary functions which would prevent any 'mathematically gifted' person from simply finding the actual algorithm. 
Example:
if(key < 5)
  key = sqrt(43);
else if(sqrt(key) < e)
  key = ln(643);

There's no mathematical basis for such operations which could easily be in several parts of the algorithm.
[/quote]

That's plausible, but not confirmed. I agree that this task is very difficult, and is perhaps impossible, and I have made that quite clear in my posts from the beginning of this thread. I spent quite some time studying CD keys a few years ago, and concluded that I was unlikely to find anything useful.

There are really only two ways that the algorithm could be discovered:

1: It's based on an existing known algorithm with recognisable behaviour;
2: It's very simple.

If it's very simple, then the analysis of a large enough set of keys by an appropriately skilled person could yield useful results. As I said before, if it is neither of these things, then the task is likely impossible.


[quote author=Lenny link=topic=13318.msg142621#msg142621 date=1137831407]
I doubt blizzard would need any outside sources to implement this algorithm.
[/quote]

That's a matter of opinion :)
[/quote]

But you're on the assumption that decoding a key places it in a simpler form.  Decoding places the key in another 12 digit form.  The largest importance of decoding keys in this situation is the filtering of only those which produce a product value of 01 or 02.

As you already said, any patterns are LIKELY to be produced as a result of decoding/encoding, but not necessarily.  And this is why comparing patterns in either the decoded or encoded form is difficult.  And finding patterns in either form which are apparent in valid keys (but not a result of encoding/decoding) is useful.


The analgous trend may not be as easy to recognize in decoded form (or vis versa) because there is a xor operation done between the two forms.  Therefore, seeing one trend in the encoded form does not mean it will appear as simplisticly in the decoded form.
January 21, 2006, 6:37 PM
kamakazie
[quote author=UserLoser link=topic=13318.msg142665#msg142665 date=1137864172]
IMO, the best set of data known/we have to work with:

Cd-Key (Product-Public-Private)

1125310113636 (1-0000002-660)
1125400163437 (1-0000003-147)
1125370153335 (1-0000004-634)
3133400395019 (1-0000005-418)
1125650153437 (1-0000006-344)
[/quote]

What I would like to see ie either (a) all private values that map to a single public value, or (b) all the public values that map to a single private value. The former seems easier, while the latter more difficult. The only way to do this is a brute force approach.
January 21, 2006, 7:48 PM
Arta
[quote author=Lenny link=topic=13318.msg142680#msg142680 date=1137868659]
But you're on the assumption that decoding a key places it in a simpler form.
[/quote]

It does. Decoding produces the values that are used in the computation.


[quote author=Lenny link=topic=13318.msg142680#msg142680 date=1137868659]
As you already said, any patterns are LIKELY to be produced as a result of decoding/encoding, but not necessarily.  And this is why comparing patterns in either the decoded or encoded form is difficult.  And finding patterns in either form which are apparent in valid keys (but not a result of encoding/decoding) is useful.

The analgous trend may not be as easy to recognize in decoded form (or vis versa) because there is a xor operation done between the two forms.  Therefore, seeing one trend in the encoded form does not mean it will appear as simplisticly in the decoded form.
[/quote]

Any pattern present in an encoded form would be the encoding of a pattern present in the decoded form. Looking for patterns in the encoded form serves only to increase the complexity of the problem: you are then required to make sure that your trend is meaningful, and not simply an artefact of encoding. What's the point in doing that when the trend will also be present in the decoded form? I see no reason why an encoded trend should be easier to spot than a decoded trend.

I'm not going to discuss this further as I've explained it numerous times and you are apparently unwilling to reconsider your position.
January 21, 2006, 9:19 PM
Lenny
[quote author=Arta[vL] link=topic=13318.msg142701#msg142701 date=1137878383]
[quote author=Lenny link=topic=13318.msg142680#msg142680 date=1137868659]
But you're on the assumption that decoding a key places it in a simpler form.
[/quote]

It does. Decoding produces the values that are used in the computation.


[quote author=Lenny link=topic=13318.msg142680#msg142680 date=1137868659]
As you already said, any patterns are LIKELY to be produced as a result of decoding/encoding, but not necessarily.  And this is why comparing patterns in either the decoded or encoded form is difficult.  And finding patterns in either form which are apparent in valid keys (but not a result of encoding/decoding) is useful.

The analgous trend may not be as easy to recognize in decoded form (or vis versa) because there is a xor operation done between the two forms.  Therefore, seeing one trend in the encoded form does not mean it will appear as simplisticly in the decoded form.
[/quote]

Any pattern present in an encoded form would be the encoding of a pattern present in the decoded form. Looking for patterns in the encoded form serves only to increase the complexity of the problem: you are then required to make sure that your trend is meaningful, and not simply an artefact of encoding. What's the point in doing that when the trend will also be present in the decoded form? I see no reason why an encoded trend should be easier to spot than a decoded trend.

I'm not going to discuss this further as I've explained it numerous times and you are apparently unwilling to reconsider your position.
[/quote]

Well you can't make the claim that it is a simplification with out actual knowledge of how the 'valid key' algorithm works.  The public value could be easily xor'ed back, and from that value, be used to find the private.  The last xor in the decode could even be xor obfuscation.

And yes, any pattern in the encode will be in the decode, but as I've said earlier it may not be as simple to see.  To see it by a visual comparison of numbers would require someone to be able to mentally 'xor' numbers as easily as most can mentally perform addition and subtraction.

I agree there's no reason for this argument to continue.  But as a note, Ringo is an example of proof of concept.  As far as I have seen, he has been generating cdkeys with the best success rate here.  And as he has already said, he has accomplished this by observing many of the trends in encoded keys.
January 21, 2006, 10:05 PM
Yegg
Wow, very good job Ringo.

I didn't feel like testing all of them, but I tested 5 and they were perfeclty normal, unused keys.

I do believe this is an incredible breakthrough for cdkey generating.
January 22, 2006, 2:04 AM
Skywing
Surprising that they repealed the ban on cdkeys outside of the released ranges and allowed keys like those to work once more.  Or, I suppose it would make sense that if they are using product 2, all of the product 1 keys that will fit in the obfuscated form are used up by now.
January 22, 2006, 2:08 AM
Yegg
[quote author=moh.vze.com link=topic=13318.msg142722#msg142722 date=1137896820]
I think arta[vL] should just release the source to the keygen he made a few years ago so this topic will come to an end -.-
[/quote]

Then others wouldn't be learning anything.
January 22, 2006, 2:29 AM
MysT_DooM
My new method of generating that i've been messing around with

Generate Private values
Print them with Public Value Ranges
Encode
Test
-----------
Ex)

Let Priv =
000
001
002
[...]
997
998
999

so

Print #1, 2063951 & Priv
Print #1, 2063952 & Priv
Print #1, 2063953 & Priv
Print #1, 2063954 & Priv
Print #1, 2063955 & Priv
Print #1, 2063956 & Priv
Print #1, 2063957 & Priv

etc...

I still havent figured out how to run all the generated keys back into the encode function or have not figured out how to make Priv everysingle 3 digit number as above...but soon i will figure it out...

so thats the idea, what yall think.


Spht edit: removed 900 lines of junk.
January 22, 2006, 2:34 AM
Lenny
[quote author=Skywing link=topic=13318.msg142721#msg142721 date=1137895734]
Surprising that they repealed the ban on cdkeys outside of the released ranges and allowed keys like those to work once more.  Or, I suppose it would make sense that if they are using product 2, all of the product 1 keys that will fit in the obfuscated form are used up by now.
[/quote]

Well if the number of copies of Starcraft that Blizzard claims were sold are correct, they should have recently reached the limit.
January 22, 2006, 3:03 AM
warz
so these work on bnet?
January 22, 2006, 3:12 AM
Lenny
You've tested all 1000 private values for each of those?
January 22, 2006, 7:37 AM
l2k-Shadow
That's all awesome but it still doesn't seem to get us anywhere closer to figuring out the
Private = F(Product, Public) function.
January 22, 2006, 4:12 PM
replaced
[quote author=Ringo link=topic=13318.msg142751#msg142751 date=1137924145]
[quote author=Lenny link=topic=13318.msg142745#msg142745 date=1137915463]
You've tested all 1000 private values for each of those?
[/quote]
Yep, i found another one as well :o
Very interesting :)

This will be my last contribution to this topic :P
[/quote]

And you posted again.

Afflicted also has no idea about cdkeys.
January 24, 2006, 3:48 PM
JoeTheOdd
[quote author=replaced link=topic=13318.msg142948#msg142948 date=1138117735]
[quote author=Ringo link=topic=13318.msg142751#msg142751 date=1137924145]
[quote author=Lenny link=topic=13318.msg142745#msg142745 date=1137915463]
You've tested all 1000 private values for each of those?
[/quote]
Yep, i found another one as well :o
Very interesting :)

This will be my last contribution to this topic :P
[/quote]

And you posted again.

Afflicted also has no idea about cdkeys.

[/quote]

Question, what does telling someone they're wrong, and telling someone else that they are stupid contribute to this topic?

Also, Ringo, way to slaughter the tables. I had to use both monitors to view that bad boy. =p
January 24, 2006, 10:14 PM
Afflicted
Very nice, useful...
Thanks a lot!
Ill post my image of 20k voids in 32* public values when I get a chance to do it.
January 25, 2006, 3:29 PM
iago
I admit I haven't read even nearly all of this thread, but somebody should grab the program called THC-Shagg and try that.  It's designed to brute-force patterns in numbers, like credit card numbers.  Perhaps it would be helpful?

<edit> I ran it through Shagg with the default settings and the keys from the first 2 pages, and it found nothing.  There are a lot of numbers to tweak, and I'm not going to pretend I understand the program.  If anybody can use it to their advantage, I'd be interested to know. 
January 27, 2006, 1:05 AM
MyStiCaL
    4:30 PM Alaska Time @ uswest.battle.net, Battle.net disconnected alot of users also Jailing/Voiding there keys, After a short peroid of time, about an hour, they un-jailed the keys.. and we were able to login normally.
    As a repesenitive stated, they were testing somthing..


 
February 3, 2006, 5:42 AM
MysT_DooM
Wonder what they were testing...maybe something to prevent mass loading
or something of that nature.
February 3, 2006, 5:12 PM
rabbit
Or they found this thread...
February 3, 2006, 11:44 PM
MysT_DooM
Has any1 had any success in getting the first digit of the private value using the product
and public yet??  Where are you guys at in that respect...
i've figured out how to get the second but it only works for 95% of public keys...but it still drops
1000 keys to 840...so its better then nothing.

anyways where u guys at , at this moment.
February 4, 2006, 10:36 PM
l2k-Shadow
[quote author=MysT_DooM link=topic=13318.msg144622#msg144622 date=1139092585]
Has any1 had any success in getting the first digit of the private value using the product
and public yet??  Where are you guys at in that respect...
i've figured out how to get the second but it only works for 95% of public keys...but it still drops
1000 keys to 840...so its better then nothing.

anyways where u guys at , at this moment.
[/quote]

Would you mind sharing?
February 4, 2006, 11:22 PM
MysT_DooM
um sure whynot it only works for 90% of keys and is only a filter..
[code]
temp = Mid$(ScKeyDecode(CDKey), 11, 1)
temp2 = Mid$(ScKeyEncode(CDKey), 11, 1)
If temp = temp2 Then
Print #1, ScKeyEncode(CDKey)
End If
If temp <> temp2 Then
End If
[/code]
plop that bad boy into vb , load up a list of 1000 keys created off one public value
and it'll drop it down to 840....
as i stated b4 it works on 90% of the keys, which is why i made it one of my filters which
can be used or can not be used....
so wat does every1 else have?
February 5, 2006, 3:34 AM
LoRd
wow... this topic has gone incredibly far down hill.
February 5, 2006, 3:41 AM
MysT_DooM
how bout some input to roll it back up the hill
have you figured out how to get the first digit of a
private value yet?
or any of them?
February 5, 2006, 3:43 AM
tA-Kane
[quote author=MysT_DooM link=topic=13318.msg144657#msg144657 date=1139110479]
um sure whynot it only works for 90% of keys and is only a filter..
[code]
temp = Mid$(ScKeyDecode(CDKey), 11, 1)
temp2 = Mid$(ScKeyEncode(CDKey), 11, 1)
If temp = temp2 Then
Print #1, ScKeyEncode(CDKey)
End If
If temp <> temp2 Then
End If
[/code]
plop that bad boy into vb , load up a list of 1000 keys created off one public value
and it'll drop it down to 840....
as i stated b4 it works on 90% of the keys, which is why i made it one of my filters which
can be used or can not be used....
so wat does every1 else have?

[/quote]
In case you haven't noticed, 1000-840 is 260. 260 is roughly 25% of 1000. If you think of the private value as having four digits (eg, 1 through 1000 instead of 0 through 999), then that's pretty good. Although, that could very well change the private value which you are trying to get (eg, 799+1=800, so then no digits match)... unless the public/private checking algorithm was origionally designed for 4-digit length private values?

It's probably just a coincidence though.
February 5, 2006, 7:44 AM
MysT_DooM
i was talkin about public ranges, and how it works for 90% of them, i wasnt talking about the 1000 made keys, rather i was talking about each public range.
February 5, 2006, 4:32 PM
PaiD
Look at what has happened :'( http://www.bnetweb.com/e107_plugins/forum/forum_viewtopic.php?10612
February 6, 2006, 4:58 AM
MyStiCaL
[quote author=Savior link=topic=13318.msg144775#msg144775 date=1139201895]
Look at what has happened :'( http://www.bnetweb.com/e107_plugins/forum/forum_viewtopic.php?10612
[/quote]


For those of you that don't have a bnetweb login... this is the topic...
LOL!!!







Key Machine
Created By: Thieves (USEAST) (USWEST) (EUROPE)
Current Version = BETAv1.5 (Feb 05, 2006)
Download Here
Program Password = ¿Question?
______________________________________
OP GBR @EUROPE FOR LIVE SUPPORT
----------------------------------------------------------------------
What is it?

Key Machine is a program which Mass Generates Cd Keys that are Valid on Battle Net.
----------------------------------------------------------------------
How?

Key Machine generates based on similarities of working Battle Net Cd Keys and is also based on a little bit of the Cd Key Algorithm (Of what is known). Method Two generates everysingle cdkey of a given public
value range, thus giving you always 1/1000 working keys. Using Filters
can take any list mostly down to 1/840. Diablo 2 Generating is currently still under construction.
----------------------------------------------------------------------
How many Cd Keys does Key Machine generate?

As many as you want.

----------------------------------------------------------------------
[BETA v1.5]
-Diablo 2 Support Added
-Filter Options
-New Method of Generating
-other stuff to lazy to mention but equally important
-First Public Beta testers testing

[BETA v1.4]
-Added data for basis of generating
-Created Icon


[BETA v1.3]
-Decode Cdkey Option
-Encode Cdkey Option
-User Specified Generating
-Fixed Bug in Chat Closing area

[BETA v1.2]
-Password Verification Added
-User Specified Generating Available


[BETA v1.0]
-Added Chat Area
-Trimmed Game Area


[BETA]
- 3 Games
- Unfinished "Fun" Section
- Generates 1000 cdkeys per button
- This is just a beta version so a majority of similarties of working keys and the algorithm is left out but will be added in official Version 1.
- But you still have a better chance of getting keys with Key Machine rather then those "others" which still generate random 13 digits.


[Future (Version 1)]
- More Games
- Fun Section will be complete
- User specified generating; meaning you can specify the amount of keys to be generated, i.e 1000, or 10000 or even 100000000000000.
- Current knowledge of valid cdkeys and algorithm will be added into the generating.
- And a lot more surprises...

[Future Future Ideas]
- Double your list
- Automatic Cd Key Validator (Therefore no more mass testing after you finished generating keys)
- Fun Section might have E-Books, Music, Worm/Virus Generator<- most likly not.
- A lot more current games. and more multiplayer games.
- And some other nuts
_____________________________________________
Please leave some feedback and enjoy. thx for ur time..
February 6, 2006, 7:00 AM
BaDDBLooD
[quote author=MyStiCaL link=topic=13318.msg144790#msg144790 date=1139209206]
[quote author=Savior link=topic=13318.msg144775#msg144775 date=1139201895]
Look at what has happened :'( http://www.bnetweb.com/e107_plugins/forum/forum_viewtopic.php?10612
[/quote]


For those of you that don't have a bnetweb login... this is the topic...
LOL!!!







Key Machine
Created By: Thieves (USEAST) (USWEST) (EUROPE)
Current Version = BETAv1.5 (Feb 05, 2006)
Download Here
Program Password = ¿Question?
______________________________________
OP GBR @EUROPE FOR LIVE SUPPORT
----------------------------------------------------------------------
What is it?

Key Machine is a program which Mass Generates Cd Keys that are Valid on Battle Net.
----------------------------------------------------------------------
How?

Key Machine generates based on similarities of working Battle Net Cd Keys and is also based on a little bit of the Cd Key Algorithm (Of what is known). Method Two generates everysingle cdkey of a given public
value range, thus giving you always 1/1000 working keys. Using Filters
can take any list mostly down to 1/840. Diablo 2 Generating is currently still under construction.
----------------------------------------------------------------------
How many Cd Keys does Key Machine generate?

As many as you want.

----------------------------------------------------------------------
[BETA v1.5]
-Diablo 2 Support Added
-Filter Options
-New Method of Generating
-other stuff to lazy to mention but equally important
-First Public Beta testers testing

[BETA v1.4]
-Added data for basis of generating
-Created Icon


[BETA v1.3]
-Decode Cdkey Option
-Encode Cdkey Option
-User Specified Generating
-Fixed Bug in Chat Closing area

[BETA v1.2]
-Password Verification Added
-User Specified Generating Available


[BETA v1.0]
-Added Chat Area
-Trimmed Game Area


[BETA]
- 3 Games
- Unfinished "Fun" Section
- Generates 1000 cdkeys per button
- This is just a beta version so a majority of similarties of working keys and the algorithm is left out but will be added in official Version 1.
- But you still have a better chance of getting keys with Key Machine rather then those "others" which still generate random 13 digits.


[Future (Version 1)]
- More Games
- Fun Section will be complete
- User specified generating; meaning you can specify the amount of keys to be generated, i.e 1000, or 10000 or even 100000000000000.
- Current knowledge of valid cdkeys and algorithm will be added into the generating.
- And a lot more surprises...

[Future Future Ideas]
- Double your list
- Automatic Cd Key Validator (Therefore no more mass testing after you finished generating keys)
- Fun Section might have E-Books, Music, Worm/Virus Generator<- most likly not.
- A lot more current games. and more multiplayer games.
- And some other nuts
_____________________________________________
Please leave some feedback and enjoy. thx for ur time..
[/quote]

Sigh, the beginning of the end has arrived.  :'(
February 6, 2006, 7:24 AM
HeRo
almost each command button you press generates run-times
February 6, 2006, 8:55 AM
MysT_DooM
Can you tell me some of the errors via pm, so far your the only one who has had or reported runtime errors.
February 6, 2006, 3:08 PM
MysT_DooM
btw badblood, its not gona be a beginning to the end of SC because im not gona make it like my key scanner/bruter. that will always be kept private.  So dont wry bout that.
:)

Edit: Hero- in method 1 those boxes next to buttons is where u put the amount of how much u want to generate
i.e 100, 1000, 23523, etc..
I shuda wrote a direction readme and tip section, also use filters especially the product filter to remove wrong product keys if ur using method 1.
February 6, 2006, 3:11 PM
MyStiCaL
MysT_DooM = Thieves?
February 6, 2006, 11:04 PM
MysT_DooM
yup

Edit: Tryin to get this topic back on the right track, any1 know of a certain area specifically in the math area to concentrate to figure out this tricky product public formula..
its crzy hard o.O    Ringo god dangit more tipsss
February 7, 2006, 5:23 AM
rabbit
I'm sure you'll find a relation with a large enough data set and a few years with number theory.
February 8, 2006, 12:46 AM
LordNevar
[quote author=Ringo link=topic=13318.msg145334#msg145334 date=1139535178]
Is this a temp thing? (or just me?)
Product 2 SC CDkeys got disabled from JSTR today.
This morning work, tonight not work -.-
I kinda hope same happens to SC, even tho i have mb's of product 2 keys :)
[/quote]

It wouldn't surprise me with all the bannings that have been going on over the last year or so. I wouldn't be surprised if they recirculated all those keys again.
February 10, 2006, 1:47 AM
PaiD
I have now removed the Key Machine from the forums on Bnetweb.com due to it being dangerous to the Battle.Net Community.
February 10, 2006, 6:46 PM
Skywing
Unfortunately, that does not undo damage already done.

Perhaps in the future, you will consider using more discretion in such matters.
February 10, 2006, 7:05 PM
PaiD
Skywing: Are you talking to me? (Not tring to be smart) If so, I wasnt aware that I did anything wrong=/
February 10, 2006, 7:55 PM
Yegg
[quote author=Savior link=topic=13318.msg145434#msg145434 date=1139601337]
Skywing: Are you talking to me? (Not tring to be smart) If so, I wasnt aware that I did anything wrong=/
[/quote]

IIRC, the public developement of Battle.net applications is illegal. Actually, any developement. However no one will know about your private applications.
February 10, 2006, 8:04 PM
Lenny
Methinks the program which was mentioned somewhere in the last page did not really affect anything...1/840 isn't much of an improvement from 1/1000.  And if it works an estimated 90% of the time, is it even a filter?

Example:
If there's an unknown number from 1-10, I don't think it's logical to say 'if I eliminate one of the possible numbers, there's a 90% chance that the number I eliminated isn't the unknown number'

But I must say there were a few interesting posts which may have been a bit more useful had there not been some quick moderation (or editing by the original poster). 

But that's why it's smart to have logs of these things :)
February 10, 2006, 8:46 PM
PaiD
I am not the person who posted that. I am not Myst_Doom (Thieves on Bnetweb). I am an Admin there and deleted the posts.
February 10, 2006, 8:47 PM
Lenny
I'm not sure if you were speaking to Skywing or yours truly.  But I was referring to this forum  ;D
February 10, 2006, 8:49 PM
UserLoser
[quote author=UserLoser. link=topic=13318.msg135787#msg135787 date=1133320801]
This whole idea is very bad.  This shouldn't be on a public forum like this...especially when it's populated by nothing but Battle.netters.....just letting you know ahead of time.
[/quote]
February 10, 2006, 9:26 PM
dx
And once again, UserLoser smites down the lamers!

[quote author=MysT_DooM link=topic=13318.msg145449#msg145449 date=1139605296]
hmm  guess i shud just keep the things
I make to myself  :-\ 
[/quote]

That would be sufficent enough, however, I can't comprehend how someone with such impeccable grammar such as yourself can write any functional program?
February 10, 2006, 9:29 PM
MysT_DooM
With magic fairy dust from the far lands of Narnia.

anyway wat dos ones typin on the internet haveing anything to so with thiere coding...  Theres specific styles of wrting at certains times,  i have a certain style for when on the internet, have another when writing a formal paper, and another when coding :P
February 10, 2006, 9:38 PM
dx
[me=dx]blinks[/me]

If you have hard time spelling your words correctly I have a feeling it would rub off on other things (coding)
February 10, 2006, 9:43 PM
JoeTheOdd
Wow, this topic pretty much croaked..
February 10, 2006, 10:38 PM
l2k-Shadow
[quote author=Yegg link=topic=13318.msg145474#msg145474 date=1139611619]
[quote author=Joe link=topic=13318.msg145467#msg145467 date=1139611132]
Wow, this topic pretty much croaked..
[/quote]

Wow, I think I'll make an unimportant post to inform you that you have more unnecessary posts than everyone on these forums combined per day.
[/quote]

That's a good comeback, but yeah this topic has gone to crap... and the public release of a key generator just makes me want to make one out of spite and release it open source.
February 11, 2006, 12:12 AM
l2k-Shadow
[quote author=Ringo link=topic=13318.msg145509#msg145509 date=1139624430]
[quote author=Skywing link=topic=13318.msg145428#msg145428 date=1139598354]
Unfortunately, that does not undo damage already done.

Perhaps in the future, you will consider using more discretion in such matters.
[/quote]
Well, a few cdkeys iv used for my mod bots have been muted after my channel was loaded, and iv been told alot of people lost alot of cdkeys when loading, so blizzard are only now becoming aware of the problem.
I think some people have flooded blizz tech and droped some reps as well, so that might have somthing to do with it.
To many people are downloading open source bots and modifying them inorder to find cdkeys, some more successful than others, i mean just check my sig for a ne_sucks example -.-
[/quote]

yeah your sig really makes a statement about the intelligence of people on battle.net

I love it when people are trying to act l33t and yet have no idea what the fuck they are talking about. lol
February 11, 2006, 3:10 AM
l2k-Shadow
[quote author=MysT_DooM link=topic=13318.msg145520#msg145520 date=1139632884]
i say we bury this topic and send it to forum heaven :P
[/quote]

well we still haven't come closer to the issue that's on-topic, Private = F(Product, Public)
February 11, 2006, 4:45 AM
UserLoser
[quote author=Ringo link=topic=13318.msg145509#msg145509 date=1139624430]
[quote author=Skywing link=topic=13318.msg145428#msg145428 date=1139598354]
Unfortunately, that does not undo damage already done.

Perhaps in the future, you will consider using more discretion in such matters.
[/quote]
Well, a few cdkeys iv used for my mod bots have been muted after my channel was loaded, and iv been told alot of people lost alot of cdkeys when loading, so blizzard are only now becoming aware of the problem.
I think some people have flooded blizz tech and droped some reps as well, so that might have somthing to do with it.
To many people are downloading open source bots and modifying them inorder to find cdkeys, some more successful than others, i mean just check my sig for a ne_sucks example -.-
[/quote]

I don't think flooding a channel would drop one of Blizzard's clients ;)
February 11, 2006, 6:32 AM
MyStiCaL
[quote author=Ringo link=topic=13318.msg145509#msg145509 date=1139624430]
[quote author=Skywing link=topic=13318.msg145428#msg145428 date=1139598354]
Unfortunately, that does not undo damage already done.

Perhaps in the future, you will consider using more discretion in such matters.
[/quote]
Well, a few cdkeys iv used for my mod bots have been muted after my channel was loaded, and iv been told alot of people lost alot of cdkeys when loading, so blizzard are only now becoming aware of the problem.
I think some people have flooded blizz tech and droped some reps as well, so that might have somthing to do with it.
[/quote]


well, I've been in blizzard tech support during both a load and/or a flood, reps rule the floods easy along with loads.... I don't think it bothers them also there probley connected more advancedly then ourselfs..

which makes me wonder what kinda screen there looking at hmm.... ;)


February 11, 2006, 1:13 PM
rabbit
I do believe this should be either split or trashed..it's just...degenerated so far....
February 11, 2006, 2:45 PM
MyStiCaL
 well jesus, I think that outta freeze up the flooder before a bot, or Specially a client, o.o

If you happened to see one or hear about this flood again, lemme know i'd like to see 'how it does what it does' always good just if so it so does happen to drop people, it can help me learn more about on how to protect against it. ;)

Go go new topic, Flood Protect 101, j/p

But actually in mine, i made it so if a certain amount of users tried to join at once, say 50+ within a certain time period, and the names are idenitical then don't even bother adding them indo the listview nor responding to joins, rejoins.


___


Well, we come to find SC Keys are a bit hard, I wonder what would happen when someone decides to start working on the d2/w2 Or Damn even the WAR3 thats what 25 characters.... sheeshz

___

On Topic.

 MysT_DooM, as your cdkey creator or w/e you say your using parts as stated from here i think? some of the things people did post in here are wrong, such as there are keys that start with n-e number in the front, and end, I have about 45k Voided/Jailed/Banned keys, I've tried to use the help from what others posted here to see if the most easy explaination could be the right one, well infact not... besides generating a bunch of random keys through and around a hot spot thus coming up with still a whole lot of Invalid keys..

I think UserLoser is hiding something that he doesn't want to share. -_-


February 11, 2006, 3:00 PM
MysT_DooM
[quote]
MysT_DooM, as your cdkey creator or w/e you say your using parts as stated from here i think? some of the things people did post in here are wrong, such as there are keys that start with n-e number in the front, and end, I have about 45k Voided/Jailed/Banned keys, I've tried to use the help from what others posted here to see if the most easy explaination could be the right one, well infact not... besides generating a bunch of random keys through and around a hot spot thus coming up with still a whole lot of Invalid keys..
[/quote]
Nah mystical the only thing taken from here was the knowledge of the keys starting with 0,1,2,3,4,7 only. All my other help came from a another individual :P hmm his names rhymes with dingo ;)

anywayz l2k-shadow is it a good idea to talk about the formula to get the private value. cuz then it would be definatly gg to sc.

Also concerning flood mystical if u want to see one just msg Nes or watever names his on, his flood is pretty good.

Also concerning D2, i've started it and its like woah..hex\numeric 0-9 A-F  it would take a shit long time to brute one public value
[code]
np6zdr7kbpfcnjje 06     9476D0     F48D117A
[/code]
8 digit private value with hex/numeric :O  any1 calculate the possiblities i.e sc is 1/1000... Ringo u told me b4 but i forgot wat was it again
February 11, 2006, 4:01 PM
LoRd
[quote author=rabbit link=topic=13318.msg145548#msg145548 date=1139669153]
I do believe this should be either split or trashed..it's just...degenerated so far....
[/quote]

Trashed—there's little in this thread that had not already been part of the public domain.
February 11, 2006, 5:07 PM
LoRd
[quote author=UserLoser link=topic=13318.msg145525#msg145525 date=1139639559]
[quote author=Ringo link=topic=13318.msg145509#msg145509 date=1139624430]
[quote author=Skywing link=topic=13318.msg145428#msg145428 date=1139598354]
Unfortunately, that does not undo damage already done.

Perhaps in the future, you will consider using more discretion in such matters.
[/quote]
Well, a few cdkeys iv used for my mod bots have been muted after my channel was loaded, and iv been told alot of people lost alot of cdkeys when loading, so blizzard are only now becoming aware of the problem.
I think some people have flooded blizz tech and droped some reps as well, so that might have somthing to do with it.
To many people are downloading open source bots and modifying them inorder to find cdkeys, some more successful than others, i mean just check my sig for a ne_sucks example -.-
[/quote]

I don't think flooding a channel would drop one of Blizzard's clients ;)
[/quote]

I've accomplished it before.
February 11, 2006, 5:10 PM
Kp
[quote author=Yegg link=topic=13318.msg145554#msg145554 date=1139670266]
[quote author=rabbit link=topic=13318.msg145548#msg145548 date=1139669153]
I do believe this should be either split or trashed..it's just...degenerated so far....
[/quote]

Or perhaps someone should just lock the thread. I think this is a good post for others to learn from, minus about 250 posts.
[/quote]

I considered that, but the thread's such a mess that it'll take a while to sort out.  If it doesn't improve shortly, I'll lock it and then begin pulling the pieces apart.  I'll unlock the worthy thread(s) when I'm done.  The lock is just to provide exclusive access so people don't go updating the thread while I'm working on it. :)

The forum members could do quite a lot toward keeping such threads on topic by ignoring attempts to take it off topic.  Any such attempt can be easily split/deleted, but when you start responding to trolls, it gets messy fast.
February 11, 2006, 5:11 PM
Ringo
Iv just deleted every post i made in this whole topic, so that should save you some time :P
My posts accounted for 3 pages of mumbojumbo, sry  :'(
February 11, 2006, 5:37 PM
Spht
[quote author=Ringo link=topic=13318.msg145570#msg145570 date=1139679473]
Iv just deleted every post i made in this whole topic, so that should save you some time :P
My posts accounted for 3 pages of mumbojumbo, sry  :'(
[/quote]

Now, if only everyone else could do the same...
February 11, 2006, 5:41 PM
PaiD
[quote author=Ringo link=topic=13318.msg145570#msg145570 date=1139679473]
Iv just deleted every post i made in this whole topic, so that should save you some time :P
My posts accounted for 3 pages of mumbojumbo, sry  :'(
[/quote]

Not true. Alot of your posts where good =/
February 11, 2006, 7:20 PM
Ringo
[quote author=Savior link=topic=13318.msg145581#msg145581 date=1139685615]
Not true. Alot of your posts where good =/
[/quote]
Maybe, but the out come isnt :(
Its been total SC Key fest lately :P
On battle.net thats all i seem to ever here, from random people asking about it, to flood messages ordering i give them to the loader ;)
The only reall good out come has been the chance to make my ops bot indestructible.  ::)
February 11, 2006, 8:35 PM
rabbit
Well, at least there was some GENERAL benefit (as long as your ops bot happens to be public, that is).
February 11, 2006, 9:31 PM
JoeTheOdd
Hey guys, instead of discussing in which way it would be best for this topic to die, lets turn this around and actually get something acomplished. Please.
February 11, 2006, 10:37 PM
rabbit
It wasn't accomplishing much in the first place, so why not trash it completely and start over with some useful information?
February 11, 2006, 11:06 PM
Yegg
How about this. Everyone delete their posts that they made after Kp said what he said. And I'll delete mine tomorrow so that everyone has enough time to read this. We are trying to stop this topic from growing, why do you guys insist on trolling it alive?
February 12, 2006, 12:55 AM
Kp
[quote author=Yegg link=topic=13318.msg145620#msg145620 date=1139705719]
How about this. Everyone delete their posts that they made after Kp said what he said. And I'll delete mine tomorrow so that everyone has enough time to read this. We are trying to stop this topic from growing, why do you guys insist on trolling it alive?
[/quote]

What would that accomplish?  I stepped in because the thread was becoming a mess, not to cause people to start arbitrarily deleting posts.
February 12, 2006, 2:06 AM
MyStiCaL
[quote author=MysT_DooM link=topic=13318.msg145560#msg145560 date=1139673717]
Nah mystical the only thing taken from here was the knowledge of the keys starting with 0,1,2,3,4,7 only. All my other help came from a another individual :P hmm his names rhymes with dingo ;)

Also concerning flood mystical if u want to see one just msg Nes or watever names his on, his flood is pretty good.

[/quote]

That's where its wrong,  I have Keys that start with 6-8 and 9 also, the others i believe LordNevar said about it was like certain keys in differnt lines only go up to a certain high number which is also incorrect!
February 12, 2006, 2:34 AM
Ringo
[quote author=Kp link=topic=13318.msg145624#msg145624 date=1139709981]
[quote author=Yegg link=topic=13318.msg145620#msg145620 date=1139705719]
How about this. Everyone delete their posts that they made after Kp said what he said. And I'll delete mine tomorrow so that everyone has enough time to read this. We are trying to stop this topic from growing, why do you guys insist on trolling it alive?
[/quote]

What would that accomplish?  I stepped in because the thread was becoming a mess, not to cause people to start arbitrarily deleting posts.
[/quote]
I hope you dont think that i made a bad move by deleteing my posts?  ;)
I think i made a very bad move by posting them in the 1st place, for reassions pointed out at the start of the topic, one being your self :)
And i didnt delete my posts because of what you said, i did it for a number of reassions, 1 being because this topic is becoming an infestation of battle.net, and blizzard banning loads of keys puts it in a perfect time to remove my contribution towards it.
We could all make a fuss about it, but the only people it effects is the no nothings who would sell there family for as many unmuted keys, so they can mess it up for everyone else.
February 12, 2006, 5:20 AM
l2k-Shadow
[quote author=Ringo link=topic=13318.msg145646#msg145646 date=1139721613]
[quote author=Kp link=topic=13318.msg145624#msg145624 date=1139709981]
[quote author=Yegg link=topic=13318.msg145620#msg145620 date=1139705719]
How about this. Everyone delete their posts that they made after Kp said what he said. And I'll delete mine tomorrow so that everyone has enough time to read this. We are trying to stop this topic from growing, why do you guys insist on trolling it alive?
[/quote]

What would that accomplish?  I stepped in because the thread was becoming a mess, not to cause people to start arbitrarily deleting posts.
[/quote]
I hope you dont think that i made a bad move by deleteing my posts?  ;)
I think i made a very bad move by posting them in the 1st place, for reassions pointed out at the start of the topic, one being your self :)
And i didnt delete my posts because of what you said, i did it for a number of reassions, 1 being because this topic is becoming an infestation of battle.net, and blizzard banning loads of keys puts it in a perfect time to remove my contribution towards it.
We could all make a fuss about it, but the only people it effects is the no nothings who would sell there family for as many unmuted keys, so they can mess it up for everyone else.

[/quote]

your posts were good in the fact that they helped research, unfortunately instead of research being done 2 things happened:

1) Nubs came on here and started raping keys.

2) People made useless off-topic posts and started arguing with each other.

Although we have come to the conclusion that 1:1000 valid:invalid ratio is the best we can come down to thus far, (which is really where we started), i'm sure it helped some of us (myself included) understand the whole deal with cd-keys a little more.

Now I guess it's up to you to make some progress on Private = F(Product, Public) since you have the most resources.
February 12, 2006, 6:41 AM
Yegg
[quote author=Kp link=topic=13318.msg145624#msg145624 date=1139709981]
[quote author=Yegg link=topic=13318.msg145620#msg145620 date=1139705719]
How about this. Everyone delete their posts that they made after Kp said what he said. And I'll delete mine tomorrow so that everyone has enough time to read this. We are trying to stop this topic from growing, why do you guys insist on trolling it alive?
[/quote]

What would that accomplish?  I stepped in because the thread was becoming a mess, not to cause people to start arbitrarily deleting posts.
[/quote]

The majority of the posts were useless. Yes, there were some very informative and useful posts that should be kept. However, keeping this topic alive with *useless posts* shouldn't be happening. And it still is.
February 12, 2006, 4:59 PM
Arta
This entire thread has almost completely missed the point -- which I described, numerous times, to no effect -- and represents an almost total waste of time.

I gave up on it long ago.
February 13, 2006, 12:33 AM
rabbit
Then please, by all means, lock it.
February 13, 2006, 2:05 AM
JoeTheOdd
Welcome to vL forums. When we have something nice started, someone, or a group of people, will ALWAYS ruin it. -.-
February 13, 2006, 6:12 AM
shadypalm88
[quote author=Joe link=topic=13318.msg145782#msg145782 date=1139811125]
Welcome to vL forums. When we have something nice started, someone, or a group of people, will ALWAYS ruin it. -.-
[/quote]

Really, Joe?  Is this (partially):
[list]
[*]Because of what you post
[*]In spite of what you post
[*]Or have you never posted in a thread where "something nice [was] started"
[/list]

Please consider your role in a community before making a comment that is critical of the community as a whole.
February 13, 2006, 10:27 PM
Ringo
[quote author=Joe link=topic=13318.msg134954#msg134954 date=1132618307]
Anyhow, seeing as how many people believe that theres a pattern in valid StarCraft keys, I decoded over 1000 from a public list of valid keys.[/quote]
heh
[quote author=Joe link=topic=13318.msg145782#msg145782 date=1139811125]
Welcome to vL forums. When we have something nice started, someone, or a group of people, will ALWAYS ruin it. -.-
[/quote]
There would have been nothing to ruin if i never released 1267 free keys to the public domain, so that you later could stuble across and "start somthing nice" from ;)
I wasnt going to say anything, but eh
February 14, 2006, 3:26 PM
MysT_DooM
[quote author=MyStiCaL link=topic=13318.msg145629#msg145629 date=1139711662]
[/quote]
[quote]
That's where its wrong,  I have Keys that start with 6-8 and 9 also, the others i believe LordNevar said about it was like certain keys in differnt lines only go up to a certain high number which is also incorrect!
[/quote]

I've looked into this and couldnt find any *Valid* key that starts with a 6 8 or a 9.  I 'm starting to think your lieing.
Please Prove me wrong. Show me one, just one valid key which starts with either 6 8 or 9.
February 19, 2006, 6:33 PM
MyStiCaL
I'll look for my keys today, and post a few.. doesn't mean they have to be working but atleast valid.

  Also, This topic has so many useless post its hard to re-read everything everyone said including a few people decided to delete there 'could be' useful post, but i was wondering...

Keys are generated from blizzard of course.
Keys are active before you even buy the game and install right?
February 19, 2006, 6:48 PM
laurion
[quote author=MyStiCaL link=topic=13318.msg146429#msg146429 date=1140374924]
I'll look for my keys today, and post a few.. doesn't mean they have to be working but atleast valid.

  Also, This topic has so many useless post its hard to re-read everything everyone said including a few people decided to delete there 'could be' useful post, but i was wondering...

Keys are generated from blizzard of course.
Keys are active before you even buy the game and install right?
[/quote]
Yes. If I go to Wal-Mart and open a Starcraft box, I can write down the key and use it when I get home (Someone is out $10!).
February 19, 2006, 6:54 PM
MysT_DooM
[quote author=MyStiCaL link=topic=13318.msg146429#msg146429 date=1140374924][/quote]
[quote]
I'll look for my keys today, and post a few.. doesn't mean they have to be working but atleast valid.
[/quote]

Valid meaning they have to be either Banned, voided, muted, or working.

Edit: however if the key is invalid, that would also be of somewhat of significant also.
February 19, 2006, 6:57 PM
JoeTheOdd
I should be left with the right to lock my own topic..

*uses*
February 26, 2006, 2:25 AM
GoaL
I would just like to say one last thing as this topic was locked. I was thinking, espically what one person said, when you go to wal-mart and buy starcraft... your paying 10.00 for the game, not the FREE service, battle.net that is provided. It's simply a free service, the game is still fun and interesting without battle.net, although it does enhance it a bit. I was also thinking, people have figured out the adobe photoshop serials, and anyone can easily get one by googling. Now think how many great designers there wouldn't be in the world without a somewhat-illegal copy of photoshop. Doesn't the same thinking apply here, I say, if this topic does continue, no lists of keys should be posted, but just lines of coding and explinations of coding or mathmatical advances, I think it is a very interesting topic, and i have learned alot.

Sincerely,

Adam R. (AKA GoaL AKA Smarter And recently aka Smart@EAST (thx Rap!)
February 26, 2006, 2:48 AM
PaiD
It would be nice but isnt going to happen. Also in the event of this happening and there are massive amounts of cdkeys for Starcraft then people will abuse it with floodbots and then blizzard will be forced to restrict that client just like they did with Starcraft Japan and Telnet
February 26, 2006, 2:52 AM
Spht
[quote author=Joe link=topic=14365.msg147076#msg147076 date=1140920742]
I should be left with the right to lock my own topic..

*uses*

[/quote]

I'll leave that to the moderators.
February 26, 2006, 2:58 AM
GoaL
But it would be slightly limited to coders, because like I said no lists of keys. Also, I don't think they battle.net would limit it again, they'd lose alot of money too i think. The reason battle.net is free, is because they make money off it. From I think AT&T and the ad's (shown on client), it's also one reason I think they don't like bot's. But, yeah, another thing, I see your a photoshop user, did you honestly go out and buy it? ;) I think not.
February 26, 2006, 3:00 AM
GoaL
Um, Kp. Now there just gonna re-lock my topic now, lol. I don't think that merge was very usefull, but o-well, your the moderator! :-D
February 26, 2006, 3:05 AM
MysT_DooM
I suggest not posting code related to "mathematical advances" or Cd Key Scanner coding and especially private value formulas cause that would be just not good information for the public domain, it would be like giving a nuke to osama bin laden or something; if you get my analogy.

Some things that i did find out today for those who have made scanners is that anything less then 30 secs between key checks results in a IP ban after around 25 valid key checks in a row.  so if you keep it at a 30 sec interval you'll be fine. possibly maybe 35 secs because i have noticed after picking up 134 valid keys one after the other it sort of like stops connecting, but once i repress my button to connect, it goes through fine.
If you dont have timed intervals between each key check, i tested that out also. results were 
1 Invalid Key Check  = Ip Ban
10 Valid Checks (In a Row) = Ip Ban
20 Wrong Product (In a Row)= Ip Ban
but if you added proxy support this wouldnt be a problem for you.
On another note
[quote author= Mystical]
I have Keys that start with 6-8 and 9 also
[/quote]
I can confidently say that you do not have a cd key that is either valid, muted, banned, voided, or invalid that starts with a 6 8 or a 9.
February 26, 2006, 5:14 AM
laurion
[quote author=MysT_DooM link=topic=14366.msg147096#msg147096 date=1140930892]
I suggest not posting code related to "mathematical advances" or Cd Key Scanner coding and especially private value formulas cause that would be just not good information for the public domain, it would be like giving a nuke to osama bin laden or something; if you get my analogy.
[/quote]
The hypocracy.
(sorry, had to).
February 26, 2006, 5:48 AM
Spht
[quote author=MysT_DooM link=topic=14366.msg147096#msg147096 date=1140930892]
I suggest not posting code related to "mathematical advances" or Cd Key Scanner coding and especially private value formulas cause that would be just not good information for the public domain, it would be like giving a nuke to osama bin laden or something; if you get my analogy.
[/quote]

Come on, video games haven't desensitized you that much, have they?

"Giving a nuke to Osama bin Laden" (you have to find him first) would threaten the lives of his enemies (the entire West?).  That is a little different than this.

This is like a nice book store, which offers people with library cards free candy when they visit.  Now, someone in town told everyone how to make their own library card.  Kids rejoice as they can now go into the book store to get free candy with their free library cards!  The library manager finds out about this, and decides to get rid of the free candy offer.  Kids stop going to the bookstore because they don't read books, and everyone else doesn't care because they rather read books than eat candy.
February 26, 2006, 2:45 PM
MysT_DooM
yup spht your analogy makes a lot more sense :P

and Tazo I don't think i posted code for mathematical advances or cd key scanning or code that derives a private value.

Edit: From my early post about Key Check Intervals, i switched mine to 1 minute and ran my program overnight and by mourning the connection was still fine and the key checks were going smoothly.
February 26, 2006, 3:12 PM
laurion
[quote author=MysT_DooM link=topic=14366.msg147118#msg147118 date=1140966751]
yup spht your analogy makes a lot more sense :P

and Tazo I don't think i posted code for mathematical advances or cd key scanning or code that derives a private value.

Edit: From my early post about Key Check Intervals, i switched mine to 1 minute and ran my program overnight and by mourning the connection was still fine and the key checks were going smoothly.
[/quote]
I think you misunderstood what I was trying to say. You said that the code didn't need to 'fall into the wrong hands', basicly. Why? Maybe because they would make a tool to generate keys and release it - like you!  >:(
February 26, 2006, 7:42 PM
MysT_DooM
ahh now I see where your coming from.  Indeed my generator is available to the public, its not to the point of greatness where it can be damaging, its just a million times more better then the rest of those public generators out there :P
I mean its not like i'm gona release my scanner, that sort of thing would be damaging.
February 26, 2006, 10:10 PM

Search