From bf1161192ed680e2eac91be377371edfd85682c2 Mon Sep 17 00:00:00 2001 From: Paul Durrant Date: Tue, 16 Dec 2008 22:03:38 +0000 Subject: [PATCH] mobidedrm 0.05 --- Kindle_Mobi_Tools/lib/mobidedrm.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Kindle_Mobi_Tools/lib/mobidedrm.py b/Kindle_Mobi_Tools/lib/mobidedrm.py index 3f46e77..5963b91 100644 --- a/Kindle_Mobi_Tools/lib/mobidedrm.py +++ b/Kindle_Mobi_Tools/lib/mobidedrm.py @@ -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:"