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实现自动更换ip的方法
May 05 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python实现计算对象的内存大小示例
Jul 10 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
python实现密码强度校验
Mar 18 Python
基于python实现查询ip地址来源
Jun 02 Python
pycharm 关掉syntax检查操作
Jun 09 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 Python
Python音乐爬虫完美绕过反爬
Aug 30 Python
PyTorch中的torch.cat简单介绍
Mar 17 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
我的群发邮件程序
2006/10/09 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
简单的渐变轮播插件
2017/01/12 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
使用python实现省市三级菜单效果
2016/01/20 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
Internet体系结构
2014/12/21 面试题
数控机械专业个人的自我评价
2014/01/02 职场文书
高校教师自荐信范文
2014/03/13 职场文书
我爱读书演讲稿
2014/05/07 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
如何写辞职信
2015/05/13 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python