]> xmof Git - DeDRM.git/commitdiff
mobidedrm 0.05
authorPaul Durrant <paul@durrant.co.uk>
Tue, 16 Dec 2008 22:03:38 +0000 (22:03 +0000)
committerApprentice Alf <apprenticealf@gmail.com>
Thu, 26 Feb 2015 07:04:14 +0000 (07:04 +0000)
Kindle_Mobi_Tools/lib/mobidedrm.py

index 3f46e779acb7e0b2d599ff8efea80746e4d7fc52..5963b914a5bd7052727a57734b19c6f95c1522d2 100644 (file)
@@ -4,8 +4,9 @@
 # Changelog
 #  0.01 - Initial version
 #  0.02 - Huffdic compressed books were not properly decrypted
-#  0.03 - fix 0.02 to work with all Mobipocket eBooks
-#  0.04 - Wasn't checking MOBI header length
+#  0.03 - Wasn't checking MOBI header length
+#  0.04 - Wasn't sanity checking size of data record
+#  0.05 - It seems that the extra data flags take two bytes not four
 
 import sys,struct,binascii
 
@@ -140,7 +141,7 @@ class DrmStripper:
                mobi_length, = struct.unpack('>L',sect[0x14:0x18])
                extra_data_flags = 0
                if mobi_length >= 0xE4:
-                       extra_data_flags, = struct.unpack('>L', sect[0xF0:0xF4])
+                       extra_data_flags, = struct.unpack('>H', sect[0xF2:0xF4])
 
 
                crypto_type, = struct.unpack('>H', sect[0xC:0xC+2])
@@ -170,7 +171,7 @@ class DrmStripper:
        def getResult(self):
                return self.data_file
 
-print "MobiDeDrm v0.04. Copyright (c) 2008 The Dark Reverser"
+print "MobiDeDrm v0.05. Copyright (c) 2008 The Dark Reverser"
 if len(sys.argv)<4:
        print "Removes protection from Mobipocket books"
        print "Usage:"