tools v6.0.3

This commit is contained in:
Apprentice Alf 2013-04-08 16:47:22 +01:00
parent d586f74faa
commit 51919284ca
12 changed files with 89 additions and 30 deletions

View File

@ -24,9 +24,11 @@
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>droplet</string> <string>droplet</string>
<key>CFBundleGetInfoString</key> <key>CFBundleGetInfoString</key>
<string>DeDRM AppleScript 6.0.2. Written 20102013 by Apprentice Alf and others.</string> <string>DeDRM AppleScript 6.0.3. Written 20102013 by Apprentice Alf and others.</string>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>DeDRM</string> <string>DeDRM</string>
<key>CFBundleIdentifier</key>
<string>com.apple.ScriptEditor.id.707CCCD5-0C6C-4BEB-B67C-B6E866ADE85A</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
@ -34,7 +36,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>6.0.2</string> <string>6.0.3</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>dplt</string> <string>dplt</string>
<key>LSRequiresCarbon</key> <key>LSRequiresCarbon</key>
@ -48,9 +50,9 @@
<key>name</key> <key>name</key>
<string>ScriptWindowState</string> <string>ScriptWindowState</string>
<key>positionOfDivider</key> <key>positionOfDivider</key>
<real>0</real> <real>0.0</real>
<key>savedFrame</key> <key>savedFrame</key>
<string>1616 -35 765 818 1440 -180 1920 1080 </string> <string>320 125 1002 753 0 0 1440 878 </string>
<key>selectedTabView</key> <key>selectedTabView</key>
<string>event log</string> <string>event log</string>
</dict> </dict>

View File

@ -1,4 +1,4 @@
{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
{\fonttbl} {\fonttbl}
{\colortbl;\red255\green255\blue255;} {\colortbl;\red255\green255\blue255;}
} }

View File

@ -18,6 +18,7 @@ from __future__ import with_statement
# 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility # 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility
# 1.6 - Fixed a problem getting the disk serial numbers # 1.6 - Fixed a problem getting the disk serial numbers
# 1.7 - Work if TkInter is missing # 1.7 - Work if TkInter is missing
# 1.8 - Fixes for Kindle for Mac, and non-ascii in Windows user names
""" """
@ -25,7 +26,7 @@ Retrieve Kindle for PC/Mac user key.
""" """
__license__ = 'GPL v3' __license__ = 'GPL v3'
__version__ = '1.7' __version__ = '1.8'
import sys, os, re import sys, os, re
from struct import pack, unpack, unpack_from from struct import pack, unpack, unpack_from
@ -1142,7 +1143,7 @@ if iswindows:
DB[keyname] = cleartext DB[keyname] = cleartext
if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB: if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB:
print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName()) print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName().decode("latin-1"))
# store values used in decryption # store values used in decryption
DB['IDString'] = GetIDString() DB['IDString'] = GetIDString()
DB['UserName'] = GetUserName() DB['UserName'] = GetUserName()
@ -1521,20 +1522,32 @@ elif isosx:
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .kinf2011 files # check for .kinf2011 files from 1.10
testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011' testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .rainier-2.1.1-kinf files # check for .rainier-2.1.1-kinf files from 1.6
testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf' testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac rainier file: ' + testpath) print('Found k4Mac rainier file: ' + testpath)
found = True found = True
# check for .kindle-info files # check for .kindle-info files from 1.4
testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info' testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.2.2
testpath = home + '/Library/Application Support/Amazon/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.0 beta 1 (27214)
testpath = home + '/Library/Application Support/Amazon/Kindle for Mac/storage/.kindle-info'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath) print('Found k4Mac kindle-info file: ' + testpath)

View File

@ -7,9 +7,10 @@
# Revision history: # Revision history:
# 6.0.0 - Release along with unified plugin # 6.0.0 - Release along with unified plugin
# 6.0.1 - Bug Fixes for Windows App # 6.0.1 - Bug Fixes for Windows App
# 6.0.2 - Changes only in the plugin so far # 6.0.2 - Fixed problem with spaces in paths and the bat file
# 6.0.3 - Fix for Windows non-ascii user names
__version__ = '6.0.2' __version__ = '6.0.3'
import sys import sys
import os, os.path import os, os.path

View File

@ -18,6 +18,7 @@ from __future__ import with_statement
# 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility # 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility
# 1.6 - Fixed a problem getting the disk serial numbers # 1.6 - Fixed a problem getting the disk serial numbers
# 1.7 - Work if TkInter is missing # 1.7 - Work if TkInter is missing
# 1.8 - Fixes for Kindle for Mac, and non-ascii in Windows user names
""" """
@ -25,7 +26,7 @@ Retrieve Kindle for PC/Mac user key.
""" """
__license__ = 'GPL v3' __license__ = 'GPL v3'
__version__ = '1.7' __version__ = '1.8'
import sys, os, re import sys, os, re
from struct import pack, unpack, unpack_from from struct import pack, unpack, unpack_from
@ -1142,7 +1143,7 @@ if iswindows:
DB[keyname] = cleartext DB[keyname] = cleartext
if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB: if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB:
print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName()) print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName().decode("latin-1"))
# store values used in decryption # store values used in decryption
DB['IDString'] = GetIDString() DB['IDString'] = GetIDString()
DB['UserName'] = GetUserName() DB['UserName'] = GetUserName()
@ -1521,20 +1522,32 @@ elif isosx:
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .kinf2011 files # check for .kinf2011 files from 1.10
testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011' testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .rainier-2.1.1-kinf files # check for .rainier-2.1.1-kinf files from 1.6
testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf' testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac rainier file: ' + testpath) print('Found k4Mac rainier file: ' + testpath)
found = True found = True
# check for .kindle-info files # check for .kindle-info files from 1.4
testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info' testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.2.2
testpath = home + '/Library/Application Support/Amazon/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.0 beta 1 (27214)
testpath = home + '/Library/Application Support/Amazon/Kindle for Mac/storage/.kindle-info'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath) print('Found k4Mac kindle-info file: ' + testpath)

View File

@ -27,14 +27,15 @@ __docformat__ = 'restructuredtext en'
# Revision history: # Revision history:
# 6.0.0 - Initial release # 6.0.0 - Initial release
# 6.0.1 - Bug Fixes for Windows App, Kindle for Mac and Windows Adobe Digital Editions # 6.0.1 - Bug Fixes for Windows App, Kindle for Mac and Windows Adobe Digital Editions
# 6.0.2 - Restored call to Wine to get Kindle for PC keys # 6.0.2 - Restored call to Wine to get Kindle for PC keys, added for ADE
# 6.0.3 - Fixes for Kindle for Mac and Windows non-ascii user names
""" """
Decrypt DRMed ebooks. Decrypt DRMed ebooks.
""" """
PLUGIN_NAME = u"DeDRM" PLUGIN_NAME = u"DeDRM"
PLUGIN_VERSION_TUPLE = (6, 0, 2) PLUGIN_VERSION_TUPLE = (6, 0, 3)
PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE]) PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE])
# Include an html helpfile in the plugin's zipfile with the following name. # Include an html helpfile in the plugin's zipfile with the following name.
RESOURCE_NAME = PLUGIN_NAME + '_Help.htm' RESOURCE_NAME = PLUGIN_NAME + '_Help.htm'

View File

@ -18,6 +18,7 @@ from __future__ import with_statement
# 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility # 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility
# 1.6 - Fixed a problem getting the disk serial numbers # 1.6 - Fixed a problem getting the disk serial numbers
# 1.7 - Work if TkInter is missing # 1.7 - Work if TkInter is missing
# 1.8 - Fixes for Kindle for Mac, and non-ascii in Windows user names
""" """
@ -25,7 +26,7 @@ Retrieve Kindle for PC/Mac user key.
""" """
__license__ = 'GPL v3' __license__ = 'GPL v3'
__version__ = '1.7' __version__ = '1.8'
import sys, os, re import sys, os, re
from struct import pack, unpack, unpack_from from struct import pack, unpack, unpack_from
@ -1142,7 +1143,7 @@ if iswindows:
DB[keyname] = cleartext DB[keyname] = cleartext
if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB: if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB:
print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName()) print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName().decode("latin-1"))
# store values used in decryption # store values used in decryption
DB['IDString'] = GetIDString() DB['IDString'] = GetIDString()
DB['UserName'] = GetUserName() DB['UserName'] = GetUserName()
@ -1521,20 +1522,32 @@ elif isosx:
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .kinf2011 files # check for .kinf2011 files from 1.10
testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011' testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .rainier-2.1.1-kinf files # check for .rainier-2.1.1-kinf files from 1.6
testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf' testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac rainier file: ' + testpath) print('Found k4Mac rainier file: ' + testpath)
found = True found = True
# check for .kindle-info files # check for .kindle-info files from 1.4
testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info' testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.2.2
testpath = home + '/Library/Application Support/Amazon/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.0 beta 1 (27214)
testpath = home + '/Library/Application Support/Amazon/Kindle for Mac/storage/.kindle-info'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath) print('Found k4Mac kindle-info file: ' + testpath)

View File

@ -18,6 +18,7 @@ from __future__ import with_statement
# 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility # 1.5 - moved unicode_argv call inside main for Windows DeDRM compatibility
# 1.6 - Fixed a problem getting the disk serial numbers # 1.6 - Fixed a problem getting the disk serial numbers
# 1.7 - Work if TkInter is missing # 1.7 - Work if TkInter is missing
# 1.8 - Fixes for Kindle for Mac, and non-ascii in Windows user names
""" """
@ -25,7 +26,7 @@ Retrieve Kindle for PC/Mac user key.
""" """
__license__ = 'GPL v3' __license__ = 'GPL v3'
__version__ = '1.7' __version__ = '1.8'
import sys, os, re import sys, os, re
from struct import pack, unpack, unpack_from from struct import pack, unpack, unpack_from
@ -1142,7 +1143,7 @@ if iswindows:
DB[keyname] = cleartext DB[keyname] = cleartext
if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB: if 'MazamaRandomNumber' in DB and 'kindle.account.tokens' in DB:
print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName()) print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(GetIDString(), GetUserName().decode("latin-1"))
# store values used in decryption # store values used in decryption
DB['IDString'] = GetIDString() DB['IDString'] = GetIDString()
DB['UserName'] = GetUserName() DB['UserName'] = GetUserName()
@ -1521,20 +1522,32 @@ elif isosx:
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .kinf2011 files # check for .kinf2011 files from 1.10
testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011' testpath = home + '/Library/Application Support/Kindle/storage/.kinf2011'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kinf2011 file: ' + testpath) print('Found k4Mac kinf2011 file: ' + testpath)
found = True found = True
# check for .rainier-2.1.1-kinf files # check for .rainier-2.1.1-kinf files from 1.6
testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf' testpath = home + '/Library/Application Support/Kindle/storage/.rainier-2.1.1-kinf'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac rainier file: ' + testpath) print('Found k4Mac rainier file: ' + testpath)
found = True found = True
# check for .kindle-info files # check for .kindle-info files from 1.4
testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info' testpath = home + '/Library/Application Support/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.2.2
testpath = home + '/Library/Application Support/Amazon/Kindle/storage/.kindle-info'
if os.path.isfile(testpath):
kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath)
found = True
# check for .kindle-info file from 1.0 beta 1 (27214)
testpath = home + '/Library/Application Support/Amazon/Kindle for Mac/storage/.kindle-info'
if os.path.isfile(testpath): if os.path.isfile(testpath):
kInfoFiles.append(testpath) kInfoFiles.append(testpath)
print('Found k4Mac kindle-info file: ' + testpath) print('Found k4Mac kindle-info file: ' + testpath)

View File

@ -1,7 +1,7 @@
Welcome to the tools! Welcome to the tools!
===================== =====================
This ReadMe_First.txt is meant to give users a quick overview of what is available and how to get started. This document is part of the Tools v6.0.2 archive from Apprentice Alf's Blog: http://apprenticealf.wordpress.com/ This ReadMe_First.txt is meant to give users a quick overview of what is available and how to get started. This document is part of the Tools v6.0.3 archive from Apprentice Alf's Blog: http://apprenticealf.wordpress.com/
The is archive includes tools to remove DRM from: The is archive includes tools to remove DRM from:
@ -85,6 +85,9 @@ A Javascript to enable a download button at the B&N website for ebooks that norm
Scuolabook_DRM Scuolabook_DRM
A windows-only application (including source code) for removing DRM from ScuolaBooks PDFs, created by "Hex" and included with permission. A windows-only application (including source code) for removing DRM from ScuolaBooks PDFs, created by "Hex" and included with permission.
Rocket_ebooks
Information about the now-obsolete Rocket ebook format and DRM, along with source for a tool to remove the DRM.