Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys, os, struct
- import hashlib, hmac
- from Crypto.Cipher import AES
- def aes_encrypt_ecb(key, input):
- aes = AES.new(key, AES.MODE_ECB)
- output = aes.encrypt(input)
- return output
- def aes_decrypt_ecb(key, input):
- aes = AES.new(key, AES.MODE_ECB)
- output = aes.decrypt(input)
- return output
- def aes_encrypt_cbc(key, iv, input):
- aes = AES.new(key, AES.MODE_CBC, iv)
- output = aes.encrypt(input)
- return output
- def aes_decrypt_cbc(key, iv, input):
- aes = AES.new(key, AES.MODE_CBC, iv)
- output = aes.decrypt(input)
- return output
- def aes_cmac(key, input):
- aes = AES.new(key, AES.MODE_CMAC)
- output = aes.encrypt(input)
- return output
- def calculate_sha1_hmac_digest(key, message):
- hash = hashlib.sha1(message).digest()
- return hmac.new(key, hash).digest()
- def get_sc_key_by_revision(revision):
- return {
- 2: 'D413B89663E1FE9F75143D3BB4565274'.decode('hex'),
- 3: 'FA72CEEF59B4D2989F111913287F51C7'.decode('hex'),
- 4.0: '73636B65795F666F725F6D6173746572'.decode('hex'),
- 4.1: 'DAA4B9F2BC70B280A7B340FA0D04BA14'.decode('hex'),
- 4.2: '29C194FFEC1FD14D4AAE006C32B35990'.decode('hex'),
- }.get(revision)
- def sc_form_key(type, laid_paid):
- if not type in [0, 1, 2, 3, 4.0, 4.1, 4.2, 5]:
- raise Exception('Wrong type specified')
- if laid_paid is not None and len(laid_paid) != 16:
- raise Exception('Wrong LAID/PAID specified')
- initial_key = get_sc_key_by_revision(type)
- final_key = ''
- for i in xrange(16):
- final_key += chr(ord(initial_key[i]) ^ ord(laid_paid[i]))
- return final_key
- def sc_encrypt(type, laid_paid, iv, input):
- key = sc_form_key(type, laid_paid)
- return aes_encrypt_cbc(key, iv, input)
- def sc_decrypt(type, laid_paid, iv, input):
- key = sc_form_key(type, laid_paid)
- return aes_decrypt_cbc(key, iv, input)
- def sc_combine_laid_paid(laid, paid):
- laid_paid_fmt = '>QQ'
- return struct.pack(laid_paid_fmt, laid, paid)
- def vtrm_get_laid_paid_from_type(type):
- if not type in [0, 1, 2, 3]:
- raise Exception('Wrong type specified')
- if type == 0:
- laid_paid = sc_combine_laid_paid(0xFFFFFFFFFFFFFFFFL, 0xFFFFFFFFFFFFFFFFL)
- elif type == 1:
- laid_paid = sc_combine_laid_paid(0x1070000002000001L, 0x1070000000000001L)
- elif type == 2:
- laid_paid = sc_combine_laid_paid(0x1070000002000001L, 0x0000000000000000L)
- elif type == 3:
- laid_paid = sc_combine_laid_paid(0x1070000002000001L, 0x10700003FF000001L)
- def vtrm_encrypt(type, iv, input):
- return sc_encrypt(3, vtrm_get_laid_paid_from_type(type), iv, input)
- def vtrm_decrypt(type, iv, input):
- return sc_decrypt(3, vtrm_get_laid_paid_from_type(type), iv, input)
- def vtrm_encrypt_master_0(laid, paid, iv, input):
- return sc_encrypt(4.0, sc_combine_laid_paid(laid, paid), iv, input)
- def vtrm_encrypt_master_1(laid, paid, iv, input):
- return sc_encrypt(4.1, sc_combine_laid_paid(laid, paid), iv, input)
- def vtrm_encrypt_master_2(laid, paid, iv, input):
- return sc_encrypt(4.2, sc_combine_laid_paid(laid, paid), iv, input)
- def vtrm_decrypt_master_0(laid, paid, iv, input):
- return sc_decrypt(4.0, sc_combine_laid_paid(laid, paid), iv, input)
- def vtrm_decrypt_master_1(laid, paid, iv, input):
- return sc_decrypt(4.1, sc_combine_laid_paid(laid, paid), iv, input)
- def vtrm_decrypt_master_2(laid, paid, iv, input):
- return sc_decrypt(4.2, sc_combine_laid_paid(laid, paid), iv, input)
- def vtrm_portability_type_mapper(type):
- return { 0: 1, 1: 3, 2: 2, 3: 5 }.get(type)
- def vtrm_portability_laid_paid():
- return sc_combine_laid_paid(0x0, 0x0) # TODO
- def vtrm_encrypt_with_portability(type, iv, input):
- return sc_encrypt(vtrm_portability_type_mapper(type), vtrm_portability_laid_paid(), iv, input)
- def vtrm_decrypt_with_portability(type, iv, input):
- return sc_decrypt(vtrm_portability_type_mapper(type), vtrm_portability_laid_paid(), iv, input)
- def test():
- laid_0, paid_0 = 0x1070000001000001L, 0x1070000045000001L # USB_AUTHENTICATOR
- laid_1, paid_1 = 0x1070000002000001L, 0x10700005FF000001L # VSH
- laid_2, paid_2 = 0x1070000002000001L, 0x1070000052000001L # np_trophy
- laid_3, paid_3 = 0x1070000002000001L, 0x107000004E000001L # AD_SIGN
- print "\n"
- print "USB_DONGLE_MASTER_KEY upto 3.55"
- master_key = '22D5D18CFFE24FACEC72A242A71898102533E096F2C1910D1523D30774E72B72DFA6DDE9688B762A6A87517F85390BD4203F46890482B73084894BCC9DB1247C'.decode('hex')
- master_iv = '5F5553425F444F4E474C455F41555448'.decode('hex')
- master_magic = '5F5553425F444F4E474C455F'.decode('hex')
- master_output = vtrm_decrypt_master_1(laid_0, paid_0, master_iv, master_key)
- print "KEY:", master_output[len(master_magic): 0x20] .encode('hex'), "\n"
- print "USB_DONGLE_MASTER_KEY 3.60+"
- master_key = '8E5145764B66352D694A38D6F871CD1A2526D98E0F3D2DD21FDCFCCF1CF7285FC66EC703DB627F86AAF6B95511D864DD3472C359A0C483A3F7C15B403253D8C3'.decode('hex')
- master_iv = '5F5553425F444F4E474C455F41555448'.decode('hex')
- master_magic = '5F5553425F444F4E474C455F'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_0, paid_0, master_iv, master_key)
- print "KEY:", master_output[len(master_magic): 0x20] .encode('hex'), "\n"
- print "X-PLATFORM-PASSPHRASE 3.50-3.56 CEX/DEX/DECR"
- master_key = '70E6B03F7A364D04091E923D492EAB66B496D3A4D9E40E107B911E1B8B04A7F055C55E6F7AA8374D05169ACBFFDFFB74E86FC3D020078D06112EBE84428A8A72'.decode('hex')
- master_iv = '5890372A42712C50DBA995FFD30FC80C'.decode('hex')
- master_magic = '6438313831396666'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = '09138F12484EA4F0D04CEDF4B82280E43CB588767503D5EFB170AA194D427D4FCAD86C5A2BE0C38074228675105D4099630138067959B9629653DD677D244FA3'.decode('hex')
- master_iv = '5890372A42712C50DBA995FFD30FC80C'.decode('hex')
- master_magic = '6438313831396666'.decode('hex')
- master_output = vtrm_decrypt_master_1(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):], "\n"
- print "X-PLATFORM-PASSPHRASE 3.60-3.61 CEX/DEX/DECR"
- master_key = '13F9B82E731E0F3B33A58723BB35759EB5E1E85E531E394E9D51CB1918B7DE34F9E3C990862244DFA113D6BACFCD1BB7C77A9D3D9EDB1BC46B2BECFEFA8A486A'.decode('hex')
- master_iv = '0E2B5FAEB84E528418D7A8011E0897AE'.decode('hex')
- master_magic = '6162666535373465'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = '92CD150E531638E5C504DE6259E459D811F22CBE05A32A1B19D1DAFF0EA5A03F883281EA6B89DFE641BACBC5874D62C171F99BE7B3B931A23B0B948C8C82CED8'.decode('hex')
- master_iv = '0E2B5FAEB84E528418D7A8011E0897AE'.decode('hex')
- master_magic = '6162666535373465'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):], "\n"
- print "X-PLATFORM-PASSPHRASE 3.65-3.66 CEX"
- master_key = '13F9B82E731E0F3B33A58723BB35759EB5E1E85E531E394E9D51CB1918B7DE34F9E3C990862244DFA113D6BACFCD1BB7C77A9D3D9EDB1BC46B2BECFEFA8A486A'.decode('hex')
- master_iv = '0E2B5FAEB84E528418D7A8011E0897AE'.decode('hex')
- master_magic = '6162666535373465'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = '92CD150E531638E5C504DE6259E459D811F22CBE05A32A1B19D1DAFF0EA5A03F883281EA6B89DFE641BACBC5874D62C171F99BE7B3B931A23B0B948C8C82CED8'.decode('hex')
- master_iv = '0E2B5FAEB84E528418D7A8011E0897AE'.decode('hex')
- master_magic = '6162666535373465'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):]
- master_key = 'DB916811ABB4BC6C51254E14399A2D2751481AB20059EBEF04DE808C7676090D4962FCFFC5ECEF6CA6C70D7263C2AD06C90756F030B139B9215A0173F5AF9B5B'.decode('hex')
- master_iv = 'E93A6A1088E68AC88A376F0C8DF516A1'.decode('hex')
- master_magic = '3463623533383533'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY2:", master_output[len(master_magic):]
- master_key = '4874DAE67C8B44FD6B6A0B83DBF6BB9C3C45EE44C5E65D3F98BD3CF327CB7420E1753A22AE30EF6F3094FB93D922B112E39A6C9DB45C3E5010C7DBF6E59851FA'.decode('hex')
- master_iv = 'E93A6A1088E68AC88A376F0C8DF516A1'.decode('hex')
- master_magic = '3463623533383533'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY3:", master_output[len(master_magic):], "\n"
- print "X-PLATFORM-PASSPHRASE 3.65-3.66 DEX"
- master_key = '533BFDACB05DB79720386C0B1E47A1B884E6FF3654ED370674FB229F56C5D8EC3C674A9568C68FB748A03F9B3089C3010FFE543BAD5167807D5B32DD2CDFE25B'.decode('hex')
- master_iv = '16D5B7ACC407DFCB13439F83D4437A76'.decode('hex')
- master_magic = '3578787075696377'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = 'F9A293E9DC2E70B342A760EE57935829AE1C3BDC006AC0E1371D376B5F4536D4825D811CC29CA6883C37FAC2B101AF77F22D66B184D63595D60ADB1742F6138E'.decode('hex')
- master_iv = '16D5B7ACC407DFCB13439F83D4437A76'.decode('hex')
- master_magic = '3578787075696377'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):]
- master_key = '718EE2D1C190AFFEBE2C9AC4130C6BF985F1DF2F519E0099E5F79EBA593293BAA9C853EF3E291279C73100B196AB751CBF98CAD8866DC4B0DEA93FAFE3C0B7C0'.decode('hex')
- master_iv = 'E84C298B081CFE0B1C6EDC707BFEE2AB'.decode('hex')
- master_magic = '3261303239336435'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY2:", master_output[len(master_magic):]
- master_key = '4007EE74BB5414127756348B1D68605054B4370E2DF834FB8C9DF2B8E78582376BF0ACCD8A02373592DDF6DCEDC2ED1192E61B5571F09F39044D746C0F5E5BB7'.decode('hex')
- master_iv = 'E84C298B081CFE0B1C6EDC707BFEE2AB'.decode('hex')
- master_magic = '3261303239336435'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY3:", master_output[len(master_magic):], "\n"
- print "X-PLATFORM-PASSPHRASE 3.70-4.00 CEX/DEX"
- master_key = '13F9B82E731E0F3B33A58723BB35759EB5E1E85E531E394E9D51CB1918B7DE34F9E3C990862244DFA113D6BACFCD1BB7C77A9D3D9EDB1BC46B2BECFEFA8A486A'.decode('hex')
- master_iv = '0E2B5FAEB84E528418D7A8011E0897AE'.decode('hex')
- master_magic = '6162666535373465'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = '92CD150E531638E5C504DE6259E459D811F22CBE05A32A1B19D1DAFF0EA5A03F883281EA6B89DFE641BACBC5874D62C171F99BE7B3B931A23B0B948C8C82CED8'.decode('hex')
- master_iv = '0E2B5FAEB84E528418D7A8011E0897AE'.decode('hex')
- master_magic = '6162666535373465'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):]
- master_key = '5D2F3C16A28A5B79EC6611248A5542525D7154F4D2DC5A140D0FF853CE7B681AA14A36899A03BF18BEC2F3B898218834E51F0504ED1C36CFA0574CD0F6AFA4AD'.decode('hex')
- master_iv = '9826F8E6714DF41E768EEA81AA87BF39'.decode('hex')
- master_magic = '3636613263643533'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY2:", master_output[len(master_magic):]
- master_key = 'FBD2E4A297A129F0071B8CC4F7F1B67B31FE23C359CF9C6106639B5013667F8C778E1F11BB2CB824728F26DFF1D6347D75E45F379928CCF74ED334FD7333EBCC'.decode('hex')
- master_iv = '9826F8E6714DF41E768EEA81AA87BF39'.decode('hex')
- master_magic = '3636613263643533'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY3:", master_output[len(master_magic):], "\n"
- print "X-PLATFORM-PASSPHRASE 4.10-4.11_CEX"
- master_key = '5D2F3C16A28A5B79EC6611248A5542525D7154F4D2DC5A140D0FF853CE7B681AA14A36899A03BF18BEC2F3B898218834E51F0504ED1C36CFA0574CD0F6AFA4AD'.decode('hex')
- master_iv = '9826F8E6714DF41E768EEA81AA87BF39'.decode('hex')
- master_magic = '3636613263643533'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = 'FBD2E4A297A129F0071B8CC4F7F1B67B31FE23C359CF9C6106639B5013667F8C778E1F11BB2CB824728F26DFF1D6347D75E45F379928CCF74ED334FD7333EBCC'.decode('hex')
- master_iv = '9826F8E6714DF41E768EEA81AA87BF39'.decode('hex')
- master_magic = '3636613263643533'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):]
- master_key = 'FE44B5DFBC45C33A86FCD1451703C45A1380322A374243A41849CA579920297BE053199681EBE7E7C183ED78C8C62E7C6584D36665F6CCA761F28EACA6241D45'.decode('hex')
- master_iv = 'A24BBE5EFA5EE57101A67315DDEFD9A8'.decode('hex')
- master_magic = '6330373937633564'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY2:", master_output[len(master_magic):]
- master_key = 'B55A7496DC4C083106C8A5D85C9AEB86620AB06895FC26ADB4B0D6CB985B5BBF90629170F109633D13CF499C45EE3D245C8A5AB817D7F8E1FF336BEA52902E70'.decode('hex')
- master_iv = 'A24BBE5EFA5EE57101A67315DDEFD9A8'.decode('hex')
- master_magic = '6330373937633564'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY3:", master_output[len(master_magic):], "\n"
- print "X-PLATFORM-PASSPHRASE 4.20-4.25 CEX"
- master_key = 'FE44B5DFBC45C33A86FCD1451703C45A1380322A374243A41849CA579920297BE053199681EBE7E7C183ED78C8C62E7C6584D36665F6CCA761F28EACA6241D45'.decode('hex')
- master_iv = 'A24BBE5EFA5EE57101A67315DDEFD9A8'.decode('hex')
- master_magic = '6330373937633564'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = 'B55A7496DC4C083106C8A5D85C9AEB86620AB06895FC26ADB4B0D6CB985B5BBF90629170F109633D13CF499C45EE3D245C8A5AB817D7F8E1FF336BEA52902E70'.decode('hex')
- master_iv = 'A24BBE5EFA5EE57101A67315DDEFD9A8'.decode('hex')
- master_magic = '6330373937633564'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):]
- master_key = '14A3214C53270849D615B2A2694F24C7FB391D0CC3380B127B2A5F0CFF9989FE4EDF0F1E467B2C7F2C8FAFD403240D92E97A4B6EAA3C3838920D8F5CD89F2A75'.decode('hex')
- master_iv = 'FDC8669ED56E00B16F3C419254F5A5AE'.decode('hex')
- master_magic = '7275636665717677'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY2:", master_output[len(master_magic):]
- master_key = 'DED52102FC0640D59CB25A698EE97B3833044964FFED34F1CC9AC383317D91AB0C94B86F1FEEA0687981CCF5692D2B500AF9B9F871C89E0C5A79902F4EBD4E13'.decode('hex')
- master_iv = 'FDC8669ED56E00B16F3C419254F5A5AE'.decode('hex')
- master_magic = '7275636665717677'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY3:", master_output[len(master_magic):], "\n"
- print "X-PLATFORM-PASSPHRASE 4.30-4.80 CEX"
- master_key = '14A3214C53270849D615B2A2694F24C7FB391D0CC3380B127B2A5F0CFF9989FE4EDF0F1E467B2C7F2C8FAFD403240D92E97A4B6EAA3C3838920D8F5CD89F2A75'.decode('hex')
- master_iv = 'FDC8669ED56E00B16F3C419254F5A5AE'.decode('hex')
- master_magic = '7275636665717677'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = 'DED52102FC0640D59CB25A698EE97B3833044964FFED34F1CC9AC383317D91AB0C94B86F1FEEA0687981CCF5692D2B500AF9B9F871C89E0C5A79902F4EBD4E13'.decode('hex')
- master_iv = 'FDC8669ED56E00B16F3C419254F5A5AE'.decode('hex')
- master_magic = '7275636665717677'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):]
- master_key = 'D70421F2929CE3656BAC5DF8B19A5C27130290C6EA04F0BEB27D13DC204E4F259A3E485AA76D50F58467BD9ED776075565913AC88D2BCC2B2FA4D65F08281FA2'.decode('hex')
- master_iv = 'EDF4AE21E798B263032436D757A76383'.decode('hex')
- master_magic = '6237666538303262'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY2:", master_output[len(master_magic):]
- master_key = '4C4ED1961D409C3BFAEE60A59A80CB0DEFC2CE93877A386716158CA5A8EE26608E0E03DE05BBEDD0D4033840B50EB85730B22508C2AEF9D387BD594D1944AE83'.decode('hex')
- master_iv = 'EDF4AE21E798B263032436D757A76383'.decode('hex')
- master_magic = '6237666538303262'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY3:", master_output[len(master_magic):], "\n"
- print "Sysconf_plugin"
- master_key = 'CD861E6B3F623037EAD75EDCA20172CA629A36F7D9BA6BB6974BFD755E4419DABD2CC50FE575094C337AE27ACC35738E659F96A682D4EBDD6E31E19256B95876'.decode('hex')
- master_iv = '54671E7C11357A933C66E61ECAF22E9C'.decode('hex')
- master_magic = '5343455F5243525F686F73746E616D65'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY0:", master_output[len(master_magic):]
- master_key = 'EB924B4A49CB1F640A748E78F794AAFEAC432B11609049BE9658ED4D92CC2BAB15590983444DD833208E2BC7932AEF85D1E1F27206FC474E49954EA016B31FA9'.decode('hex')
- master_iv = '261430D594B47295D35E8721FA05819D'.decode('hex')
- master_magic = '5343455F5243525F686F73746E616D65'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY1:", master_output[len(master_magic):]
- master_key = 'F5977DFAFC041E8684F5B77E510AE95996CC069D7C0E70A5EDDBF43166F0656B5D62A79198A92F79FA26B56DB175E88AE7262A7D014D4165B6E5E317FD962C74'.decode('hex')
- master_iv = '54671E7C11357A933C66E61ECAF22E9C'.decode('hex')
- master_magic = '5343455F43444E5F686F73746E616D65'.decode('hex')
- master_output = vtrm_decrypt_master_2(laid_1, paid_1, master_iv, master_key)
- print "KEY2:", master_output[len(master_magic):]
- master_key = '61F6AD87D6A98EB627CE5384381DDB0E3E163C7F19E29872C5E051FBCB4AE95AC47E800C35298E91FED306CC88CF73B1EF3A2713AA5B7FF305AF7C355F3E21BB'.decode('hex')
- master_iv = '261430D594B47295D35E8721FA05819D'.decode('hex')
- master_magic = '5343455F43444E5F686F73746E616D65'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_1, paid_1, master_iv, master_key)
- print "KEY3:", master_output[len(master_magic):], "\n"
- print "SCEI_AD_SIGN"
- master_key = 'E8542AFF1FA7D015FF50D54856CAEFD163FA187E9ACA1F6563156AD424C84C1C18DD9DEBBDD1015AC4CBC9DB5200340CCFF40B7274335D0BF865FB12E4FD26D3'.decode('hex')
- master_iv = '792B4AE1B4107A97230A2326DAF030A9'.decode('hex')
- master_magic = '534345495F41445F5349474E00000000'.decode('hex')
- master_output = vtrm_decrypt_master_1(laid_3, paid_3, master_iv, master_key)
- print "RIV0:", master_output[len(master_magic): 0x20] .encode('hex')
- print "KEY0:", master_output[len(master_magic)+0x10: 0x30] .encode('hex')
- master_key = 'B71533C40E0209F4181A5A28F0A1C50616DA68AC5ADF1DC6594F5D546D927A2E89755DB623BE5732251BAE414AC1FB5F252F6CB85CEBDF1E959A678B2E90507A'.decode('hex')
- master_iv = '792B4AE1B4107A97230A2326DAF030A9'.decode('hex')
- master_magic = '534345495F41445F5349474E00000000'.decode('hex')
- master_output = vtrm_decrypt_master_0(laid_3, paid_3, master_iv, master_key)
- print "RIV1:", master_output[len(master_magic): 0x20] .encode('hex')
- print "KEY1:", master_output[len(master_magic)+0x10: 0x30] .encode('hex'), "\n"
- test()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement