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字典快速保存于读取的方法
Mar 23 Python
Django如何配置mysql数据库
May 04 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
Python实现的爬取小说爬虫功能示例
Mar 30 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
Django的models模型的具体使用
Jul 15 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
Python谱减法语音降噪实例
Dec 18 Python
python实现小程序推送页面收录脚本
Apr 20 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
改变 Python 中线程执行顺序的方法
Sep 24 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获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
jQuery的attr与prop使用介绍
2013/10/10 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
python中元组的用法整理
2020/06/15 Python
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
经理管理专业自荐信范文
2013/12/31 职场文书
杜甫草堂导游词
2015/02/03 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书