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 isinstance函数介绍
Apr 14 Python
Python基于pygame实现图片代替鼠标移动效果
Nov 11 Python
python算法演练_One Rule 算法(详解)
May 17 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
python实现自主查询实时天气
Jun 22 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
tensorflow常用函数API介绍
Apr 19 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
python中xlrd模块的使用详解
Feb 01 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
php输出表格的实现代码(修正版)
2010/12/29 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
PDO::inTransaction讲解
2019/01/28 PHP
取选中的radio的值
2010/01/11 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
JavaScript函数详解
2014/11/17 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
Python heapq使用详解及实例代码
2017/01/25 Python
flask应用部署到服务器的方法
2019/07/12 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python实现简单井字棋游戏
2020/03/04 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
教学器材管理制度
2014/01/26 职场文书
出纳担保书范文
2014/04/02 职场文书
学生请假条
2014/04/11 职场文书
地理科学专业自荐信
2014/09/01 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA