示例#1
0
def sophos_scan(this_file):
    my_sophos = sophos_engine()
    results = my_sophos.scan(PickleableFileSample.string_factory(this_file))
    file_md5_hash = hashlib.md5(this_file).hexdigest().upper()
    found = is_hash_in_db(file_md5_hash)
    if found:
        found['user_uploads'][-1].setdefault('av_results', []).append(scan_to_dict(results, 'Sophos'))
        if results.infected:
            found['user_uploads'][-1]['detection_ratio']['infected'] += 1
        found['user_uploads'][-1]['detection_ratio']['count'] += 1
        data = found
    else:
        data = dict(md5=file_md5_hash)
        data['user_uploads'][-1].setdefault('av_results', []).append(scan_to_dict(results, 'Sophos'))
    db_insert(data)
    return data