XRay Logo

The XRay HTTP Monitoring and Content Linearization Tool version 2.0

A screenshot of XRay 2.0 in action.

Availability

XRay has been made available under the terms of the GNU Public License (GPL)

Download

Installation

  1. Obtain either the binary or source release of XRay 2.0 from the download page.
  2. Configure your web browser to use XRay as a web proxy as explained below. The default port is 3002.
  3. Run the jar file (tested under java 1.4):

Configuration

The first time you run XRay 2.0, an empty xray.properties file will be written to your user directory and a small set of default application-wide properties will be loaded internally. These default settings will not be written to xray.properties. You should add an entry to xray.properties if and only if you wish to override a default setting corresponding to that entry. For example, if you would like to have XRay output linearized html rather than standard html, you would add the line:

parse_html=true

to xray.properties.

The complete set of properties together with their associated default values is documented here. Alternate values are obvious where supported.

Description

XRay 2.0 is a 100% pure Java, GUI enhanced, tool for monitoring and logging of all HTTP messages that transpire between any number of arbitrary web clients and any number of arbitrary web servers. XRay 2.0 runs much faster than XRay 0.5 and incorporates a GUI very similar to that of XRay 0.5. Unlike the earlier release, XRay 2.0 does not perceptibly slow down your web browser. XRay 2.0 also contains some additional conveniences: namely, the ability to decode chunked and/or gzipped content, and the option to transform an html or xml document containing nested elements into a plain-text, linear format that does not contain nested elements, while preserving the structure of the orginal document.

How to use XRAY

  1. Configure any number of web browsers to use XRay as a proxy through some port on the machine on which XRay will run, say 3002. This is typically done via the main menu of your web browser. For example, if you are using Mozilla the sequence of mouse clicks is: Edit->Preferences->Advanced->Proxies. Then enable the "Manual Configuration" radio button and type "3002" (or whatever port you desire) into the appropriate text boxes. The process is essentially the same for all major web browsers.

  2. Start XRay by running the jar file as shown above. You may capture all output to a text file by redirecting stdout to a file when starting XRay. Generate some data by using the attached client(s) to browse the web.

  3. You may stop XRay at any time from within the GUI or by pressing CTRL-C. Connected clients will no longer have access to the internet.

Currently Implemented Features

  1. Full capture of all human-readable HTTP message content, including the headers and the body.

  2. Proper decoding and translation of gzipped and/or chunked message bodies.

  3. Suppression of non-human-readable binary content. Log records will not contain "garbage" characters.

  4. The option to transform the content of an html or xml document into a linear format suitable for content filtering applications.

  5. All application properties are GUI-configurable.

  6. You can build a custom log by clicking on a message line in the tree view control. The complete text of the message will be added to the log.

  7. You may cut/paste a text selection from the log window to/from the system clipboard.

  8. Because XRay is 100% java, it is platform independent.

  9. XRay need not run on the same machine as the web client(s) it tracks.

Victims

  1. The threading model was stolen from ProProxy.
  2. The gzipped/chunked decoders include code ripped from SimpleWeb.
  3. The content linearization code is from the book, Web Content Mining with Java, by Tony Loton.
Sourceforge Project Summary Page

Other Projects


Author: Ben Tompkins
brtompkins@comcast.net

SourceForge.net Logo