$Name: release2_0-16 $
$Id: README,v 1.5 2002/05/02 18:20:16 ttsai Exp $

This directory contains sample buffer overflow exploits.  t1, t3, and t4 are
simple examples.  canary-exploit is an example of a format string exploit that
overwrites a return address without touching the bytes surrounding the return
address, which is where a canary would typically exist.  exploit-non-exec-stack
is an example of a return-into-libc exploit that shows how a buffer overflow
exploit can work, even if the stack is non-executable.

NOTE:  The xlock-exploit example has been removed.  Because xlock-exploit
requires X-Windows libraries to execute, the libsafe RPM packages with
xlock-exploit included dependencies on X-Windows.  As a result, xlock-exploit
has been removed to enable the libsafe RPM package to be installed on systems
with no X-Windows installation.

As a demonstration of how libsafe works, do the following:
(1) Build the libsafe shared library and the exploits by executing "make" in
	the top-level libsafe directory.
(2) Execute each program as is (i.e., without libsafe).  For each program, the
	result should be an interactive shell.
(3) Execute each program with libsafe.  The simplest way to do this is to use
	the "int.sh" script in the ./exploits directory.  For example, to
	execute "t1" with libsafe, execute "int.sh t1".  Repeat for t2, t4, and
	xlock-exploit.  For each exploit, libsafe should output a detection
	message to stderr and add an entry to /var/log/secure.
