對於課堂作業,我正在分析亞馬遜的Kindle數字版權管理實施如何運作以及如何擊敗它。在我的研究中,我遇到了一組從加密中提取出書本數據的Python腳本。它符合我對解釋我的論文加密破解部分的需求。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]
這個問題的價值?
'[0:78]'的長度是78,而不是79.切片不包含結尾值,所以它是'0..77'。 –
@MarkRansom,我使用的大多數代碼都具有包含的最後一個值,不是唯一的。謝謝你的提示。 – Jason