View Single Post
Old 07-18-2008, 08:39 AM   #11
red_dragon
Daywalker
red_dragon is on a distinguished road
 
Posts: 29
Karma: 52
Join Date: Jul 2008
Device: Kindle Paperwhite
You could disable the PID check and examine what mobidedrm expects. After making the changes you have to pass a 8 char PID to the python program:

(Be careful with the indentions)

Code:
	def __init__(self, data_file, pid):
### BEGIN NEW CODE ###
		# Calculate PID checksum if just the first 8 chars are specified
		if len(pid) == 8:
			pid = checksumPid(pid)
			print "Full PID is %s" % pid
### END NEW CODE ###
		if checksumPid(pid[0:-2]) != pid:
			raise DrmException("invalid PID checksum")
		pid = pid[0:-2]

Does it work for you?

If the decrypted result is garbage then your PID is not correct.

-Red Dragon

Last edited by red_dragon; 07-18-2008 at 08:44 AM. Reason: clarification and spelling
red_dragon is offline   Reply With Quote