From 2d51005cf141d267fc4b278f742d319e1515a17d Mon Sep 17 00:00:00 2001 From: NoDRM Date: Sat, 19 Mar 2022 16:41:59 +0100 Subject: [PATCH] Fix print-replica Amazon books --- CHANGELOG.md | 4 +++- DeDRM_plugin/mobidedrm.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 92d6670..4cb498b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,4 +61,6 @@ List of changes since the fork of Apprentice Harper's repository: - Add support for books with the new ADE3.0+ DRM by merging #48 by a980e066a01. Thanks a lot! - Remove OpenSSL support, now the plugin will always use the Python crypto libraries. - Obok: Fix issues with invalid UTF-8 characters by merging #26 by baby-bell. -- Try to fix PDF files with V3 key obfuscation algorithm. +- ineptpdf: Fix broken V=3 key obfuscation algorithm. +- ineptpdf: (Hopefully) fix issues with some B&N PDF files. +- Fix bug that corrupts output file for Print-Replica Amazon books (fixes #30). diff --git a/DeDRM_plugin/mobidedrm.py b/DeDRM_plugin/mobidedrm.py index c57b884..902edd1 100755 --- a/DeDRM_plugin/mobidedrm.py +++ b/DeDRM_plugin/mobidedrm.py @@ -453,7 +453,7 @@ class MobiBook: if crypto_type == 0: print("This book is not encrypted.") # we must still check for Print Replica - self.print_replica = (self.loadSection(1)[0:4] == '%MOP') + self.print_replica = (self.loadSection(1)[0:4] == b'%MOP') self.mobi_data = self.data_file return if crypto_type != 2 and crypto_type != 1: @@ -524,7 +524,7 @@ class MobiBook: # print "record %d, extra_size %d" %(i,extra_size) decoded_data = PC1(found_key, data[0:len(data) - extra_size]) if i==1: - self.print_replica = (decoded_data[0:4] == '%MOP') + self.print_replica = (decoded_data[0:4] == b'%MOP') mobidataList.append(decoded_data) if extra_size > 0: mobidataList.append(data[-extra_size:])