› Foros › PlayStation 3 › Scene
joseedgar escribió:ala a estudiarlo
69 6D 70 6F 72 74 20 68 61 73 68 6C 69 62 0D 0A 69 6D 70 6F 72 74 20 73 79 73 0D 0A 69 6D 70 6F 72 74 20 6F 70 65 72 61 74 6F 72 0D 0A 0D 0A 64 65 66 20 67 65 74 5F 6B 6C 69 63 65 6E 73 65 28 66 69 6C 65 6E 29 3A 0D 0A 0D 0A 09 0D 0A 09 66 69 6C 65 20 3D 20 4E 6F 6E 65 0D 0A 09 66 69 6C 65 20 3D 20 6F 70 65 6E 28 66 69 6C 65 6E 2C 20 27 72 62 27 29 0D 0A 0D 0A 09 23 43 68 65 63 6B 20 69 66 20 69 74 27 73 20 61 20 50 4B 47 20 66 69 6C 65 0D 0A 09 66 69 6C 65 2E 73 65 65 6B 28 31 29 0D 0A 09 69 66 20 66 69 6C 65 2E 72 65 61 64 28 33 29 2E 65 6E 63 6F 64 65 28 27 68 65 78 27 29 2E 75 70 70 65 72 28 29 20 21 3D 20 22 35 30 34 42 34 37 22 3A 0D 0A 09 09 72 65 74 75 72 6E 20 22 45 72 72 6F 72 20 2D 20 74 68 69 73 20 69 73 20 6E 6F 74 20 61 20 76 61 6C 69 64 20 50 4B 47 20 66 69 6C 65 21 22 0D 0A 0D 0A 0D 0A 09 23 4D 65 74 61 64 61 74 61 20 73 74 61 72 74 73 20 68 65 72 65 0D 0A 09 66 69 6C 65 2E 73 65 65 6B 28 30 78 36 30 29 0D 0A 0D 0A 09 23 52 65 61 64 20 69 6E 20 61 6C 6C 20 74 68 65 20 64 61 74 61 20 70 61 72 74 73 20 61 6E 64 20 62 75 69 6C 64 20 61 20 78 6F 72 20 6B 65 79 0D 0A 09 64 61 74 61 5F 61 20 3D 20 66 69 6C 65 2E 72 65 61 64 28 38 29 0D 0A 09 64 61 74 61 5F 62 20 3D 20 66 69 6C 65 2E 72 65 61 64 28 38 29 0D 0A 09 64 61 74 61 5F 63 20 3D 20 22 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 30 30 5C 78 46 46 5C 78 46 46 5C 78 46 46 5C 78 46 46 5C 78 46 46 5C 78 46 46 5C 78 46 46 5C 78 46 46 22 0D 0A 09 78 6F 72 5F 6B 65 79 20 3D 20 68 61 73 68 6C 69 62 2E 73 68 61 31 28 64 61 74 61 5F 61 20 2B 20 64 61 74 61 5F 61 20 2B 20 64 61 74 61 5F 62 20 2B 20 64 61 74 61 5F 62 20 2B 20 64 61 74 61 5F 63 29 2E 64 69 67 65 73 74 28 29 0D 0A 0D 0A 09 23 52 65 61 64 20 69 6E 20 74 68 65 20 65 6E 63 72 79 70 74 65 64 20 6B 5F 6C 69 63 65 6E 73 65 0D 0A 09 63 72 79 70 74 65 64 5F 6C 69 63 20 3D 20 66 69 6C 65 2E 72 65 61 64 28 30 78 31 30 29 0D 0A 0D 0A 09 23 50 72 65 70 20 76 61 72 20 66 6F 72 20 64 65 63 72 79 70 74 69 6F 6E 0D 0A 09 64 65 63 72 79 70 74 65 64 5F 6C 69 63 20 3D 20 22 22 0D 0A 0D 0A 09 23 78 6F 72 2D 64 65 63 72 79 70 74 20 74 68 65 20 6B 5F 6C 69 63 65 6E 73 65 0D 0A 09 66 6F 72 20 69 20 69 6E 20 72 61 6E 67 65 28 30 2C 20 30 78 31 30 29 3A 0D 0A 09 09 61 20 3D 20 6F 72 64 28 78 6F 72 5F 6B 65 79 5B 69 5D 29 0D 0A 09 09 62 20 3D 20 6F 72 64 28 63 72 79 70 74 65 64 5F 6C 69 63 5B 69 5D 29 0D 0A 09 09 63 20 3D 20 63 68 72 28 6F 70 65 72 61 74 6F 72 2E 78 6F 72 28 61 2C 62 29 29 0D 0A 0D 0A 09 09 64 65 63 72 79 70 74 65 64 5F 6C 69 63 20 3D 20 64 65 63 72 79 70 74 65 64 5F 6C 69 63 20 2B 20 63 0D 0A 0D 0A 09 23 63 6C 6F 73 65 20 74 68 65 20 66 69 6C 65 2C 20 72 65 74 75 72 6E 20 6B 5F 6C 69 63 65 6E 73 65 20 61 73 20 68 65 78 20 73 74 72 69 6E 67 0D 0A 0D 0A 09 69 66 20 66 69 6C 65 20 69 73 20 6E 6F 74 20 4E 6F 6E 65 3A 20 66 69 6C 65 2E 63 6C 6F 73 65 28 29 0D 0A 09 72 65 74 75 72 6E 20 22 4B 5F 6C 69 63 65 6E 73 65 65 20 3D 20 30 78 22 2B 64 65 63 72 79 70 74 65 64 5F 6C 69 63 2E 65 6E 63 6F 64 65 28 27 68 65 78 27 29 2E 75 70 70 65 72 28 29 0D 0A 09 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 23 23 20 4D 41 49 4E 20 23 23 0D 0A 64 65 66 20 5F 5F 6D 61 69 6E 28 66 6E 61 6D 65 29 3A 0D 0A 09 6B 6C 69 63 20 3D 20 67 65 74 5F 6B 6C 69 63 65 6E 73 65 28 66 6E 61 6D 65 29 0D 0A 09 70 72 69 6E 74 28 6B 6C 69 63 29 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 5F 5F 6D 61 69 6E 28 73 79 73 2E 61 72 67 76 5B 31 3A 5D 5B 30 5D 29
import hashlib
import sys
import operator
def get_klicense(filen):
file = None
file = open(filen, 'rb')
#Check if it's a PKG file
file.seek(1)
if file.read(3).encode('hex').upper() != "504B47":
return "Error - this is not a valid PKG file!"
#Metadata starts here
file.seek(0x60)
#Read in all the data parts and build a xor key
data_a = file.read(8)
data_b = file.read(8)
data_c = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
xor_key = hashlib.sha1(data_a + data_a + data_b + data_b + data_c).digest()
#Read in the encrypted k_license
crypted_lic = file.read(0x10)
#Prep var for decryption
decrypted_lic = ""
#xor-decrypt the k_license
for i in range(0, 0x10):
a = ord(xor_key[i])
b = ord(crypted_lic[i])
c = chr(operator.xor(a,b))
decrypted_lic = decrypted_lic + c
#close the file, return k_license as hex string
if file is not None: file.close()
return "K_licensee = 0x"+decrypted_lic.encode('hex').upper()
## MAIN ##
def __main(fname):
klic = get_klicense(fname)
print(klic)
__main(sys.argv[1:][0])
the_god escribió:emu interno de psx (y psp) alla vamos
dark_on_5 escribió:the_god escribió:emu interno de psx (y psp) alla vamos
???
Que tendrá que ver uno con otro...