From 4fbb767bccce80b934d1c92a1a6c7726714b6494 Mon Sep 17 00:00:00 2001 From: DaAwesomeP Date: Sun, 25 Oct 2015 21:17:59 -0500 Subject: [PATCH] Add new icon attribute, add SVG support --- .gitignore | 1 + .travis.yml | 2 +- bin/wappalyzer-build | 6 +- bin/wappalyzer-validate-icons | 46 +- docker/Dockerfile | 2 +- docker/node/package.json | 3 +- schema.json | 4 + src/apps.json | 16539 +++++++++++++++++--------------- 8 files changed, 8722 insertions(+), 7881 deletions(-) diff --git a/.gitignore b/.gitignore index 4c244fbaa..4cb371265 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ build/* drivers/npm/node_modules drivers/npm/npm-debug.log +package.json node_modules/ npm-debug.log diff --git a/.travis.yml b/.travis.yml index 7e80fd13a..cb8bcca5a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ install: - sudo apt-get update -y - sudo apt-get install -y curl zip sudo -y --force-yes - sudo apt-get clean - - npm install jsonlint jpm imagemin-cli -g + - npm install jsonlint jpm imagemin-cli svgo -g - ln -s docker/node/package.json package.json && npm install - mkdir phantomjs && curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2 | tar xvjC phantomjs && ln -s $WAPPALYZER_ROOT/phantomjs/phantomjs-*-linux-x86_64/bin/phantomjs bin/phantomjs script: wappalyzer build diff --git a/bin/wappalyzer-build b/bin/wappalyzer-build index 5aedbf510..5c774b1ad 100755 --- a/bin/wappalyzer-build +++ b/bin/wappalyzer-build @@ -15,10 +15,14 @@ echo "Prettifying apps.json..." jsonlint -ist $'\t' $WAPPALYZER_ROOT/src/apps.json -echo "Compressing icons..." +echo "Compressing PNG icons..." imagemin $WAPPALYZER_ROOT/src/icons $WAPPALYZER_ROOT/src/icons -o 3 +echo "Compressing PNG icons..." + +svgo -f $WAPPALYZER_ROOT/src/icons $WAPPALYZER_ROOT/src/icons + wappalyzer links # Npm Module diff --git a/bin/wappalyzer-validate-icons b/bin/wappalyzer-validate-icons index e840ec5fd..38a8cb2bf 100755 --- a/bin/wappalyzer-validate-icons +++ b/bin/wappalyzer-validate-icons @@ -6,23 +6,45 @@ var fs = require('fs'), fileType = require(modulesPath + 'file-type'), readChunk = require(modulesPath + 'read-chunk') + isSvg = require(modulesPath + 'is-svg') json = require(process.env.WAPPALYZER_ROOT + '/src/apps.json'); -for ( app in json.apps ) { +for (app in json.apps) { (function(app) { - var path = process.env.WAPPALYZER_ROOT + '/src/icons/' + app + '.png'; - + var basePath = process.env.WAPPALYZER_ROOT + '/src/icons/'; + var iconPath = json.apps[app].icon; + var path = basePath + iconPath; + + var type; + if (path.substr(path.length - 4) === '.png') { + type = "PNG"; + } + else if (path.substr(path.length - 4) === '.svg') { + type = "SVG"; + } + else { + var err = new Error('Icon file extension specified for app "' + app + '" is not ".png" or ".svg": src/icons/' + iconPath); + throw err; + } + fs.exists(path, function(exists) { - var buffer; - - if ( exists ) { - buffer = fileType(readChunk.sync(path, 0, 262)); - - if ( buffer.mime !== 'image/png' ) { - throw new Error('Incorrect mimetype "' + buffer.mime + '": src/icons/' + app + '.png'); - } + if (exists) { + if (type === "PNG") { + var buffer = fileType(readChunk.sync(path, 0, 262)); + if (buffer.mime !== 'image/png') { + var err = new Error('Incorrect mimetype "' + buffer.mime + '" when expected PNG for app "' + app + '": src/icons/' + iconPath); + throw err; + } + } + else if (type === "SVG") { + if (!isSvg(fs.readFileSync(path))) { + var err = new Error('Incorrect mimetype when expected SVG for app "' + app + '": src/icons/' + iconPath); + throw err; + } + } } else { - throw new Error('Missing file: src/icons/' + app + '.png'); + var err = new Error('Missing file for app "' + app + '": src/icons/' + iconPath); + throw err; } }); }(app)); diff --git a/docker/Dockerfile b/docker/Dockerfile index 627c8a774..857cf65a6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -32,7 +32,7 @@ RUN su wappalyzer -c "mkdir $WAPPALYZER_NODE_PATH" ADD node/package.json $WAPPALYZER_NODE_PATH/package.json -RUN npm install jsonlint jpm imagemin-cli -g && su wappalyzer -c "cd $WAPPALYZER_NODE_PATH && npm install" +RUN npm install jsonlint jpm imagemin-cli svgo -g && su wappalyzer -c "cd $WAPPALYZER_NODE_PATH && npm install" # PhantomJS diff --git a/docker/node/package.json b/docker/node/package.json index dec35339d..e3174ad53 100644 --- a/docker/node/package.json +++ b/docker/node/package.json @@ -1,6 +1,7 @@ { "devDependencies": { - "file-type": "2.2.*", + "file-type": "3.1.*", + "is-svg": "1.1.*", "read-chunk": "1.0.*" } } diff --git a/schema.json b/schema.json index e7256b144..8be26af2a 100644 --- a/schema.json +++ b/schema.json @@ -74,6 +74,10 @@ "website": { "type": "string", "required": true + }, + "icon": { + "type": "string", + "required": true } } } diff --git a/src/apps.json b/src/apps.json index 729f3a1b8..c3d3ef4c1 100755 --- a/src/apps.json +++ b/src/apps.json @@ -1,7867 +1,8676 @@ { - "apps": { - "1C-Bitrix": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "BITRIX_", - "X-Powered-CMS": "Bitrix Site Manager" - }, - "html": "(?:]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))", - "implies": "PHP", - "script": "1c-bitrix", - "website": "www.1c-bitrix.ru" - }, - "1und1": { - "cats": [ - 6 - ], - "implies": "PHP", - "url": "/shop/catalog/browse\\?sessid=", - "website": "1und1.de" - }, - "2z Project": { - "cats": [ - 1 - ], - "meta": { - "generator": "2z project ([\\d.]+)\\;version:\\1" - }, - "website": "2zproject-cms.ru" - }, - "3DM": { - "cats": [ - 19 - ], - "html": "3ware 3DM([\\d\\.]+)?\\;version:\\1", - "implies": "3ware", - "website": "www.3ware.com" - }, - "3dCart": { - "cats": [ - 1, - 6 - ], - "headers": { - "Set-Cookie": "3dvisit", - "X-Powered-By": "3DCART" - }, - "script": "(?:twlh(?:track)?\\.asp|3d_upsell\\.js)", - "website": "www.3dcart.com" - }, - "3ware": { - "cats": [ - 22 - ], - "headers": { - "Server": "3ware\\/?([\\d\\.]+)?\\;version:\\1" - }, - "website": "www.3ware.com" - }, - "AMPcms": { - "cats": [ - 1 - ], - "env": "^amp_js_init$", - "headers": { - "Set-Cookie": "^AMP=", - "X-AMP-Version": "([\\d.]+)\\;version:\\1" - }, - "implies": "PHP", - "website": "www.ampcms.org" - }, - "AOLserver": { - "cats": [ - 22 - ], - "headers": { - "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" - }, - "website": "aolserver.com" - }, - "AT Internet Analyzer": { - "cats": [ - 10 - ], - "env": "^xtsite$", - "website": "atinternet.com/en" - }, - "AT Internet XiTi": { - "cats": [ - 10 - ], - "env": "^Xt_", - "script": "xiti\\.com/hit\\.xiti", - "website": "atinternet.com/en" - }, - "ATEN": { - "cats": [ - 22 - ], - "headers": { - "Server": "ATEN HTTP Server(?:\\(?V?([\\d\\.]+)\\)?)?\\;version:\\1" - }, - "website": "www.aten.com" - }, - "ATG Web Commerce": { - "cats": [ - 6 - ], - "headers": { - "X-ATG-Version": "(?:ATGPlatform/([\\d.]+))?\\;version:\\1" - }, - "html": "<[^>]+_DARGS", - "website": "oracle.com/us/products/applications/web-commerce/atg" - }, - "AWStats": { - "cats": [ - 10 - ], - "implies": "Perl", - "meta": { - "generator": "AWStats ([\\d.]+(?: \\(build [\\d.]+\\))?)\\;version:\\1" - }, - "website": "awstats.sourceforge.net" - }, - "Accessible Portal": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "Accessible Portal" - }, - "website": "www.accessibleportal.com" - }, - "AdInfinity": { - "cats": [ - 36 - ], - "script": "adinfinity\\.com\\.au", - "website": "adinfinity.com.au" - }, - "AdRiver": { - "cats": [ - 36 - ], - "env": "^adriver$", - "html": "(?:<embed[^>]+(?:src=\"https?://mh\\d?\\.adriver\\.ru/|flashvars=\"[^\"]*(?:http:%3A//(?:ad|mh\\d?)\\.adriver\\.ru/|adriver_banner))|<(?:(?:iframe|img)[^>]+src|a[^>]+href)=\"https?://ad\\.adriver\\.ru/)", - "script": "(?:adriver\\.core\\.\\d\\.js|https?://(?:content|ad|masterh\\d)\\.adriver\\.ru/)", - "website": "adriver.ru" - }, - "AdRoll": { - "cats": [ - 36 - ], - "env": "^adroll_", - "script": "(?:a|s)\\.adroll\\.com", - "website": "adroll.com" - }, - "Adcash": { - "cats": [ - 36 - ], - "env": "^(?:ac_bgclick_URL|ct_(?:siteunder|tag|n(?:SuUrl(?:Opp)?)|Su(?:Loaded|Url)))$", - "script": "^[^\\/]*//(?:[^\\/]+\\.)?adcash\\.com/(?:script|ad)/", - "url": "^https?://(?:[^\\/]+\\.)?adcash\\.com/script/pop_", - "website": "adcash.com" - }, - "AddShoppers": { - "cats": [ - 5 - ], - "script": "cdn\\.shop\\.pe/widget/", - "website": "www.addshoppers.com" - }, - "AddThis": { - "cats": [ - 5 - ], - "env": "^addthis", - "script": "addthis\\.com/js/", - "website": "www.addthis.com" - }, - "Adobe ColdFusion": { - "cats": [ - 18 - ], - "env": "^_cfEmails$", - "headers": { - "Cookie": "CFTOKEN=" - }, - "html": "<!-- START headerTags\\.cfm", - "implies": "CFML", - "script": "/cfajax/", - "url": "\\.cfm(?:$|\\?)", - "website": "adobe.com/products/coldfusion-family.html" - }, - "Adobe Experience Manager": { - "cats": [ - 1 - ], - "html": [ - "<div class=\"[^\"]*parbase", - "<div[^>]+data-component-path=\"[^\"+]jcr:" - ], - "implies": "Java", - "script": "/etc/designs/", - "website": "www.adobe.com/au/marketing-cloud/enterprise-content-management.html" - }, - "Adobe GoLive": { - "cats": [ - 20 - ], - "meta": { - "generator": "Adobe GoLive(?:\\s([\\d.]+))?\\;version:\\1" - }, - "website": "www.adobe.com/products/golive" - }, - "Adobe Muse": { - "cats": [ - 20 - ], - "meta": { - "generator": "^Muse(?:$| ?/?(\\d[\\d.]+))\\;version:\\1" - }, - "website": "muse.adobe.com" - }, - "Adobe RoboHelp": { - "cats": [ - 4 - ], - "env": "^gbWh(?:Ver|Lang|Msg|Util|Proxy)$", - "meta": { - "generator": "^Adobe RoboHelp(?: ([\\d]+))?\\;version:\\1" - }, - "script": "(?:wh(?:utils|ver|proxy|lang|topic|msg)|ehlpdhtm)\\.js", - "website": "adobe.com/products/robohelp.html" - }, - "Advanced Web Stats": { - "cats": [ - 10 - ], - "html": "aws\\.src = [^<]+caphyon-analytics", - "implies": "Java", - "website": "www.advancedwebstats.com" - }, - "Advert Stream": { - "cats": [ - 36 - ], - "env": "^advst_is_above_the_fold$", - "script": "(?:ad\\.advertstream\\.com|adxcore\\.com)", - "website": "www.advertstream.com" - }, - "Adzerk": { - "cats": [ - 36 - ], - "env": "^ados(?:Results)?$", - "html": "<iframe [^>]*src=\"[^\"]+adzerk\\.net", - "script": "adzerk\\.net/ados\\.js", - "website": "adzerk.com" - }, - "Aegea": { - "cats": [ - 11 - ], - "headers": { - "X-Powered-By": "^E2 Aegea v(\\d+)$\\;version:\\1" - }, - "implies": [ - "PHP", - "jQuery" - ], - "website": "blogengine.ru" - }, - "Airee": { - "cats": [ - 31 - ], - "headers": { - "Server": "Airee" - }, - "website": "xn--80aqc2a.xn--p1ai" - }, - "Akamai": { - "cats": [ - 31 - ], - "headers": { - "X-Akamai-Transformed": "" - }, - "website": "akamai.com" - }, - "Algolia Realtime Search": { - "cats": [ - 29 - ], - "env": "^AlgoliaSearch$", - "website": "www.algolia.com" - }, - "Allegro RomPager": { - "cats": [ - 22 - ], - "headers": { - "Server": "Allegro-Software-RomPager(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "allegrosoft.com/embedded-web-server-s2" - }, - "AlloyUI": { - "cats": [ - 12 - ], - "env": "^AUI$", - "implies": [ - "Twitter Bootstrap", - "YUI" - ], - "script": "^https?://cdn\\.alloyui\\.com/", - "website": "www.alloyui.com" - }, - "Amaya": { - "cats": [ - 20 - ], - "meta": { - "generator": "Amaya(?: V?([\\d.]+[a-z]))?\\;version:\\1" - }, - "website": "www.w3.org/Amaya" - }, - "Ametys": { - "cats": [ - 1 - ], - "implies": "Java", - "meta": { - "generator": "(?:Ametys|Anyware Technologies)" - }, - "script": "ametys\\.js", - "website": "ametys.org" - }, - "Amiro.CMS": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "Amiro" - }, - "website": "amirocms.com" - }, - "Anchor CMS": { - "cats": [ - 1, - 11 - ], - "implies": [ - "PHP", - "MySQL" - ], - "meta": { - "generator": "Anchor CMS" - }, - "website": "anchorcms.com" - }, - "AngularJS": { - "cats": [ - 12 - ], - "env": "^angular$", - "script": [ - "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", - "/([\\d.]+(\\-?rc[.\\d]*)*)/angular(\\.min)?\\.js\\;version:\\1", - "angular.*\\.js" - ], - "website": "angularjs.org" - }, - "Apache": { - "cats": [ - 22 - ], - "headers": { - "Server": "(?:Apache(?:$|/([\\d.]+)|[^/-])|(?:^|\b)HTTPD)\\;version:\\1" - }, - "website": "apache.org" - }, - "Apache HBase": { - "cats": [ - 34 - ], - "html": "<style[^>]+static/hbase", - "website": "hbase.apache.org" - }, - "Apache Hadoop": { - "cats": [ - 34 - ], - "html": "<style[^>]+static/hadoop", - "website": "hadoop.apache.org" - }, - "Apache JSPWiki": { - "cats": [ - 8 - ], - "html": "<html[^>]* xmlns:jspwiki=", - "script": "jspwiki", - "url": "wiki\\.jsp", - "website": "jspwiki.org" - }, - "Apache Tomcat": { - "cats": [ - 22 - ], - "headers": { - "Server": "Apache-Coyote(/1\\.1)?\\;version:\\1?4.1+:", - "X-Powered-By": "\bTomcat\b(?:-([\\d.]+))?\\;version:\\1" - }, - "website": "tomcat.apache.org" - }, - "Apache Traffic Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "ATS/?([\\d.]+)?\\;version:\\1" - }, - "website": "trafficserver.apache.org/" - }, - "Apache Wicket": { - "cats": [ - 18 - ], - "env": "^Wicket", - "implies": "Java", - "website": "wicket.apache.org" - }, - "AppNexus": { - "cats": [ - 36 - ], - "html": "<(?:iframe|img)[^>]+adnxs\\.(?:net|com)", - "script": "adnxs\\.(?:net|com)", - "website": "appnexus.com" - }, - "Arastta": { - "cats": [ - 6 - ], - "excludes": "OpenCart", - "headers": { - "Arastta": "([0-9.]+)\\;version:\\1" - }, - "html": "Powered By <a href=\"[^>]+Arastta", - "implies": "PHP", - "script": "arastta\\.js", - "website": "arastta.org" - }, - "Arc Forum": { - "cats": [ - 2 - ], - "html": "ping\\.src = node\\.href;\\s+[^>]+\\s+}\\s+</script>", - "website": "arclanguage.org" - }, - "Artifactory": { - "cats": [ - 47 - ], - "env": "^ArtifactoryUpdates$", - "html": [ - "<span class=\"version\">Artifactory(?: Pro)?(?: Power Pack)?(?: ([\\d.]+))?\\;version:\\1" - ], - "script": [ - "wicket/resource/org\\.artifactory\\." - ], - "website": "jfrog.com/open-source/#os-arti" - }, - "Artifactory Web Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "Artifactory(?:/([\\d.]+))?\\;version:\\1" - }, - "implies": [ - "Artifactory" - ], - "website": "jfrog.com/open-source/#os-arti" - }, - "AsciiDoc": { - "cats": [ - 1, - 20, - 27 - ], - "env": "^asciidoc$", - "meta": { - "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" - }, - "website": "www.methods.co.nz/asciidoc" - }, - "Atlassian Bitbucket": { - "cats": [ - 47 - ], - "env": "^bitbucket$", - "meta": { - "application-name": "Bitbucket" - }, - "website": "www.atlassian.com/software/bitbucket/overview/" - }, - "Atlassian Confluence": { - "cats": [ - 8 - ], - "headers": { - "X-Confluence-Request-Time": "" - }, - "html": "Powered by <a href=[^>]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence</a> ([\\d.]+))?\\;version:\\1", - "implies": "Java", - "meta": { - "confluence-request-time": "" - }, - "website": "www.atlassian.com/software/confluence/overview/team-collaboration-software" - }, - "Atlassian FishEye": { - "cats": [ - 47 - ], - "headers": { - "Set-cookie": "FESESSIONID" - }, - "html": "<title>(?:Log in to )?FishEye (?:and Crucible )?([\\d.]+)?\\;version:\\1", - "website": "www.atlassian.com/software/fisheye/overview/" - }, - "Atlassian Jira": { - "cats": [ - 13 - ], - "env": "^jira$", - "html": "Powered by\\s+]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(\\.\\d+)?))?\\;version:\\1", - "implies": "Java", - "meta": { - "ajs-version-number": "([\\d\\.]+)\\;version:\\1", - "application-name": "JIRA" - }, - "website": "www.atlassian.com/software/jira/overview/" - }, - "Atlassian Jira Issue Collector": { - "cats": [ - 13, - 47 - ], - "script": [ - "jira-issue-collector-plugin", - "atlassian\\.jira\\.collector\\.plugin" - ], - "website": "www.atlassian.com/software/jira/overview/" - }, - "Avangate": { - "cats": [ - 6 - ], - "env": "^(?:__)?avng8_", - "html": "]* href=\"^https?://edge\\.avangate\\.net/", - "script": "^https?://edge\\.avangate\\.net/", - "website": "avangate.com" - }, - "BIGACE": { - "cats": [ - 1 - ], - "html": "(?:Powered by ]+BIGACE|", - "script": "CatalystScripts", - "website": "businesscatalyst.com" - }, - "BuySellAds": { - "cats": [ - 36 - ], - "env": "^_bsa", - "html": "]*>[^<]+?bsa.src\\s*=\\s*['\"](?:https?:)?\\/{2}\\w\\d\\.buysellads\\.com\\/[\\w\\d\\/]+?bsa\\.js['\"]", - "script": "^https?://s\\d\\.buysellads\\.com/", - "website": "buysellads.com" - }, - "C++": { - "cats": [ - 27 - ], - "website": "isocpp.org" - }, - "CFML": { - "cats": [ - 27 - ], - "website": "adobe.com/products/coldfusion-family.html" - }, - "CKEditor": { - "cats": [ - 24 - ], - "env": "^CKEDITOR$", - "website": "ckeditor.com" - }, - "CMS Made Simple": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "^CMSSESSID" - }, - "implies": "PHP", - "meta": { - "generator": "CMS Made Simple" - }, - "website": "cmsmadesimple.org" - }, - "CMSimple": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "CMSimple( [\\d.]+)?\\;version:\\1" - }, - "website": "www.cmsimple.org/en" - }, - "CO2Stats": { - "cats": [ - 10 - ], - "html": "src=[^>]+co2stats\\.com/propres\\.php", - "website": "co2stats.com" - }, - "CPG Dragonfly": { - "cats": [ - 1 - ], - "headers": { - "X-Powered-By": "Dragonfly CMS" - }, - "implies": "PHP", - "meta": { - "generator": "CPG Dragonfly" - }, - "website": "dragonflycms.org" - }, - "CS Cart": { - "cats": [ - 6 - ], - "env": "^fn_compare_strings$", - "html": [ - " Powered by (?:]+cs-cart\\.com|CS-Cart)", - ".cm-noscript[^>]+" - ], - "implies": "PHP", - "website": "www.cs-cart.com" - }, - "CacheFly": { - "cats": [ - 31 - ], - "headers": { - "Server": "^CFS ", - "X-CF1": "", - "X-CF2": "" - }, - "website": "www.cachefly.com" - }, - "CakePHP": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "cakephp=" - }, - "implies": "PHP", - "meta": { - "application-name": "CakePHP" - }, - "website": "cakephp.org" - }, - "Canon": { - "cats": [ - 40 - ], - "website": "www.canon.com" - }, - "Canon HTTP Server": { - "cats": [ - 22 - ], - "headers": { - "Server": "CANON HTTP Server(?:/([\\d.]+))?\\;version:\\1" - }, - "implies": [ - "Canon" - ], - "website": "www.canon.com" - }, - "Carbon Ads": { - "cats": [ - 36 - ], - "env": "^_carbonads", - "html": "<[a-z]+ [^>]*id=\"carbonads-container\"", - "script": "[^\\/]*\\/\\/(?:engine|srv)\\.carbonads\\.com\\/", - "website": "carbonads.net" - }, - "Cargo": { - "cats": [ - 1 - ], - "html": "]+Cargo feed", - "implies": "PHP", - "meta": { - "cargo_title": "" - }, - "script": "/cargo\\.", - "website": "cargocollective.com" - }, - "Catberry.js": { - "cats": [ - 12, - 18 - ], - "env": "^catberry$", - "headers": { - "X-Powered-By": "Catberry" - }, - "implies": "node.js", - "website": "catberry.org" - }, - "Catwalk": { - "cats": [ - 22 - ], - "headers": { - "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" - }, - "implies": "Canon", - "website": "www.canon.com" - }, - "CentOS": { - "cats": [ - 28 - ], - "headers": { - "Server": "CentOS", - "X-Powered-By": "CentOS" - }, - "website": "centos.org" - }, - "CenteHTTPd": { - "cats": [ - 22 - ], - "headers": { - "Server": "CenteHTTPd(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "cente.jp/cente/app/HTTPdc.html" - }, - "Chameleon": { - "cats": [ - 1 - ], - "implies": [ - "Apache", - "PHP" - ], - "meta": { - "generator": "chameleon-cms" - }, - "website": "chameleon-system.de" - }, - "Chamilo": { - "cats": [ - 21 - ], - "headers": { - "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "html": "\">Chamilo ([\\d.]+)\\;version:\\1", - "implies": "PHP", - "meta": { - "generator": "Chamilo ([\\d.]+)\\;version:\\1" - }, - "website": "www.chamilo.org" - }, - "Chartbeat": { - "cats": [ - 10 - ], - "env": "^_sf_(?:endpt|async_config)$", - "script": "chartbeat\\.js", - "website": "chartbeat.com" - }, - "Cherokee": { - "cats": [ - 22 - ], - "headers": { - "Server": "Cherokee/([\\d.]+)\\;version:\\1" - }, - "website": "www.cherokee-project.com" - }, - "CherryPy": { - "cats": [ - 18, - 22 - ], - "headers": { - "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" - }, - "implies": "Python", - "website": "www.cherrypy.org" - }, - "Chitika": { - "cats": [ - 36 - ], - "env": "ch_c(?:lient|olor_site_link)", - "script": "scripts\\.chitika\\.net/", - "website": "chitika.com" - }, - "Ckan": { - "cats": [ - 1 - ], - "headers": { - "Access-Control-Allow-Headers": "X-CKAN-API-KEY", - "Link": "; rel=shortlink" - }, - "implies": [ - "Python", - "Solr", - "Java", - "PostgreSQL\\;confidence:80" - ], - "website": "ckan.org/" - }, - "ClickHeat": { - "cats": [ - 10 - ], - "env": "^clickHeat", - "implies": "PHP", - "script": "clickheat.*\\.js", - "website": "www.labsmedia.com/clickheat/index.html" - }, - "ClickTale": { - "cats": [ - 10 - ], - "env": "^ClickTale", - "website": "www.clicktale.com" - }, - "Clicky": { - "cats": [ - 10 - ], - "env": "^clicky$", - "script": "static\\.getclicky\\.com", - "website": "getclicky.com" - }, - "Clientexec": { - "cats": [ - 6 - ], - "html": "clientexec\\.[^>]*\\s?=\\s?[^>]*;", - "website": "www.clientexec.com" - }, - "CloudFlare": { - "cats": [ - 31 - ], - "env": "^CloudFlare$", - "headers": { - "Server": "cloudflare" - }, - "website": "www.cloudflare.com" - }, - "Cloudera": { - "cats": [ - 34 - ], - "headers": { - "Server": "cloudera" - }, - "website": "www.cloudera.com" - }, - "CodeIgniter": { - "cats": [ - 18 - ], - "headers": { - "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_(?:session|(csrf_token)))\\;version:\\1?2+:" - }, - "html": "]+name=\"ci_csrf_token\"\\;version:2+", - "implies": "PHP", - "website": "codeigniter.com" - }, - "CodeMirror": { - "cats": [ - 19 - ], - "env": "^CodeMirror$", - "website": "codemirror.net" - }, - "Commerce Server": { - "cats": [ - 6 - ], - "headers": { - "COMMERCE-SERVER-SOFTWARE": "" - }, - "implies": "Microsoft ASP.NET", - "website": "commerceserver.net" - }, - "CompaqHTTPServer": { - "cats": [ - 22 - ], - "headers": { - "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" - }, - "website": "www.hp.com" - }, - "Concrete5": { - "cats": [ - 1 - ], - "env": "^CCM_IMAGE_PATH$", - "implies": "PHP", - "meta": { - "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" - }, - "script": "concrete/js/", - "website": "concrete5.org" - }, - "Connect": { - "cats": [ - 18 - ], - "headers": { - "X-Powered-By": "^Connect$" - }, - "implies": "node.js", - "website": "www.senchalabs.org/connect" - }, - "Contao": { - "cats": [ - 1 - ], - "html": [ - "", - "]+(?:typolight|contao)\\.css" - ], - "implies": "PHP", - "meta": { - "generator": "^Contao Open Source CMS$" - }, - "website": "contao.org" - }, - "Contenido": { - "cats": [ - 1 - ], - "implies": "PHP", - "meta": { - "generator": "Contenido ([\\d.]+)\\;version:\\1" - }, - "website": "contenido.org/en" - }, - "Contens": { - "cats": [ - 1 - ], - "implies": [ - "Java", - "CFML" - ], - "meta": { - "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" - }, - "website": "www.contens.com/en/pub/index.cfm" - }, - "ContentBox": { - "cats": [ - 1, - 11 - ], - "implies": "Adobe ColdFusion", - "meta": { - "generator": "ContentBox powered by ColdBox" - }, - "website": "www.gocontentbox.org" - }, - "ConversionLab": { - "cats": [ - 10 - ], - "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", - "website": "www.trackset.it/conversionlab" - }, - "Coppermine": { - "cats": [ - 7 - ], - "html": "|", - "script": "brein/inproces/website/websitefuncties\\.js", - "website": "www.brein.nl/oplossing/product/website" - }, - "Incapsula": { - "cats": [ - 31 - ], - "headers": { - "X-CDN": "Incapsula" - }, - "website": "www.incapsula.com" - }, - "Indexhibit": { - "cats": [ - 1 - ], - "html": "<(?:link|a href) [^>]+ndxz-studio", - "implies": [ - "PHP", - "Apache", - "Exhibit" - ], - "meta": { - "generator": "Indexhibit" - }, - "website": "www.indexhibit.org" - }, - "Indico": { - "cats": [ - 1 - ], - "headers": { - "Set-cookie": "MAKACSESSION" - }, - "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", - "website": "indico-software.org" - }, - "Indy": { - "cats": [ - 22 - ], - "headers": { - "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "indyproject.org" - }, - "InstantCMS": { - "cats": [ - 1 - ], - "headers": { - "Set-Cookie": "InstantCMS\\[logdate\\]=" - }, - "meta": { - "generator": "InstantCMS" - }, - "website": "www.instantcms.ru" - }, - "Intel Active Management Technology": { - "cats": [ - 22, - 46 - ], - "headers": { - "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" - }, - "website": "intel.com" - }, - "IntenseDebate": { - "cats": [ - 15 - ], - "script": "intensedebate\\.com", - "website": "intensedebate.com" - }, - "Intercom": { - "cats": [ - 10 - ], - "env": "^Intercom$", - "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", - "website": "intercom.io" - }, - "Intershop": { - "cats": [ - 6 - ], - "script": "(?:is-bin|INTERSHOP)", - "website": "intershop.com" - }, - "Invenio": { - "cats": [ - 50 - ], - "headers": { - "Set-cookie": "INVENIOSESSION" - }, - "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", - "website": "invenio-software.org" - }, - "Ionicons": { - "cats": [ - 17 - ], - "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", - "website": "ionicons.com" - }, - "JAlbum": { - "cats": [ - 7 - ], - "implies": "Java", - "meta": { - "generator": "JAlbum( [\\d.]+)?\\;version:\\1" - }, - "website": "jalbum.net/en" - }, - "JBoss Application Server": { - "cats": [ - 22 - ], - "headers": { - "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" - }, - "website": "jboss.org/jbossas.html" - }, - "JBoss Web": { - "cats": [ - 22 - ], - "excludes": "Apache Tomcat", - "headers": { - "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" - }, - "implies": "JBoss Application Server", - "website": "jboss.org/jbossweb" - }, - "JC-HTTPD": { - "cats": [ - 22 - ], - "excludes": "Apache", - "headers": { - "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" - }, - "implies": [ - "Canon" - ], - "website": "canon.com" - }, - "JS Charts": { - "cats": [ - 25 - ], - "env": "^JSChart$", - "script": "jscharts.*\\.js", - "website": "www.jscharts.com" - }, - "JTL Shop": { - "cats": [ - 6 - ], - "headers": { - "Set-Cookie": "JTLSHOP=" - }, - "html": "(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", - "implies": "PHP", - "meta": { - "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" - }, - "url": "option=com_", - "website": "joomla.org" - }, - "K2": { - "cats": [ - 19 - ], - "env": "^K2RatingURL$", - "html": "", - "", - "]*/sites/[a-z\\d]{24}/theme/stylesheets", - "implies": [ - "Ruby on Rails", - "MongoDB" - ], - "website": "www.locomotivecms.com" - }, - "Logitech Media Server": { - "cats": [ - 22, - 38 - ], - "headers": { - "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" - }, - "website": "www.mysqueezebox.com" - }, - "Lotus Domino": { - "cats": [ - 22 - ], - "headers": { - "Server": "Lotus-Domino" - }, - "website": "www-01.ibm.com/software/lotus/products/domino" - }, - "Lua": { - "cats": [ - 27 - ], - "headers": { - "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" - }, - "website": "www.lua.org" - }, - "Lucene": { - "cats": [ - 34 - ], - "website": "lucene.apache.org/core/" - }, - "M.R. Inc BoxyOS": { - "cats": [ - 28 - ], - "website": "mrincworld.com" - }, - "M.R. Inc SiteFrame": { - "cats": [ - 18 - ], - "headers": { - "Powered-By": "M\\.R\\. Inc SiteFrame" - }, - "website": "mrincworld.com" - }, - "M.R. Inc Webserver": { - "cats": [ - 22 - ], - "headers": { - "Server": "M\\.R\\. Inc Webserver" - }, - "implies": [ - "M.R. Inc BoxyOS" - ], - "website": "mrincworld.com" - }, - "MOBOTIX": { - "cats": [ - 39 - ], - "meta": { - "author": "MOBOTIX AG\\;confidence:40", - "copyright": "MOBOTIX AG\\;confidence:40", - "publisher": "MOBOTIX AG\\;confidence:40" - }, - "url": "control/userimage\\.html\\;confidence:70", - "website": "mobotix.com" - }, - "MODx": { - "cats": [ - 1 - ], - "env": "^MODX_MEDIA_PATH$", - "headers": { - "Set-Cookie": "SN4[a-f\\d]{12}", - "X-Powered-By": "^MODx" - }, - "html": [ - "]+>Powered by MODx", - "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" - ], - "implies": "PHP", - "website": "modxcms.com" - }, - "MadAdsMedia": { - "cats": [ - 36 - ], - "env": "^setM(?:Iframe|RefURL)$", - "script": "^https?://(?:ads-by|pixel)\\.madadsmedia.com/", - "website": "madadsmedia.com" - }, - "Magento": { - "cats": [ - 6 - ], - "env": "^(?:Mage|VarienForm)$", - "headers": { - "Set-Cookie": "frontend=\\;confidence:50" - }, - "implies": "PHP", - "script": [ - "js/mage", - "skin/frontend/(?:default|(enterprise))\\;version:\\1?Enterprise:Community" - ], - "website": "www.magentocommerce.com" - }, - "Mambo": { - "cats": [ - 1 - ], - "excludes": "Joomla", - "meta": { - "generator": "Mambo" - }, - "website": "mambo-foundation.org" - }, - "MantisBT": { - "cats": [ - 13 - ], - "html": "]+ alt=\"Powered by Mantis Bugtracker", - "website": "www.mantisbt.org" - }, - "ManyContacts": { - "cats": [ - 5 - ], - "script": "\\/assets\\/js\\/manycontacts\\.min\\.js", - "website": "www.manycontacts.com" - }, - "Marketo": { - "cats": [ - 32 - ], - "env": "^Munchkin$", - "script": "munchkin\\.marketo\\.net/munchkin\\.js", - "website": "www.marketo.com" - }, - "Materialize CSS": { - "cats": [ - 18 - ], - "html": "]* href=\"[^\"]*materialize(?:\\.min)?\\.css", - "implies": "jQuery", - "script": "materialize(?:\\.min)?\\.js", - "website": "materializecss.com" - }, - "MathJax": { - "cats": [ - 25 - ], - "env": "^MathJax$", - "script": "mathjax\\.js", - "website": "mathjax.org" - }, - "MaxSite CMS": { - "cats": [ - 1 - ], - "meta": { - "generator": "MaxSite CMS" - }, - "website": "max-3000.com" - }, - "Mean.io": { - "cats": [ - 12 - ], - "headers": { - "X-Powered-CMS": "Mean\\.io" - }, - "implies": [ - "MongoDB", - "Express", - "AngularJS", - "node.js" - ], - "website": "mean.io" - }, - "MediaElement.js": { - "cats": [ - 14 - ], - "env": "^mejs$", - "website": "mediaelementjs.com" - }, - "MediaTomb": { - "cats": [ - 38 - ], - "headers": { - "Server": "MediaTomb(?:/([\\d.]+))?\\;version:\\1" - }, - "website": "mediatomb.cc" - }, - "MediaWiki": { - "cats": [ - 8 - ], - "html": "(?:]+>Powered by MediaWiki|<[^>]+id=\"t-specialpages)", - "meta": { - "generator": "MediaWiki" - }, - "website": "www.mediawiki.org" - }, - "Meebo": { - "cats": [ - 5 - ], - "html": "(?:", + "website": "www.google.com/tagmanager", + "icon": "Google Tag Manager.png" + }, + "Google Wallet": { + "cats": [ + 41 + ], + "script": [ + "checkout\\.google\\.com", + "wallet\\.google\\.com" + ], + "website": "wallet.google.com", + "icon": "Google Wallet.png" + }, + "Google Web Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "gws" + }, + "website": "en.wikipedia.org/wiki/Google_Web_Server", + "icon": "Google Web Server.png" + }, + "Google Web Toolkit": { + "cats": [ + 18 + ], + "env": "^__gwt_", + "implies": "Java", + "meta": { + "gwt:property": "" + }, + "website": "developers.google.com/web-toolkit", + "icon": "Google Web Toolkit.png" + }, + "Graffiti CMS": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "graffitibot[^;]=" + }, + "meta": { + "generator": "Graffiti CMS ([^\"]+)\\;version:\\1" + }, + "script": "/graffiti\\.js", + "website": "graffiticms.codeplex.com", + "icon": "Graffiti CMS.png" + }, + "Grandstream": { + "cats": [ + 22, + 39 + ], + "headers": { + "Server": "Grandstream\\/?([\\d\\.]+)?\\;version:\\1" + }, + "website": "www.grandstream.com", + "icon": "Grandstream.png" + }, + "Grav": { + "cats": [ + 1 + ], + "implies": [ + "PHP" + ], + "meta": { + "generator": "GravCMS(?:\\s([\\d.]+))?\\;version:\\1" + }, + "website": "getgrav.org", + "icon": "Grav.png" + }, + "Gravatar": { + "cats": [ + 19 + ], + "env": "^Gravatar$", + "html": "<[^>]+gravatar\\.com/avatar/", + "website": "gravatar.com", + "icon": "Gravatar.png" + }, + "Gravity Insights": { + "cats": [ + 10 + ], + "env": "^GravityInsights$", + "website": "insights.gravity.com", + "icon": "Gravity Insights.png" + }, + "Green Valley CMS": { + "cats": [ + 1 + ], + "html": "]+/dsresource\\?objectid=", + "meta": { + "DC.identifier": "/content\\.jsp\\?objectid=" + }, + "website": "www.greenvalley.nl/Public/Producten/Content_Management/CMS", + "icon": "Green Valley CMS.png" + }, + "HERE": { + "cats": [ + 35 + ], + "script": "https?://js\\.cit\\.api\\.here\\.com/se/([\\d.]+)\\/\\;version:\\1", + "website": "developer.here.com", + "icon": "HERE.png" + }, + "HHVM": { + "cats": [ + 22 + ], + "headers": { + "X-Powered-By": "HHVM/?([\\d.]+)?\\;version:\\1" + }, + "implies": "PHP\\;confidence:50", + "website": "hhvm.com", + "icon": "HHVM.png" + }, + "HP": { + "cats": [ + 40 + ], + "website": "hp.com", + "icon": "HP.png" + }, + "HP ChaiServer": { + "cats": [ + 22 + ], + "headers": { + "Server": "HP-Chai(?:Server|SOE)(?:/([\\d.]+))?\\;version:\\1" + }, + "implies": [ + "HP" + ], + "website": "hp.com", + "icon": "HP ChaiServer.png" + }, + "HP Compact Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "HP_Compact_Server(?:/([\\d.]+))?\\;version:\\1" + }, + "website": "hp.com", + "icon": "HP Compact Server.png" + }, + "HP ProCurve": { + "cats": [ + 37 + ], + "website": "hp.com/networking", + "icon": "HP ProCurve.png" + }, + "HP System Management": { + "cats": [ + 46 + ], + "headers": { + "Server": "HP System Management" + }, + "website": "hp.com", + "icon": "HP System Management.png" + }, + "HP iLO": { + "cats": [ + 22, + 46 + ], + "headers": { + "Server": "HP-iLO-Server(?:/([\\d.]+))?\\;version:\\1" + }, + "website": "hp.com", + "icon": "HP iLO.png" + }, + "HTTP Kit": { + "cats": [ + 22 + ], + "headers": { + "Server": "^http-kit" + }, + "implies": "Java", + "website": "http-kit.org", + "icon": "HTTP Kit.png" + }, + "HTTP-Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "(?:^|[^-])\bHTTP-Server(?: ?/?V?([\\d.]+))?\\;version:\\1" + }, + "website": "???", + "icon": "HTTP-Server.png" + }, + "Hammer.js": { + "cats": [ + 12 + ], + "env": "^Hammer$", + "script": "hammer(\\.min)?\\.js", + "website": "hammerjs.github.io", + "icon": "Hammer.js.png" + }, + "Handlebars": { + "cats": [ + 12 + ], + "env": "^Handlebars$", + "html": "<[^>]*type=[^>]text\\/x-handlebars-template", + "script": "handlebars(?:\\.runtime)?(?:-v([\\d.]+?))?(?:\\.min)?\\.js\\;version:\\1", + "website": "handlebarsjs.com", + "icon": "Handlebars.png" + }, + "Happy ICS Server": { + "cats": [ + 22 + ], + "headers": { + "Server": "Happy ICS Server(?:/([\\d.]+))?\\;version:\\1" + }, + "implies": "OmniTouch 8660 My Teamwork", + "website": "???", + "icon": "Happy ICS Server.png" + }, + "Haskell": { + "cats": [ + 27 + ], + "website": "wiki.haskell.org/Haskell", + "icon": "Haskell.png" + }, + "HeadJS": { + "cats": [ + 12 + ], + "env": "^head$\\;confidence:50", + "html": "<[^>]*data-headjs-load", + "script": "head\\.(?:core|load)(?:\\.min)?\\.js", + "website": "headjs.com", + "icon": "HeadJS.png" + }, + "Heap": { + "cats": [ + 10 + ], + "env": "^heap$", + "script": "heap-\\d+.js", + "website": "heapanalytics.com", + "icon": "Heap.png" + }, + "Hello Bar": { + "cats": [ + 5 + ], + "env": "^HelloBar$", + "script": "hellobar\\.js", + "website": "hellobar.com", + "icon": "Hello Bar.png" + }, + "Hiawatha": { + "cats": [ + 22 + ], + "headers": { + "Server": "Hiawatha v([\\d.]+)\\;version:\\1" + }, + "website": "hiawatha-webserver.org", + "icon": "Hiawatha.png" + }, + "Highcharts": { + "cats": [ + 25 + ], + "env": "^Highcharts$", + "html": "]*>Created with Highcharts ([\\d.]*)\\;version:\\1", + "script": "highcharts.*\\.js", + "website": "highcharts.com", + "icon": "Highcharts.png" + }, + "Highstock": { + "cats": [ + 25 + ], + "html": "]*>Created with Highstock ([\\d.]*)\\;version:\\1", + "script": "highstock(?:\\-|\\.)?([\\d\\.]*\\d).*\\.js\\;version:\\1", + "website": "highcharts.com/products/highstock", + "icon": "Highstock.png" + }, + "Hippo": { + "cats": [ + 1 + ], + "html": " <[^>]+/binaries/(?:[^/]+/)*content/gallery/", + "website": "onehippo.org", + "icon": "Hippo.png" + }, + "Hogan.js": { + "cats": [ + 12 + ], + "env": "^Hogan$", + "script": [ + "hogan-(?:-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", + "([\\d.]+)/hogan(\\.min)?\\.js\\;version:\\1" + ], + "website": "twitter.github.com/hogan.js", + "icon": "Hogan.js.png" + }, + "Hotaru CMS": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "hotaru_mobile=" + }, + "meta": { + "generator": "Hotaru CMS" + }, + "website": "hotarucms.org", + "icon": "Hotaru CMS.png" + }, + "HubSpot": { + "cats": [ + 32 + ], + "env": "^(?:_hsq|hubspot)$", + "html": "", + "script": "brein/inproces/website/websitefuncties\\.js", + "website": "www.brein.nl/oplossing/product/website", + "icon": "InProces.png" + }, + "Incapsula": { + "cats": [ + 31 + ], + "headers": { + "X-CDN": "Incapsula" + }, + "website": "www.incapsula.com", + "icon": "Incapsula.png" + }, + "Indexhibit": { + "cats": [ + 1 + ], + "html": "<(?:link|a href) [^>]+ndxz-studio", + "implies": [ + "PHP", + "Apache", + "Exhibit" + ], + "meta": { + "generator": "Indexhibit" + }, + "website": "www.indexhibit.org", + "icon": "Indexhibit.png" + }, + "Indico": { + "cats": [ + 1 + ], + "headers": { + "Set-cookie": "MAKACSESSION" + }, + "html": "Powered by\\s+(?:CERN )?(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1", + "website": "indico-software.org", + "icon": "Indico.png" + }, + "Indy": { + "cats": [ + 22 + ], + "headers": { + "Server": "Indy(?:/([\\d.]+))?\\;version:\\1" + }, + "website": "indyproject.org", + "icon": "Indy.png" + }, + "InstantCMS": { + "cats": [ + 1 + ], + "headers": { + "Set-Cookie": "InstantCMS\\[logdate\\]=" + }, + "meta": { + "generator": "InstantCMS" + }, + "website": "www.instantcms.ru", + "icon": "InstantCMS.png" + }, + "Intel Active Management Technology": { + "cats": [ + 22, + 46 + ], + "headers": { + "Server": "Intel\\(R\\) Active Management Technology(?: ([\\d.]+))?\\;version:\\1" + }, + "website": "intel.com", + "icon": "Intel Active Management Technology.png" + }, + "IntenseDebate": { + "cats": [ + 15 + ], + "script": "intensedebate\\.com", + "website": "intensedebate.com", + "icon": "IntenseDebate.png" + }, + "Intercom": { + "cats": [ + 10 + ], + "env": "^Intercom$", + "script": "(?:api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", + "website": "intercom.io", + "icon": "Intercom.png" + }, + "Intershop": { + "cats": [ + 6 + ], + "script": "(?:is-bin|INTERSHOP)", + "website": "intershop.com", + "icon": "Intershop.png" + }, + "Invenio": { + "cats": [ + 50 + ], + "headers": { + "Set-cookie": "INVENIOSESSION" + }, + "html": "(?:Powered by|System)\\s+(?:CERN )?(?:CDS )?Invenio\\s*v?([\\d\\.]+)?\\;version:\\1", + "website": "invenio-software.org", + "icon": "Invenio.png" + }, + "Ionicons": { + "cats": [ + 17 + ], + "html": "]* href=[^>]+ionicons(?:\\.min)?\\.css", + "website": "ionicons.com", + "icon": "Ionicons.png" + }, + "JAlbum": { + "cats": [ + 7 + ], + "implies": "Java", + "meta": { + "generator": "JAlbum( [\\d.]+)?\\;version:\\1" + }, + "website": "jalbum.net/en", + "icon": "JAlbum.png" + }, + "JBoss Application Server": { + "cats": [ + 22 + ], + "headers": { + "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" + }, + "website": "jboss.org/jbossas.html", + "icon": "JBoss Application Server.png" + }, + "JBoss Web": { + "cats": [ + 22 + ], + "excludes": "Apache Tomcat", + "headers": { + "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" + }, + "implies": "JBoss Application Server", + "website": "jboss.org/jbossweb", + "icon": "JBoss Web.png" + }, + "JC-HTTPD": { + "cats": [ + 22 + ], + "excludes": "Apache", + "headers": { + "Server": "JC-HTTPD(?:/([\\d.]+))?\\;version:\\1" + }, + "implies": [ + "Canon" + ], + "website": "canon.com", + "icon": "JC-HTTPD.png" + }, + "JS Charts": { + "cats": [ + 25 + ], + "env": "^JSChart$", + "script": "jscharts.*\\.js", + "website": "www.jscharts.com", + "icon": "JS Charts.png" + }, + "JTL Shop": { + "cats": [ + 6 + ], + "headers": { + "Set-Cookie": "JTLSHOP=" + }, + "html": "(?:]+name=\"JTLSHOP|]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|]+class=\"pill)\\;confidence:50", + "implies": "PHP", + "meta": { + "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" + }, + "url": "option=com_", + "website": "joomla.org", + "icon": "Joomla.png" + }, + "K2": { + "cats": [ + 19 + ], + "env": "^K2RatingURL$", + "html": "", + "", + "]*/sites/[a-z\\d]{24}/theme/stylesheets", + "implies": [ + "Ruby on Rails", + "MongoDB" + ], + "website": "www.locomotivecms.com", + "icon": "Locomotive.png" + }, + "Logitech Media Server": { + "cats": [ + 22, + 38 + ], + "headers": { + "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" + }, + "website": "www.mysqueezebox.com", + "icon": "Logitech Media Server.png" + }, + "Lotus Domino": { + "cats": [ + 22 + ], + "headers": { + "Server": "Lotus-Domino" + }, + "website": "www-01.ibm.com/software/lotus/products/domino", + "icon": "Lotus Domino.png" + }, + "Lua": { + "cats": [ + 27 + ], + "headers": { + "X-Powered-By": "\bLua(?: ([\\d.]+))?\\;version:\\1" + }, + "website": "www.lua.org", + "icon": "Lua.png" + }, + "Lucene": { + "cats": [ + 34 + ], + "website": "lucene.apache.org/core/", + "icon": "Lucene.png" + }, + "M.R. Inc BoxyOS": { + "cats": [ + 28 + ], + "website": "mrincworld.com", + "icon": "M.R. Inc BoxyOS.png" + }, + "M.R. Inc SiteFrame": { + "cats": [ + 18 + ], + "headers": { + "Powered-By": "M\\.R\\. Inc SiteFrame" + }, + "website": "mrincworld.com", + "icon": "M.R. Inc SiteFrame.png" + }, + "M.R. Inc Webserver": { + "cats": [ + 22 + ], + "headers": { + "Server": "M\\.R\\. Inc Webserver" + }, + "implies": [ + "M.R. Inc BoxyOS" + ], + "website": "mrincworld.com", + "icon": "M.R. Inc Webserver.png" + }, + "MOBOTIX": { + "cats": [ + 39 + ], + "meta": { + "author": "MOBOTIX AG\\;confidence:40", + "copyright": "MOBOTIX AG\\;confidence:40", + "publisher": "MOBOTIX AG\\;confidence:40" + }, + "url": "control/userimage\\.html\\;confidence:70", + "website": "mobotix.com", + "icon": "MOBOTIX.png" + }, + "MODx": { + "cats": [ + 1 + ], + "env": "^MODX_MEDIA_PATH$", + "headers": { + "Set-Cookie": "SN4[a-f\\d]{12}", + "X-Powered-By": "^MODx" + }, + "html": [ + "]+>Powered by MODx", + "<(?:link|script)[^>]+assets/snippets/\\;confidence:20" + ], + "implies": "PHP", + "website": "modxcms.com", + "icon": "MODx.png" + }, + "MadAdsMedia": { + "cats": [ + 36 + ], + "env": "^setM(?:Iframe|RefURL)$", + "script": "^https?://(?:ads-by|pixel)\\.madadsmedia.com/", + "website": "madadsmedia.com", + "icon": "MadAdsMedia.png" + }, + "Magento": { + "cats": [ + 6 + ], + "env": "^(?:Mage|VarienForm)$", + "headers": { + "Set-Cookie": "frontend=\\;confidence:50" + }, + "implies": "PHP", + "script": [ + "js/mage", + "skin/frontend/(?:default|(enterprise))\\;version:\\1?Enterprise:Community" + ], + "website": "www.magentocommerce.com", + "icon": "Magento.png" + }, + "Mambo": { + "cats": [ + 1 + ], + "excludes": "Joomla", + "meta": { + "generator": "Mambo" + }, + "website": "mambo-foundation.org", + "icon": "Mambo.png" + }, + "MantisBT": { + "cats": [ + 13 + ], + "html": "]+ alt=\"Powered by Mantis Bugtracker", + "website": "www.mantisbt.org", + "icon": "MantisBT.png" + }, + "ManyContacts": { + "cats": [ + 5 + ], + "script": "\\/assets\\/js\\/manycontacts\\.min\\.js", + "website": "www.manycontacts.com", + "icon": "ManyContacts.png" + }, + "Marketo": { + "cats": [ + 32 + ], + "env": "^Munchkin$", + "script": "munchkin\\.marketo\\.net/munchkin\\.js", + "website": "www.marketo.com", + "icon": "Marketo.png" + }, + "Materialize CSS": { + "cats": [ + 18 + ], + "html": "]* href=\"[^\"]*materialize(?:\\.min)?\\.css", + "implies": "jQuery", + "script": "materialize(?:\\.min)?\\.js", + "website": "materializecss.com", + "icon": "Materialize CSS.png" + }, + "MathJax": { + "cats": [ + 25 + ], + "env": "^MathJax$", + "script": "mathjax\\.js", + "website": "mathjax.org", + "icon": "MathJax.png" + }, + "MaxSite CMS": { + "cats": [ + 1 + ], + "meta": { + "generator": "MaxSite CMS" + }, + "website": "max-3000.com", + "icon": "MaxSite CMS.png" + }, + "Mean.io": { + "cats": [ + 12 + ], + "headers": { + "X-Powered-CMS": "Mean\\.io" + }, + "implies": [ + "MongoDB", + "Express", + "AngularJS", + "node.js" + ], + "website": "mean.io", + "icon": "Mean.io.png" + }, + "MediaElement.js": { + "cats": [ + 14 + ], + "env": "^mejs$", + "website": "mediaelementjs.com", + "icon": "MediaElement.js.png" + }, + "MediaTomb": { + "cats": [ + 38 + ], + "headers": { + "Server": "MediaTomb(?:/([\\d.]+))?\\;version:\\1" + }, + "website": "mediatomb.cc", + "icon": "MediaTomb.png" + }, + "MediaWiki": { + "cats": [ + 8 + ], + "html": "(?:]+>Powered by MediaWiki|<[^>]+id=\"t-specialpages)", + "meta": { + "generator": "MediaWiki" + }, + "website": "www.mediawiki.org", + "icon": "MediaWiki.png" + }, + "Meebo": { + "cats": [ + 5 + ], + "html": "(?: