@ -1,139 +1,139 @@
|
|||||||
Wappalyzer
|
Wappalyzer
|
||||||
==========
|
==========
|
||||||
|
|
||||||
[Wappalyzer](http://wappalyzer.com/) is a
|
[Wappalyzer](http://wappalyzer.com/) is a
|
||||||
[browser extension](http://wappalyzer.com/download) that uncovers the
|
[browser extension](http://wappalyzer.com/download) that uncovers the
|
||||||
technologies used on websites. It detects
|
technologies used on websites. It detects
|
||||||
[content management systems](http://wappalyzer.com/categories/cms),
|
[content management systems](http://wappalyzer.com/categories/cms),
|
||||||
[web shops](http://wappalyzer.com/categories/web-shops),
|
[web shops](http://wappalyzer.com/categories/web-shops),
|
||||||
[web servers](http://wappalyzer.com/categories/web-servers),
|
[web servers](http://wappalyzer.com/categories/web-servers),
|
||||||
[JavaScript frameworks](http://wappalyzer.com/categories/javascript-frameworks),
|
[JavaScript frameworks](http://wappalyzer.com/categories/javascript-frameworks),
|
||||||
[analytics tools](http://wappalyzer.com/categories/analytics) and
|
[analytics tools](http://wappalyzer.com/categories/analytics) and
|
||||||
[many more](http://wappalyzer.com/applications).
|
[many more](http://wappalyzer.com/applications).
|
||||||
|
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
------------
|
------------
|
||||||
|
|
||||||
**Adding a new application**
|
**Adding a new application**
|
||||||
|
|
||||||
* Edit `share/apps.json`
|
* Edit `share/apps.json` and use a validator like http://jsonformatter.curiousconcept.com/ to verify your modification.
|
||||||
* Add a 16x16 PNG image to `share/images/icons` matching the application name.
|
* Add a 16x16 PNG image to `share/images/icons` matching the application name and compressed with a loss-less tools like http://www.smushit.com/ or optipng http://optipng.sourceforge.net/.
|
||||||
* Provide the URL to the application's website when submitting a pull request.
|
* Provide the URL to the application's website when submitting a pull request.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
"Application Name": {
|
"Application Name": {
|
||||||
cats: [ "1" ],
|
cats: [ "1" ],
|
||||||
headers: { "X-Powered-By": "Application Name" },
|
headers: { "X-Powered-By": "Application Name" },
|
||||||
url: ".+\\.application-name\\.com",
|
url: ".+\\.application-name\\.com",
|
||||||
html: "<link[^>]application-name\\.css",
|
html: "<link[^>]application-name\\.css",
|
||||||
meta: { "generator": "Application Name" },
|
meta: { "generator": "Application Name" },
|
||||||
script: "application-name\\.js",
|
script: "application-name\\.js",
|
||||||
env: "ApplicationName",
|
env: "ApplicationName",
|
||||||
implies: [ "PHP" ]
|
implies: [ "PHP" ]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Drivers
|
Drivers
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Wappalyzer is multi-platform. The main code lives in the `share/` directory and
|
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
|
platform specific code in `drivers/`. The sections below describe how to set up
|
||||||
a development environment for the various existing drivers.
|
a development environment for the various existing drivers.
|
||||||
|
|
||||||
To keep files synchronised between drivers, run the `links.sh` script (UNIX-like
|
To keep files synchronised between drivers, run the `links.sh` script (UNIX-like
|
||||||
systems only, Windows users can use `links.cmd`.)
|
systems only, Windows users can use `links.cmd`.)
|
||||||
|
|
||||||
|
|
||||||
**Mozilla Firefox**
|
**Mozilla Firefox**
|
||||||
|
|
||||||
* Place a file called `wappalyzer@crunchlabz.com` in the extensions directory in
|
* Place a file called `wappalyzer@crunchlabz.com` in the extensions directory in
|
||||||
your [profile folder](http://kb.mozillazine.org/Profile_folder_-_Firefox)
|
your [profile folder](http://kb.mozillazine.org/Profile_folder_-_Firefox)
|
||||||
(`~/.mozilla/firefox/xxxxx.default/extensions/` on Linux) containing the full
|
(`~/.mozilla/firefox/xxxxx.default/extensions/` on Linux) containing the full
|
||||||
path to `drivers/firefox`.
|
path to `drivers/firefox`.
|
||||||
* Restart Firefox
|
* Restart Firefox
|
||||||
* Navigate to `about:config` and set `extensions.wappalyzer.debug` to `true`.
|
* Navigate to `about:config` and set `extensions.wappalyzer.debug` to `true`.
|
||||||
* Ctrl+Shift+J brings up a console for debugging.
|
* Ctrl+Shift+J brings up a console for debugging.
|
||||||
|
|
||||||
|
|
||||||
**Google Chrome**
|
**Google Chrome**
|
||||||
|
|
||||||
The Chrome version needs some love, if anyone wants to pick it up. It's
|
The Chrome version needs some love, if anyone wants to pick it up. It's
|
||||||
currently not as feature-rich as the Firefox add-on (although partially due to
|
currently not as feature-rich as the Firefox add-on (although partially due to
|
||||||
API limitations.)
|
API limitations.)
|
||||||
|
|
||||||
* Navigate to `about:extensions`
|
* Navigate to `about:extensions`
|
||||||
* Check "Developer mode"
|
* Check "Developer mode"
|
||||||
* Click "Load unpacked extension..."
|
* Click "Load unpacked extension..."
|
||||||
* Select `drivers/chrome/`
|
* Select `drivers/chrome/`
|
||||||
|
|
||||||
|
|
||||||
**Bookmarklet**
|
**Bookmarklet**
|
||||||
|
|
||||||
Beta version available for testing at [wappalyzer.com/bookmarklet](http://wappalyzer.com/bookmarklet).
|
Beta version available for testing at [wappalyzer.com/bookmarklet](http://wappalyzer.com/bookmarklet).
|
||||||
|
|
||||||
|
|
||||||
**HTML**
|
**HTML**
|
||||||
|
|
||||||
The HTML driver serves purely as an example. It's a good starting point if you
|
The HTML driver serves purely as an example. It's a good starting point if you
|
||||||
want to port Wappalyzer to a new platform.
|
want to port Wappalyzer to a new platform.
|
||||||
|
|
||||||
* Navigate to `drivers/html/`
|
* Navigate to `drivers/html/`
|
||||||
|
|
||||||
|
|
||||||
**PHP**
|
**PHP**
|
||||||
|
|
||||||
The PHP driver requires the [V8js](http://php.net/manual/en/book.v8js.php) class. Installing V8js
|
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:
|
using [PECL](http://pecl.php.net/) on Debian Linux or Ubuntu should be very straight forward:
|
||||||
|
|
||||||
* `# aptitude install php5-dev php-pear libv8-dev`
|
* `# aptitude install php5-dev php-pear libv8-dev`
|
||||||
* `# pecl install channel://pecl.php.net/v8js-0.1.3`
|
* `# pecl install channel://pecl.php.net/v8js-0.1.3`
|
||||||
* `# echo "extension=v8js.so" > /etc/php5/conf.d/v8js.ini`
|
* `# echo "extension=v8js.so" > /etc/php5/conf.d/v8js.ini`
|
||||||
|
|
||||||
Runnning Wappalyzer from the command line:
|
Runnning Wappalyzer from the command line:
|
||||||
|
|
||||||
`$ php drivers/php/index.php wappalyzer.com`
|
`$ php drivers/php/index.php wappalyzer.com`
|
||||||
|
|
||||||
Running Wappalyzer inside a PHP script:
|
Running Wappalyzer inside a PHP script:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
require('WappalyzerException.php');
|
require('WappalyzerException.php');
|
||||||
require('Wappalyzer.php');
|
require('Wappalyzer.php');
|
||||||
|
|
||||||
$wappalyzer = new Wappalyzer($url);
|
$wappalyzer = new Wappalyzer($url);
|
||||||
|
|
||||||
$detectedApps = $wappalyzer->analyze();
|
$detectedApps = $wappalyzer->analyze();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
**Mozilla Jetpack**
|
**Mozilla Jetpack**
|
||||||
|
|
||||||
Work in progress, experimental. See https://wiki.mozilla.org/Jetpack.
|
Work in progress, experimental. See https://wiki.mozilla.org/Jetpack.
|
||||||
|
|
||||||
|
|
||||||
Unofficial drivers and ports
|
Unofficial drivers and ports
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
**Python**
|
**Python**
|
||||||
|
|
||||||
A Python driver by [@ebradbury](https://github.com/ebradbury).
|
A Python driver by [@ebradbury](https://github.com/ebradbury).
|
||||||
|
|
||||||
https://github.com/ebradbury/Wappalyzer/tree/master/drivers/python
|
https://github.com/ebradbury/Wappalyzer/tree/master/drivers/python
|
||||||
|
|
||||||
|
|
||||||
**Ruby**
|
**Ruby**
|
||||||
|
|
||||||
A Ruby port by [@skroutz](https://github.com/skroutz).
|
A Ruby port by [@skroutz](https://github.com/skroutz).
|
||||||
|
|
||||||
https://github.com/skroutz/wappalyzer-ruby
|
https://github.com/skroutz/wappalyzer-ruby
|
||||||
|
|
||||||
|
|
||||||
Screenshot
|
Screenshot
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Wappalyzer on Firefox:
|
Wappalyzer on Firefox:
|
||||||
|
|
||||||
![Screenshot](http://wappalyzer.com/sites/default/themes/wappalyzer/images/installed.png)
|
![Screenshot](http://wappalyzer.com/sites/default/themes/wappalyzer/images/installed.png)
|
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 496 B |
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 496 B |
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 496 B |
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 496 B |
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 496 B |
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 496 B |