def parseDebian(packages_file):
""" Parse debian package list to dict (name:version) """
result = {}
if args.clean==True: first_field = 0
else: first_field = 1
for line in packages_file:
if args.clean==True or line[:2] == 'ii':
fields = line.split()
if len(fields) < 2 + first_field: continue
# Software name
search = fields[first_field].find(':')
if search != -1:
soft_name = cleanName(fields[first_field][:search])
else:
soft_name = cleanName(fields[first_field])
# Version
search = re.search(r"-|\+|~", fields[first_field + 1])
if search:
soft_version = fields[first_field + 1][:search.span()[0]]
else:
soft_version = fields[first_field + 1]
search = soft_version.find(':')
if search != -1:
soft_version = soft_version[search + 1:]
soft_version = purgeVersionString(soft_version)
# Format check
if not soft_name or not soft_version: continue
# Intense package name split
if args.intense and '-' in soft_name:
for sub_package in soft_name.split('-'):
if len(sub_package)>2 and '.' not in sub_package and sub_package not in badpackages: result[sub_package] = soft_version
else:
if soft_name not in badpackages: result[soft_name] = soft_version
return result
linux-soft-exploit-suggester.py 文件源码
python
阅读 34
收藏 0
点赞 0
评论 0
评论列表
文章目录