python实现上传样本到virustotal并查询扫描信息的方法


Posted in Python onOctober 05, 2014

本文实例讲述了python实现上传样本到virustotal并查询扫描信息的方法。分享给大家供大家参考。具体方法如下:

import simplejson 
import urllib 
import urllib2 
import os  
 
MD5 = "5248f774d2ee0a10936d0b1dc89107f1" 
MD5 = "12fa5fb74201d9b6a14f63fbf9a81ff6" #do not have report on virustotal.com 
       
######################################################################## 
APIKEY = "e0a50a50e77fxxxxxxxxxxxxxx4f17e31 这里用你自己在virustotal上申请的账号的KEY" 
 
 
class VirusTotal: 
  """""" 
 
  def __init__(self, md5): 
    """Constructor""" 
    self._virus_dict = {} 
    self._md5 = md5 
     
     
  def repr(self): 
    return str(self._virus_dict) 
   
  def submit_md5(self, file_path): 
    import postfile                                      
    #submit the file 
    FILE_NAME = os.path.basename(file_path)  
               
                                                  
    host = "www.virustotal.com"                                
    selector = "https://www.virustotal.com/vtapi/v2/file/scan"                 
    fields = [("apikey", APIKEY)] 
    file_to_send = open(file_path, "rb").read()                        
    files = [("file", FILE_NAME, file_to_send)]                        
    json = postfile.post_multipart(host, selector, fields, files)               
    print json 
    pass 
   
  def get_report_dict(self): 
    result_dict = {} 
     
    url = "https://www.virustotal.com/vtapi/v2/file/report" 
    parameters = {"resource": self._md5, 
            "apikey": APIKEY} 
    data = urllib.urlencode(parameters) 
    req = urllib2.Request(url, data) 
    response = urllib2.urlopen(req) 
    json = response.read() 
     
    response_dict = simplejson.loads(json) 
    if response_dict["response_code"]: #has result  
      scans_dict = response_dict.get("scans", {}) 
      for anti_virus_comany, virus_name in scans_dict.iteritems(): 
        if virus_name["detected"]: 
          self._virus_dict.setdefault(anti_virus_comany, virus_name["result"]) 
    return self._virus_dict

返回的结果为:{u'Sophos': u'Sus/Behav-1010'},如果有扫描出的结果的话..

调用的方法如下:

MD5 = "12fa5fb74201d9b6a14f63fbf9a81ff6" #do not have report on virustotal.com 
MD5 = "5248f774d2ee0a10936d0b1dc89107f1" 
FILE_PATH = r"D:\backSample\10\9af41bc012d66c98ca2f9c68ba38e98f_ICQLiteShell.dll" 
 
from getVirusTotalInfo import VirusTotal 
#得到扫描结果并打印出来 
virus_total = VirusTotal(MD5) 
print virus_total.get_report_dict() 
 
#提交文件到扫描,以后就可以根据这个MD5取扫描结果了 
virus_total.submit_md5(FILE_PATH)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
安装dbus-python的简要教程
May 05 Python
python中Apriori算法实现讲解
Dec 10 Python
Python设计模式之观察者模式简单示例
Jan 10 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
Python2包含中文报错的解决方法
Jul 09 Python
解决python3 pika之连接断开的问题
Dec 18 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
python对接ihuyi实现短信验证码发送
May 10 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 Python
python实现计算资源图标crc值的方法
Oct 05 #Python
python求crc32值的方法
Oct 05 #Python
Python获取文件ssdeep值的方法
Oct 05 #Python
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 #Python
python获取文件版本信息、公司名和产品名的方法
Oct 05 #Python
python实现调用其他python脚本的方法
Oct 05 #Python
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 #Python
You might like
php实现mysql同步的实现方法
2009/10/21 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
深入解析php之apc
2013/05/15 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
初中生自我鉴定
2014/02/04 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
建党伟业观后感
2015/06/01 职场文书
文艺演出主持词
2015/07/01 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电