| 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 |
| |
| ************************************************************ |