Copyright (c) 2010-2014 Google, Inc. licensed under the terms of the BSD.  All other rights reserved.
Copyright (c) 2000-2010 VMware, Inc. licensed under the terms of the BSD.  All other rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,
  this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of VMware, Inc. nor the names of its contributors may be
  used to endorse or promote products derived from this software without
  specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

**********************************************************
About DynamoRIO

DynamoRIO is a runtime code manipulation system that supports code
transformations on any part of a program, while it executes. DynamoRIO
exports an interface for building dynamic tools for a wide variety of uses:
program analysis and understanding, profiling, instrumentation,
optimization, translation, etc. Unlike many dynamic tool systems, DynamoRIO
is not limited to insertion of callouts/trampolines and allows arbitrary
modifications to application instructions via a powerful IA-32/AMD64
instruction manipulation library. DynamoRIO provides efficient,
transparent, and comprehensive manipulation of unmodified applications
running on stock operating systems (Windows or Linux) and commodity IA-32
and AMD64 hardware.

The DynamoRIO home page:

  http://dynamorio.org/

************************************************************
Quickstart instructions for running DynamoRIO:

--------------------------------------------------
On Linux:

32-bit:
  % bin32/drrun -c samples/bin32/libbbsize.so -- ls
64-bit:
  % bin64/drrun -c samples/bin64/libbbsize.so -- ls
For additional options:
  % bin32/drrun

For full control over child processes use a two-step process:
first configure with bin32/drconfig and then invoke the parent
process with bin32/drinject.

--------------------------------------------------
On Windows, with examples run from a cygwin shell (for cmd shell replace
the first slash with a backward slash: e.g., bin32\drrun.exe):

Method 1: directly invoke an application:
32-bit:
  % bin32/drrun.exe -c samples/bin32/bbsize.dll -- calc
64-bit:
  % bin64/drrun.exe -c samples/bin64/bbsize.dll -- calc

Method 2: configure an application and launch it separately.
This requires administrative privileges:
32-bit:
  % bin32/drconfig.exe -reg calc.exe -syswide_on -c samples/bin32/bbsize.dll
64-bit:
  % bin64/drconfig.exe -reg calc.exe -syswide_on -c samples/bin64/bbsize.dll
Now run the application however you normally would, with the mouse or from
the command line.  From a cygwin shell this will run 32-bit calc:
  % cmd /c start calc

Now close calc and a messagebox should pop up produced by the bbsize client.

Note that if you use cygwin unzip to extract files from the release package
.zip file, you'll need to mark all the .dll and .exe files as ugo+rx in
order to execute them.

************************************************************
Instructions for building:

If you are building from source, please see the DynamoRIO wiki for
information on the required tools on both Windows and Linux:

http://code.google.com/p/dynamorio/wiki/HowToBuild

************************************************************
Getting help and reporting bugs:

Query the DynamoRIO users group mailing list/discussion forum:

  http://groups.google.com/group/dynamorio-users

Use the Issue Tracker:

  http://code.google.com/p/dynamorio/issues/list

************************************************************
