Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


HTML
<div style="background-color: yellow; border: 2px solid red; margin: 4px; padding: 2px; font-weight: bold; text-align: center;">
This page was moved to <a href="https://github.com/CERTCC/certfuzz/blob/main/src/linux/INSTALL">https://github.com/CERTCC/certfuzz/blob/main/src/linux/INSTALL</a>
<br>
Click in the link above if you are not automatically redirected in 10 seconds.
</div>
<meta http-equiv="refresh" content="10; URL='https://github.com/CERTCC/certfuzz/blob/main/src/linux/INSTALL'" />

The easiest way to get BFF up and running is to use the UbuFuzz virtual machine.  However, if this is not an option for you, it should possible to run BFF on any UNIX-like operating system, as long as the dependencies are met.

Table of Contents

Dependencies

For basic fuzzing functionality, the following packages are required:

  • Python 2.7
  • Python Numpy
  • Python Scipy
  • Python Yaml
  • gdb 7.1 or later
  • zzuf (patched by CERT)

...

  • svn
  • gcc
  • make
  • automake
  • libtool
  • gcc-c++
  • ncurses-devel

...

  • Python hcluster
  • Python matplotlib

Filesystem layout

...

Beginning a fuzzing campaign

...

  • The Fluxbox window manager is used instead of the heavy Gnome or KDE desktop environments.
  • Fluxbox is configured to not raise or focus new windows. This can help in situations where you may need to interact with the guest OS while a GUI application is being fuzzed.

  • Memory randomization is disabled (kernel.randomize_va_space = 0 in /etc/sysctl.conf). This helps remove duplicate crashes where the target application does not have debug symbols.

  • VMware Tools is installed, which allows the guest OS to share a directory with the host.

  • The OS is configured to automatically log in and start X.
  • sudo is configured to not prompt for a password.
  • strip is symlinked to /bin/true, which prevents symbols from being removed when an application is built.

Example installation on Fedora 16 32-bit

...

yum install numpy scipy python-yaml valgrind svn automake libtool gcc-c++ ncurses-devel

...

svn co https://github.com/cacalabs/libcaca/trunk libcaca
cd libcaca
./bootstrap
./configure
make
sudo make install

...

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
unzip zzuf-patched.zip
cd zzuf-patched
./bootstrap
./configure
make
sudo make install

...

sudo yum groupinstall "X Software Development"
sudo ln -sf /usr/include/asm/byteorder.h /usr/include/sys/byteorder.h
wget http://downloads.sourceforge.net/project/imagemagick/old-sources/5.x/5.2/ImageMagick-5.2.0.tar.gz
tar xzvf ImageMagick-5.2.0.tar.gz
cd ImageMagick-5.2.0
./configure
make
sudo make install

...

mkdir ~/bff
unzip scripts.zip -d ~/bff

...

ln -s /usr/local/bin/convert ~/convert
ln -s ~/bff/scripts ~/bff
ln -s ~/bff/results ~/results

...

~/bff/batch.sh

System Performance Configurations for Fedora

...

sudo mv /usr/bin/strip /usr/bin/strip.bak
sudo ln -s /bin/true /usr/bin/strip

...

sudo apt-get install python-numpy python-scipy python-yaml valgrind subversion automake libtool build-essential libncurses5-dev

...

svn co svn://svn.zoy.org/caca/libcaca/trunk libcaca
cd libcaca
./bootstrap
./configure
make
sudo make install

...

unzip zzuf-patched.zip
cd zzuf-patched
./bootstrap
./configure
make
sudo make install

...

sudo apt-get install libx11-dev libxt-dev
sudo ln -sf /usr/include/i386-linux-gnu/asm/byteorder.h /usr/include/sys/byteorder.h
wget http://downloads.sourceforge.net/project/imagemagick/old-sources/5.x/5.2/ImageMagick-5.2.0.tar.gz
tar zxf ImageMagick-5.2.0.tar.gz
cd ImageMagick-5.2.0
./configure
make
sudo make install

...

mkdir ~/bff
unzip scripts.zip -d ~/bff

...

ln -s /usr/local/bin/convert ~/convert
ln -s ~/bff/scripts ~/bff
ln -s ~/bff/results ~/results

...

~/bff/batch.sh

System Performance Configurations for Ubuntu

...

sudo mv /usr/bin/strip /usr/bin/strip.bak
sudo ln -s /bin/true /usr/bin/strip

...

Example installation on openSUSE 12 32-bit

...

sudo zypper ar -f 'http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_12.1/' python
sudo zypper install python-numpy python-scipy valgrind subversion automake libtool gcc-c++ ncurses-devel make

...

svn co svn://svn.zoy.org/caca/libcaca/trunk libcaca
cd libcaca
./bootstrap
./configure
make
sudo make install

...

unzip zzuf-patched.zip
cd zzuf-patched
./bootstrap
./configure
make
sudo make install

...

sudo zypper install xorg-x11-devel
sudo ln -sf /usr/include/asm/byteorder.h /usr/include/sys/byteorder.h
wget http://downloads.sourceforge.net/project/imagemagick/old-sources/5.x/5.2/ImageMagick-5.2.0.tar.gz
tar xzvf ImageMagick-5.2.0.tar.gz
cd ImageMagick-5.2.0
./configure
make
sudo make install

...

mkdir ~/bff
unzip scripts.zip -d ~/bff

...

ln -s /usr/local/bin/convert ~/convert
ln -s ~/bff/scripts ~/bff
ln -s ~/bff/results ~/results

...

~/bff/batch.sh

System Performance Configurations for Fedora

...

sudo mv /usr/bin/strip /usr/bin/strip.bak
sudo ln -s /bin/true /usr/bin/strip

...

sudo zypper ar -f 'http://download.opensuse.org/repositories/X11:/windowmanagers/openSUSE_12.1/' windowmanager
sudo zypper install fluxbox

...