WebInject is written in Perl and can run (from Perl source code) on any platform that a Perl interpreter can be installed on (MS Windows, GNU/Linux, BSD, Solaris, MAC OS, and many more). In order to run it from Perl source, you need a Perl Interpreter with the required modules built and installed. You may have some (or all) of these modules installed already depending on your Perl distribution. WebInject is developed and tested with Perl 5.8. If you are using older versions of Perl, your mileage may vary (and can be guaranteed not to work for versions older than 5.6 without some tweaking of the code).
If you are using MS Windows, you can use the compiled executable I provide (for the GUI version). This has a Perl interpreter and all of the required modules compiled into it so you can run it without setting up a Perl environment.
Perl consists of the core distribution, along with modules. A Perl module is a block of code that performs a specific function. By using modules, a developer does not always need to reinvent the wheel to do something. You may just call the appropriate module which contains prewritten code. Perl comes with several hundred standard modules and the Perl community has several thousand more that do not come bundled with Perl. In order to use a non-standard module, you must install it yourself. Most of the modules I make use of (and any modules they depend on) are standard modules with newer Perl distributions. The ones that are not (like 'Crypt::SSLeay' module used for SSL and some of the Tk stuff used for the User Interface) must be installed separately.
*The 'Crypt::SSLeay' module also requires OpenSSL to be installed. You only need this module to do SSL (HTTPS Protocol) encryption. If you do not need SSL, you can comment out the "use Crypt::SSLeay;" near the top of the code to disable this. If it is disabled, you do not need to install this module or OpenSSL.
If you want to run from the Perl source code or make any modifications to the source code, you will need to setup your Perl environment. Since there is a lack of free development tools for Windows (as opposed to unix/linux), I recommend using ActivePerl from ActiveState as your Perl distribution (download the Windows MSI package for Perl 5.8.x). You can use their Perl Package Manager (PPM) to install and update modules without doing any compiling or using additional tools.
The only module I use that is not available in ActiveState's PPM Repository is 'Crypt::SSLeay' (for SSL). You can get this module (along with Compiled OpenSSL DLL's) from an alternate repository. For ActivePerl 5.8, from a command prompt, type:
ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
The binary executable (.exe) that I release for Windows is compiled from Perl source code with PAR (Perl Archive Toolkit). The compiler command used is:
pp --gui --icon icon.ico -o webinjectgui.exe webinjectgui.pl webinject.pl
*The compiled version I provide includes the GUI. The WebInject engine can only be run in standalone mode from Perl source code (unless you compile it yourself). Also note that when running the compiled GUI, the 'webinject.pl' file must exist in the same directory for it to run.
WebInject uses gnuplot for plotting data and creating the graphs displayed in the Monitor Window of the GUI. Gnuplot is not linked or embedded directly into WebInject. It is simply an external program that WebInject calls to create graphic images from a datafile.
Gnuplot is a portable command-line driven interactive datafile and function plotting utility that runs on many operating systems and platforms.
For the licensing terms of gnuplot, see the
Copyright 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley
Source code and binaries for various platforms are available for download.
I have successfully used gnuplot versions 3.7.3 and 4.0.0 with WebInject.
If you are using the release of WebInject for the MS Windows (Win32) platform, I include a compiled binary of gnuplot 3.7.3 in the zip file along with WebInject. Just keep that binary in the same directory as WebInject and no additional configuration is needed. If you are running on a different platform, you must install (or compile) gnuplot yourself. See the gnuplot documentation for instructions.
To install on my Debian GNU/Linux system, I was able to just do:
$apt-get install gnuplot
Once you have it installed, you will need to tell WebInject where it is by adding the <gnuplot> parameter to WebInject's config.xml file like this: