diff --git a/README.md b/README.md index bec227405..105a782be 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Wappalyzer [Wappalyzer](http://wappalyzer.com/) is a -[browser extension](http://wappalyzer.com/download) that uncovers the +[cross-platform](https://github.com/ElbertF/Wappalyzer/wiki/Drivers) utility that uncovers the technologies used on websites. It detects [content management systems](http://wappalyzer.com/categories/cms), [web shops](http://wappalyzer.com/categories/web-shops), @@ -10,201 +10,9 @@ technologies used on websites. It detects [analytics tools](http://wappalyzer.com/categories/analytics) and [many more](http://wappalyzer.com/applications). -*Licensed under the [GPL](https://github.com/ElbertF/Wappalyzer/blob/master/LICENSE).* - -## Contributing - -### Adding a new application - -* Edit `share/apps.json` (use a JSON - [validator](http://jsonformatter.curiousconcept.com)). -* Add a 16x16 PNG image to `share/images/icons` matching the application name - (use [Smush.it](http://www.smushit.com) or - [OptiPNG](http://optipng.sourceforge.net) for compression). -* Provide the URL to the application's website when submitting a pull request. - - -### Adding a new category - -Please open an issue to discuss first. Adding a category involves updating `apps.json`, -preference pages, locales and [wappalyzer.com](http://wappalyzer.com). - - -### Adding a new translation - -#### Mozilla Firefox - -Copy `drivers/firefox/locale/en-US`. - - -#### Google Chrome - -Copy `drivers/chrome/_locales/en`. - - -## apps.json - -#### Example - -```javascript -"Application Name": { - "cats": [ 1 ], - "headers": { "X-Powered-By": "Application Name" }, - "url": ".+\\.application-name\\.com", - "html": "]application-name\\.css", - "meta": { "generator": [ "Application Name", "Alternative Application Name" ] }, - "script": "application-name-([0-9.]+)\\.js\\;confidence:50\\;version:\\1", - "env": "ApplicationName", - "implies": "PHP\\;confidence:50", - } -``` - -### JSON fields - -field | type | description ------------|--------|------------ -cats | array | List of category IDs. See [apps.json](https://github.com/ElbertF/Wappalyzer/blob/master/share/apps.json) for the complete list. -env | string | Global JavaScript variables, e.g. `jQuery`. -headers | object | HTTP Response headers, e.g. `X-Powered-By`. -html | string | Full HTML response body. -implies | array | The presence of one application can imply the presence of another, e.g. Drupal means PHP is also in use. -url | string | URL of the page, e.g. `http://wordpress.com/index.php`. -meta | object | HTML meta tags, e.g. `generator`. -script | string | `src` attribute of HTML script tags, e.g. `jquery.js`. - -Except `cats`, all fields are optional. - -Except `cats` and `implied` all fields accept one or more patterns (either a string or an array of regular expressions). - - -### Patterns - -Patterns are case insensitive [regular expressions](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions). No surrounding delimiters or flags are used. - -Optional fields can be added, separated by `\\;`: - -field | description ------------|------------ -confidence | Indicates less reliable patterns that may cause false positives. The aim is to achieve a combined confidence of 100%. Defaults to 100% for unspecified fields. -version | Gets the version number from a pattern match using a special syntax. - -The confidence field can also be applied to the `implied` field. - - -#### Version syntax - -example | description ------------|------------ -`\\1` | Returns the first match -`\\1?a:` | Returns `a` if the first match contains a value, nothing otherwise -`\\1?a:b` | Returns `a` if the first match contains a value, `b` otherwise -`\\1?:b` | Returns nothing if the first match contains a value, `b` otherwise -`foo\\1` | Returns `foo` with the first match appended. - - -## Drivers - -Wappalyzer is multi-platform. The main code lives in the `share/` directory and -platform specific code in `drivers/`. The sections below describe how to set up -a development environment for the various existing drivers. - -To keep files synchronised between drivers, run `links.sh` (UNIX-like systems) -or `links.cmd` (Windows). - - -### Mozilla Firefox - -* Place a file called `wappalyzer@crunchlabz.com` in the extensions directory in - your [profile folder](http://kb.mozillazine.org/Profile_folder_-_Firefox) - (`~/.mozilla/firefox/xxxxx.default/extensions/` on Linux) containing the full - path to `drivers/firefox`. -* Restart Firefox -* Navigate to `about:config` and set `extensions.wappalyzer.debug` to `true`. -* Ctrl+Shift+J brings up a console for debugging. - - -### Google Chrome +Please refer to the [wiki](https://github.com/ElbertF/Wappalyzer/wiki) for +[screenshots](https://github.com/ElbertF/Wappalyzer/wiki/Screenshots), information on how to +[contribute](https://github.com/ElbertF/Wappalyzer/wiki/Contributing) and +[more](https://github.com/ElbertF/Wappalyzer/wiki/_pages). -* Navigate to `about:extensions` -* Check "Developer mode" -* Click "Load unpacked extension..." -* Select `drivers/chrome/` - - -### Bookmarklet - -Beta version available for testing at -[wappalyzer.com/bookmarklet](http://wappalyzer.com/bookmarklet). - - -### HTML - -The HTML driver serves purely as an example. It's a good starting point if you -want to port Wappalyzer to a new platform. - -* Navigate to `drivers/html/` - - -### PHP - -The PHP driver requires the [V8js](http://php.net/manual/en/book.v8js.php) -class. Installing V8js using [PECL](http://pecl.php.net/) on Debian Linux or -Ubuntu should be very straight forward: - -* `# aptitude install php5-dev php-pear libv8-dev` -* `# pecl install channel://pecl.php.net/v8js-0.1.3` -* `# echo "extension=v8js.so" > /etc/php5/conf.d/v8js.ini` - -Runnning Wappalyzer from the command line: - -`$ php drivers/php/index.php wappalyzer.com` - -Running Wappalyzer inside a PHP script: - -```php -require('WappalyzerException.php'); -require('Wappalyzer.php'); - -$wappalyzer = new Wappalyzer($url); - -$detectedApps = $wappalyzer->analyze(); -``` - - -### Mozilla Jetpack - -Work in progress, experimental. See https://wiki.mozilla.org/Jetpack. - - -## Unofficial drivers and ports - -### Python - -A Python port by [SebastianLopienski](https://github.com/SebastianLopienski). Part of a research project at [CERN](http://cern.ch). - -https://github.com/SebastianLopienski/WAD - - -### Python - -A Python driver by [@ebradbury](https://github.com/ebradbury). - -https://github.com/ebradbury/Wappalyzer/tree/master/drivers/python - - -### Ruby - -A Ruby port by [@skroutz](https://github.com/skroutz). - -https://github.com/skroutz/wappalyzer-ruby - - -## Screenshots - -Wappalyzer on Mozilla Firefox: - -![A screenshot of Wappalyzer on Mozilla Firefox](http://wappalyzer.com/sites/default/themes/wappalyzer/images/installed_firefox.png) - -Wappalyzer on Google Chrome: - -![A screenshot of Wappalyzer on Google Chrome](http://wappalyzer.com/sites/default/themes/wappalyzer/images/installed_chrome.png) +*Licensed under the [GPL](https://github.com/ElbertF/Wappalyzer/blob/master/LICENSE).* diff --git a/drivers/bookmarklet/images/icons/Hubspot.png b/drivers/bookmarklet/images/icons/Hubspot.png new file mode 100644 index 000000000..58f03bdd2 Binary files /dev/null and b/drivers/bookmarklet/images/icons/Hubspot.png differ diff --git a/drivers/bookmarklet/images/icons/Sap.png b/drivers/bookmarklet/images/icons/Sap.png new file mode 100644 index 000000000..9217c8f87 Binary files /dev/null and b/drivers/bookmarklet/images/icons/Sap.png differ diff --git a/drivers/bookmarklet/images/icons/Yahoo! Ecommerce.png b/drivers/bookmarklet/images/icons/Yahoo! Ecommerce.png new file mode 100644 index 000000000..0f5cde96b Binary files /dev/null and b/drivers/bookmarklet/images/icons/Yahoo! Ecommerce.png differ diff --git a/drivers/chrome/images/icons/Hubspot.png b/drivers/chrome/images/icons/Hubspot.png new file mode 100644 index 000000000..58f03bdd2 Binary files /dev/null and b/drivers/chrome/images/icons/Hubspot.png differ diff --git a/drivers/chrome/images/icons/Sap.png b/drivers/chrome/images/icons/Sap.png new file mode 100644 index 000000000..9217c8f87 Binary files /dev/null and b/drivers/chrome/images/icons/Sap.png differ diff --git a/drivers/chrome/images/icons/Yahoo! Ecommerce.png b/drivers/chrome/images/icons/Yahoo! Ecommerce.png new file mode 100644 index 000000000..0f5cde96b Binary files /dev/null and b/drivers/chrome/images/icons/Yahoo! Ecommerce.png differ diff --git a/drivers/firefox-jetpack/images/icons/Hubspot.png b/drivers/firefox-jetpack/images/icons/Hubspot.png new file mode 100644 index 000000000..58f03bdd2 Binary files /dev/null and b/drivers/firefox-jetpack/images/icons/Hubspot.png differ diff --git a/drivers/firefox-jetpack/images/icons/Sap.png b/drivers/firefox-jetpack/images/icons/Sap.png new file mode 100644 index 000000000..9217c8f87 Binary files /dev/null and b/drivers/firefox-jetpack/images/icons/Sap.png differ diff --git a/drivers/firefox-jetpack/images/icons/Yahoo! Ecommerce.png b/drivers/firefox-jetpack/images/icons/Yahoo! Ecommerce.png new file mode 100644 index 000000000..0f5cde96b Binary files /dev/null and b/drivers/firefox-jetpack/images/icons/Yahoo! Ecommerce.png differ diff --git a/drivers/firefox/skin/images/icons/Hubspot.png b/drivers/firefox/skin/images/icons/Hubspot.png new file mode 100644 index 000000000..58f03bdd2 Binary files /dev/null and b/drivers/firefox/skin/images/icons/Hubspot.png differ diff --git a/drivers/firefox/skin/images/icons/Sap.png b/drivers/firefox/skin/images/icons/Sap.png new file mode 100644 index 000000000..9217c8f87 Binary files /dev/null and b/drivers/firefox/skin/images/icons/Sap.png differ diff --git a/drivers/firefox/skin/images/icons/Yahoo! Ecommerce.png b/drivers/firefox/skin/images/icons/Yahoo! Ecommerce.png new file mode 100644 index 000000000..0f5cde96b Binary files /dev/null and b/drivers/firefox/skin/images/icons/Yahoo! Ecommerce.png differ diff --git a/drivers/html/images/icons/Hubspot.png b/drivers/html/images/icons/Hubspot.png new file mode 100644 index 000000000..58f03bdd2 Binary files /dev/null and b/drivers/html/images/icons/Hubspot.png differ diff --git a/drivers/html/images/icons/Sap.png b/drivers/html/images/icons/Sap.png new file mode 100644 index 000000000..9217c8f87 Binary files /dev/null and b/drivers/html/images/icons/Sap.png differ diff --git a/drivers/html/images/icons/Yahoo! Ecommerce.png b/drivers/html/images/icons/Yahoo! Ecommerce.png new file mode 100644 index 000000000..0f5cde96b Binary files /dev/null and b/drivers/html/images/icons/Yahoo! Ecommerce.png differ diff --git a/share/images/icons/Hubspot.png b/share/images/icons/Hubspot.png new file mode 100644 index 000000000..58f03bdd2 Binary files /dev/null and b/share/images/icons/Hubspot.png differ diff --git a/share/images/icons/Sap.png b/share/images/icons/Sap.png new file mode 100644 index 000000000..9217c8f87 Binary files /dev/null and b/share/images/icons/Sap.png differ diff --git a/share/images/icons/Yahoo! Ecommerce.png b/share/images/icons/Yahoo! Ecommerce.png new file mode 100644 index 000000000..0f5cde96b Binary files /dev/null and b/share/images/icons/Yahoo! Ecommerce.png differ