分析PDF文件以检测恶意文件

分析PDF文件以检测恶意文件,pdf,hash,output,Pdf,Hash,Output,我用python编写了一个检测恶意PDF的代码。 我分析的每个文件都计算其哈希值并将其保存在哈希数据库中,同时将输出保存在文本文件中。 如果我想扫描另一个文件,我计算了它的散列值,然后在散列数据库中搜索它,如果找到,我打印已经存在的文本的输出。 但如果散列值不存在,则会将其保存,并将输出保存在文本文件中 我需要关于如何在哈希值和包含输出的文本之间链接的帮助 如前所述,您可以使用哈希表。哈希表类似于字典。在python中,我相信它们被称为字典。欲了解更多信息,请查看此处: 就你的问题而言,你有多种

我用python编写了一个检测恶意PDF的代码。 我分析的每个文件都计算其哈希值并将其保存在哈希数据库中,同时将输出保存在文本文件中。 如果我想扫描另一个文件,我计算了它的散列值,然后在散列数据库中搜索它,如果找到,我打印已经存在的文本的输出。 但如果散列值不存在,则会将其保存,并将输出保存在文本文件中

我需要关于如何在哈希值和包含输出的文本之间链接的帮助

如前所述,您可以使用哈希表。哈希表类似于字典。在python中,我相信它们被称为字典。欲了解更多信息,请查看此处:

就你的问题而言,你有多种选择。你必须在某个时候保存你的“数据库”,你可以用多种不同的格式保存它。您可以将其保存为JSON文件(一种非常流行的样式)。它可能是一个XML文件(也很流行)。您甚至可以将其保存为CSV(虽然不那么流行,但它可以完成任务)。为此,假设您将此“数据库”保存在如下所示的文本文件中:

5A4730FC12097346FDF558916C373D3{C:\PdfsOutput\FileName.txt}662ad9b45e0f30333a433566cee8988d{C:\PdfsOutput\SomeOtherFile.txt}

基本上,您将其格式化为
HashValue{PathToFileOnDisk}…
然后您可以通过类似于
[0-9a-f]{32}{[^\}]+
的正则表达式解析它,然后在启动时使用该正则表达式扫描数据库,加载所有匹配项,迭代所有匹配项,将每个匹配项拆分为“{”,然后将
值拆分为[0]
输入字典作为键,该文本文件的路径作为该键的值

因此,在执行正则表达式搜索后,获取匹配项并对其进行迭代,在迭代循环中说:

ValueSplit=RegexMatch.split(“{”)
HashAndFileDict[ValueSplit[0]]=ValueSplit[1]
此代码假定循环中的正则表达式匹配是一个简单称为“RegexMatch”的字符串。它还假定存储哈希值和路径的字典名为“HashAndFileDict”

稍后在代码中,您可以通过以下方式检查有问题的PDF哈希值:

if(!HashAndFileDict.hash_键(PDFHashValue):
TextFilePath=savepdfouttext(pdf文件)
HashAndFileDict[PDFHashValue]=文本文件路径
其他:
打印(“文件已处理。文本位于:”+HashAndFileDict[PDFHashValue])



如果可以的话,最好使用两种哈希算法,并将它们的十六进制摘要合并成一个字符串,以防止在处理许多PDF文件时发生冲突。

如果您使用的是数据库,为什么不为文本输出添加另一列。不,我想要一种简单的方法。我不使用数据库哦,您说的是哈希数据库,所以我假设您是使用数据库。如果你正在处理它的本地文件。为什么不使用哈希表?这是什么?我如何使用它?它可以链接到上面的文本文件吗?我建议你开始研究。我相信你的问题甚至可以用一个简单的二维数组来解决。