对于课堂作业,我正在分析亚马逊的 Kindle 数字版权管理实施的工作原理以及如何克服它。在我的研究中,我遇到了一组 Python 脚本,它们可以从加密中提取图书数据。它符合我解释论文中加密破解部分的需要。
问题是,我不流利地使用 Python,或者除了print 'Hello World'
.
在通过源代码工作时,我遇到了这个片段
def __init__(self, infile):
# initial sanity check on file
self.data_file = file(infile, 'rb').read()
self.mobi_data = ''
self.header = self.data_file[0:78]
if self.header[0x3C:0x3C+8] != 'BOOKMOBI' and self.header[0x3C:0x3C+8] != 'TEXtREAd':
raise DrmException("invalid file format")
self.magic = self.header[0x3C:0x3C+8]
self.crypto_type = -1
我对代码的解释是这样的:
self.data_file
是调用时返回read()
的字节数组。file(infile, 'rb')
self.header
是数据文件前79个字节的值
我遇到的问题是什么self.header[0x3C:0x3C+8]
意思?