python實現(xiàn)上傳樣本到virustotal并查詢掃描信息的方法
本文實例講述了python實現(xiàn)上傳樣本到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
返回的結(jié)果為:{u'Sophos': u'Sus/Behav-1010'},如果有掃描出的結(jié)果的話..
調(diào)用的方法如下:
MD5 = "12fa5fb74201d9b6a14f63fbf9a81ff6" #do not have report on virustotal.com MD5 = "5248f774d2ee0a10936d0b1dc89107f1" FILE_PATH = r"D:\backSample\10\9af41bc012d66c98ca2f9c68ba38e98f_ICQLiteShell.dll" from getVirusTotalInfo import VirusTotal #得到掃描結(jié)果并打印出來 virus_total = VirusTotal(MD5) print virus_total.get_report_dict() #提交文件到掃描,以后就可以根據(jù)這個MD5取掃描結(jié)果了 virus_total.submit_md5(FILE_PATH)
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
使用Selenium控制當前已經(jīng)打開的chrome瀏覽器窗口
有時通過selenium打開網(wǎng)站時,發(fā)現(xiàn)有些網(wǎng)站需要掃碼登錄,就很頭疼,導(dǎo)致爬蟲進展不下去,下面這篇文章主要給大家介紹了關(guān)于使用Selenium控制當前已經(jīng)打開的chrome瀏覽器窗口的相關(guān)資料,需要的朋友可以參考下2022-07-07
使用OpenCV實現(xiàn)仿射變換—旋轉(zhuǎn)功能
這篇文章主要介紹了在OpenCV里實現(xiàn)仿射變換——旋轉(zhuǎn)功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Python 使用xlwt模塊將多行多列數(shù)據(jù)循環(huán)寫入excel文檔的操作
這篇文章主要介紹了Python 使用xlwt模塊將多行多列數(shù)據(jù)循環(huán)寫入excel文檔的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
關(guān)于tensorflow softmax函數(shù)用法解析
這篇文章主要介紹了關(guān)于tensorflow softmax函數(shù)用法解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
保姆級官方y(tǒng)olov7訓(xùn)練自己的數(shù)據(jù)集及項目部署詳解
最近使用了YOLOv7訓(xùn)練自己的數(shù)據(jù)集,接下來簡單記錄一下項目的部署,這篇文章主要給大家介紹了關(guān)于保姆級官方y(tǒng)olov7訓(xùn)練自己的數(shù)據(jù)集及項目部署的相關(guān)資料,需要的朋友可以參考下2022-08-08

