def __random_digital_product_id4(self): random_digital_id4 = [0] * 1272 random_digital_id4[0] = 0xF8 random_digital_id4[1] = 0x04 # 0x08 - ID random_id1 = WinFingerprint.__random_product_id4() random_digital_id4[0x08:0x08 + len(random_id1) + 1] = random_id1 # 0x88 - UUID product_guid_id4 = random_utils.disperse_string(self.uuid_id4) random_digital_id4[0x88:0x88 + len(product_guid_id4) + 1] = product_guid_id4 # 0x0118 - Edition product_edition = random_utils.disperse_string(self.edition_id) random_digital_id4[0x0118:0x0118 + len(product_edition) + 1] = product_edition # 0x0328 - random length 80 radom_block = random.sample(range(0, 0xFF), 80) random_digital_id4[0x0328:0x0328 + len(radom_block) + 1] = radom_block # 0x0378 - XNN-NNNNN random_id2_string = "{0}{1}-{2}".format( ''.join(random.sample(string.ascii_uppercase, 1)), random_utils.random_digit_string(2), random_utils.random_digit_string(3) ) random_id2 = random_utils.disperse_string(random_id2_string) random_digital_id4[0x0378:0x0378 + len(random_id2) + 1] = random_id2 # 0x03F8 - Retail/OEM # 0x0478 - Retail/OEM retail_oem = random_utils.disperse_string(self.retail_oem) random_digital_id4[0x03F8:0x03F8 + len(retail_oem) + 1] = retail_oem random_digital_id4[0x0478:0x0478 + len(retail_oem) + 1] = retail_oem return random_digital_id4
def __random_system_client_id(): system_client_id = [0] * 0x08 system_client_id[0x00:0x03] = [0x06, 0x02, 0x28, 0x01] system_client_id[0x04:0x06] = random.sample(range(1, 255), 3) system_client_id[0x07] = 0 # 0x08 - Start random part of ID system_client_id.extend(HardwareFingerprint.__random_id1()) system_client_id.extend([0, 6, 0]) system_client_id.extend(HardwareFingerprint.__random_id2()) system_client_id.extend(random_utils.disperse_string("None")) return system_client_id
def __random_product_id4(): # 5-5-3-6-2-4-4-1rnd-0000-YYYY normal_string = "{0}-{1}-{2}-{3}-{4}-{5}-{6}x00002018".format( random_utils.random_digit_string(5), random_utils.random_digit_string(5), random_utils.random_digit_string(3), random_utils.random_digit_string(6), random_utils.random_digit_string(2), random_utils.random_digit_string(4), random_utils.random_digit_string(4)) dispersed_list = random_utils.disperse_string(normal_string) dispersed_list[70] = random.randint(0, 0xFF) dispersed_list[-2] = ['5', '6', '7', '8'][random.randint(0, 3)] return dispersed_list
def __random_id1(): random_id1 = random.choices(string.digits + string.ascii_uppercase, k=19) random_id1_list = random_utils.disperse_string(random_id1) return random_id1_list