summaryrefslogtreecommitdiffstats
path: root/DeDRM_Macintosh_Application
diff options
context:
space:
mode:
authorApprentice Alf <[email protected]>2013-02-04 14:25:25 +0000
committerApprentice Alf <[email protected]>2015-03-07 14:25:39 +0000
commit490ee4e5d8f568b3eb84858b22912b07617fc6ee (patch)
tree07ec03740725a783dfe125d5d8a085bd9ac99526 /DeDRM_Macintosh_Application
parentc23b9034209b8c9448dc298bdc3807fa6933779b (diff)
tools v5.6.1
Diffstat (limited to 'DeDRM_Macintosh_Application')
-rw-r--r--DeDRM_Macintosh_Application/DeDRM ReadMe.rtf2
-rw-r--r--DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist6
-rw-r--r--DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scptbin269068 -> 273522 bytes
-rw-r--r--DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py20
-rw-r--r--DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py16
-rw-r--r--DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py25
6 files changed, 36 insertions, 33 deletions
diff --git a/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf b/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf
index b6f5244..99c6d57 100644
--- a/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf
+++ b/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf
@@ -41,7 +41,7 @@ Mac OS X 10.5 and above: You do
\i not
\i0 need to install Python.\
\
-Drag the DeDRM application from from tools_v5.6\\DeDRM_Applications\\Macintosh (the location of this ReadMe) to your Applications folder, or anywhere else you find convenient.\
+Drag the DeDRM application from from tools_v5.6.1\\DeDRM_Applications\\Macintosh (the location of this ReadMe) to your Applications folder, or anywhere else you find convenient.\
\
\
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist
index eee088f..2c12ee2 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist
@@ -24,17 +24,17 @@
<key>CFBundleExecutable</key>
<string>droplet</string>
<key>CFBundleGetInfoString</key>
- <string>DeDRM 5.6. AppleScript written 2010–2013 by Apprentice Alf and others.</string>
+ <string>DeDRM 5.6.1. AppleScript written 2010–2013 by Apprentice Alf and others.</string>
<key>CFBundleIconFile</key>
<string>DeDRM</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
- <string>DeDRM 5.6</string>
+ <string>DeDRM 5.6.1</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>5.6</string>
+ <string>5.6.1</string>
<key>CFBundleSignature</key>
<string>dplt</string>
<key>LSRequiresCarbon</key>
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt
index 2108e07..a0000f4 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt
Binary files differ
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py
index 476844c..bb9289e 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py
@@ -208,7 +208,7 @@ CryptUnprotectData = CryptUnprotectData()
def getKindleInfoFiles():
kInfoFiles = []
# some 64 bit machines do not have the proper registry key for some reason
- # or the pythonn interface to the 32 vs 64 bit registry is broken
+ # or the python interface to the 32 vs 64 bit registry is broken
path = ""
if 'LOCALAPPDATA' in os.environ.keys():
path = os.environ['LOCALAPPDATA']
@@ -217,17 +217,17 @@ def getKindleInfoFiles():
try:
regkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\\")
path = winreg.QueryValueEx(regkey, 'Local AppData')[0]
+ except WindowsError:
+ pass
+ if not os.path.isdir(path):
+ path = ""
+ try:
+ regkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\")
+ path = winreg.QueryValueEx(regkey, 'Local AppData')[0]
+ except WindowsError:
+ pass
if not os.path.isdir(path):
path = ""
- try:
- regkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\")
- path = winreg.QueryValueEx(regkey, 'Local AppData')[0]
- if not os.path.isdir(path):
- path = ""
- except RegError:
- pass
- except RegError:
- pass
found = False
if path == "":
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py
index 38c5e4e..d16c017 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py
@@ -8,6 +8,7 @@
# 0.2 Added support for generating PID for iPhone (thanks to mbp)
# 0.3 changed to autoflush stdout, fixed return code usage
# 0.3 updated for unicode
+# 0.4 Added support for serial numbers starting with '9', fixed unicode bugs.
import sys
import binascii
@@ -63,7 +64,7 @@ def unicode_argv():
xrange(start, argc.value)]
# if we don't have any arguments at all, just pass back script name
# this should never happen
- return [u"mobidedrm.py"]
+ return [u"kindlepid.py"]
else:
argvencoding = sys.stdin.encoding
if argvencoding == None:
@@ -92,7 +93,6 @@ def checksumPid(s):
return res
-
def pidFromSerial(s, l):
crc = crc32(s)
@@ -113,27 +113,27 @@ def pidFromSerial(s, l):
def cli_main(argv=unicode_argv()):
print u"Mobipocket PID calculator for Amazon Kindle. Copyright © 2007, 2009 Igor Skochinsky"
- if len(sys.argv)==2:
- serial = sys.argv[1]
+ if len(argv)==2:
+ serial = argv[1]
else:
print u"Usage: kindlepid.py <Kindle Serial Number>/<iPhone/iPod Touch UDID>"
return 1
if len(serial)==16:
- if serial.startswith("B"):
+ if serial.startswith("B") or serial.startswith("9"):
print u"Kindle serial number detected"
else:
print u"Warning: unrecognized serial number. Please recheck input."
return 1
pid = pidFromSerial(serial.encode("utf-8"),7)+'*'
- print u"Mobipocket PID for Kindle serial#{0} is {1} ".format(serial,checksumPid(pid))
+ print u"Mobipocket PID for Kindle serial#{0} is {1}".format(serial,checksumPid(pid))
return 0
elif len(serial)==40:
print u"iPhone serial number (UDID) detected"
pid = pidFromSerial(serial.encode("utf-8"),8)
- print u"Mobipocket PID for iPhone serial#{0} is {1} ".format(serial,checksumPid(pid))
+ print u"Mobipocket PID for iPhone serial#{0} is {1}".format(serial,checksumPid(pid))
return 0
print u"Warning: unrecognized serial number. Please recheck input."
- return 1
+ return 1
if __name__ == "__main__":
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py
index 113f57a..264c175 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py
@@ -66,9 +66,10 @@
# 0.36 - fixed problem with TEXtREAd and getBookTitle interface
# 0.37 - Fixed double announcement for stand-alone operation
# 0.38 - Unicode used wherever possible, cope with absent alfcrypto
+# 0.39 - Fixed problem with TEXtREAd and getBookType interface
-__version__ = u"0.38"
+__version__ = u"0.39"
import sys
import os
@@ -268,19 +269,22 @@ class MobiBook:
self.records, = struct.unpack('>H', self.sect[0x8:0x8+2])
self.compression, = struct.unpack('>H', self.sect[0x0:0x0+2])
+ # det default values before PalmDoc test
+ self.print_replica = False
+ self.extra_data_flags = 0
+ self.meta_array = {}
+ self.mobi_length = 0
+ self.mobi_codepage = 1252
+ self.mobi_version = -1
+
if self.magic == 'TEXtREAd':
print u"PalmDoc format book detected."
- self.extra_data_flags = 0
- self.mobi_length = 0
- self.mobi_codepage = 1252
- self.mobi_version = -1
- self.meta_array = {}
return
+
self.mobi_length, = struct.unpack('>L',self.sect[0x14:0x18])
self.mobi_codepage, = struct.unpack('>L',self.sect[0x1c:0x20])
self.mobi_version, = struct.unpack('>L',self.sect[0x68:0x6C])
print u"MOBI header version {0:d}, header length {1:d}".format(self.mobi_version, self.mobi_length)
- self.extra_data_flags = 0
if (self.mobi_length >= 0xE4) and (self.mobi_version >= 5):
self.extra_data_flags, = struct.unpack('>H', self.sect[0xF2:0xF4])
print u"Extra Data Flags: {0:d}".format(self.extra_data_flags)
@@ -290,7 +294,6 @@ class MobiBook:
self.extra_data_flags &= 0xFFFE
# if exth region exists parse it for metadata array
- self.meta_array = {}
try:
exth_flag, = struct.unpack('>L', self.sect[0x80:0x84])
exth = ''
@@ -313,9 +316,7 @@ class MobiBook:
# print type, size, content, content.encode('hex')
pos += size
except:
- self.meta_array = {}
pass
- self.print_replica = False
def getBookTitle(self):
codec_map = {
@@ -406,7 +407,9 @@ class MobiBook:
return u"Print Replica"
if self.mobi_version >= 8:
return u"Kindle Format 8"
- return u"Mobipocket"
+ if self.mobi_version >= 0:
+ return u"Mobipocket {0:d}".format(self.mobi_version)
+ return u"PalmDoc"
def getBookExtension(self):
if self.print_replica: