前提
导入的py脚本为《数据处理 | pandas处理数据后输出为Excel表格》
🐍Python🐍
逻辑
- 遍历文件夹
- 获取PE文件的ImpHash
2.1 判断是否是PE文件
2.1.1 是:获取ImpHash
- 获取ImpHash一致的文件MD5
3.1 对比指定的ImpHash
3.1.1一致:获取文件MD5
代码
import osimport refrom 遍历文件夹提取文件名andMD5andImpHash import PE_isPEfrom 遍历文件夹提取文件名andMD5andImpHash import PE_GetImpHashfrom 遍历文件夹提取文件名andMD5andImpHash import GetFileMD5msgStart = r"——————————Python脚本开始——————————"msgEnd = r"——————————Python脚本结束——————————"strNewLine = "\r\n"def EnumFile2CmpImphash(pathDir, theImpHash):print("——————————遍历开始——————————")for home, dirs, files in os.walk(pathDir):for file in files:pathFile = os.path.join(home, file)# 查看是否是PE文件,是则获取其ImpHashisPE = PE_isPE(pathFile)if isPE:# 获取ImpHashfileImpHash = PE_GetImpHash(pathFile)else:# 提示非PEfileImpHash = "非PE"try:# 忽略大小写比较ImpHash字符串if (re.search(fileImpHash, theImpHash, re.IGNORECASE)):# ImpHash相同的PE获取其MD5fileMD5 = GetFileMD5(pathFile)print("ImpHash相同的文件信息", strNewLine + "路径:" + pathFile + strNewLine + "MD5:", fileMD5 + strNewLine)except:continueprint("——————————遍历完成——————————")# 输入需要扫描的文件夹路径和指定的ImpHashpathDir = (r'D:\')theImpHashStopV2 = "FB36740C126064E8D052AD24F396D94D"if __name__ == '__main__':print(msgStart)EnumFile2CmpImphash(pathDir, theImpHashStopV2)print(msgEnd)
运行结果

