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 相关文章推荐
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
Python导出数据到Excel可读取的CSV文件的方法
May 12 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
在windows下Python打印彩色字体的方法
May 15 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
Aug 09 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
如何教少儿学习Python编程
Jul 10 Python
Python软件包安装的三种常见方法
Jul 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扩展函数
2006/10/09 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
js获取div高度的代码
2008/08/09 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
2012/10/12 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
javascript中的隐式调用
2018/02/10 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
英文简历中的自我评价
2013/10/06 职场文书
实习自我评价怎么写
2013/12/02 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
六查六看六改心得体会
2014/10/14 职场文书
事业单位考察材料范文
2014/12/25 职场文书
2015年教研员工作总结
2015/05/26 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python