NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name VirusTotal Linkify (Old and New VT) // @namespace https://www.virustotal.com/ // @version 1.0.0 // @description Changes SHA-256 hash on VirusTotal result pages to VTi search links and always displays menu. // @author fwosar - edited by Bropezka to work with the old VT as well // @match https://*.virustotal.com/* // @grant none // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @updateURL https://openuserjs.org/meta/fwosar/VirusTotal_Linkify.meta.js // ==/UserScript== function linkifyHash() { function getElementByXpath(path) { return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } function searchUrl(h) { return 'https://www.virustotal.com/intelligence/search/?query=' + h.trim(); } var xpath = '//*[@id="basic-info"]//*/tbody/tr[1]/td[2]'; var hashElement = getElementByXpath(xpath); if (hashElement) { var hash = hashElement.textContent; hashElement.innerHTML = '<a href="' + searchUrl(hash) + '">' + hash + '</a>'; } } waitForKeyElements("#basic-info", linkifyHash); //New version of Virustotal function linkifyHash2() { function getElementByXpath(path) { return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } function searchUrl(h) { return 'https://www.virustotal.com/intelligence/search/?query=' + h.trim(); } var xpath = '//*[@id="file-summary"]/tbody/tr[1]/td'; var hashElement = getElementByXpath(xpath); if (hashElement) { var hash = hashElement.textContent; hashElement.innerHTML = '<a href="' + searchUrl(hash) + '">' + hash + '</a>'; } } function adjustMenu() { if(!$('#itemActionsMenu').hasClass('opened')){ $('#itemActionsMenu').addClass('opened'); } } waitForKeyElements("#itemActionsMenu", adjustMenu); waitForKeyElements("#file-summary", linkifyHash2);