GithubHelp home page GithubHelp logo

oyjb / flayer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wdv4758h/flayer

0.0 2.0 0.0 4.57 MB

Automatically exported from code.google.com/p/flayer

Python 0.35% Makefile 0.09% C 94.54% Haskell 0.11% C++ 1.50% Objective-C 0.21% Perl 1.07% Assembly 1.44% Shell 0.22% XSLT 0.42% CSS 0.01% Groff 0.03%

flayer's Introduction

Flayer & LibFLayer
Will Drewry <[email protected]>, Tavis Ormandy <[email protected]>
Copyright 2007 Google Inc.

DISCLAIMER
----------

This software is a proof of concept.  It is not pretty, but it is functional.
Use at your own risk.  If you'd like to make it better, submit patches and
feedback!


License
-------

All included source, unless otherwise noted, is released on the GPL version 2.
See docs/COPYING for details.

Quick summary
-------------

Flayer is a valgrind plugin   It implements taint tracing and throws
information errors when tainted information is used in a conditional or system
call.  In addition, strlen, strcmp, and other string/memory-related functions
will also throw a "client check" error where forced tainting is used to taint
the output of those functions.

Using this output, Flayer can forcibly bypass conditional jumps and/or step
over function calls.

  $ valgrind --tool=flayer --help
    ......
    ......
    User options for Flayer:
    --alter-fn=0xADDR1:1,...         Inserts a forced jump over the function
                                     called from the given address and sets EAX
                                     to the 32-bit value.
    --taint-string=somestr           Taint bytes read() that match the string
    --alter-branch=0xADDR1:1,...     instrument branches (Ist_Exit) guards
                                     given addresses changing them to 1 or 0
    --taint-stdin=no|yes             enables stdin tainting [no]
    --taint-file=no|yes              enables file tainting [no]
    --taint-network=no|yes           enables network tainting [no]
    --file-filter=/path/prefix       enforces tainting on any files under
                                     the given prefix. []
    --verbose-instrumentation=no|yes enables verbose translation logging [no]




Installing Flayer
------------

If you check out the source from subversion, you can build by running:

  ./configure &&  make &&  make install

Despite valgrind supporting multiple architectures, currently Flayer only works
with 32-bit x86 code.  This is due to the system call wrapping code.  If you'd
like to submit a patch to add more platforms, better system call coverage, or
use of the valgrind syswrap code, please drop me a mail!


Using LibFlayer
---------------

Currently, there is no installer for LibFlayer.  Feel free to send a patch!

Until then, you can try it out by setting your PYTHONPATH. E.g.,

  PYTHONPATH=/opt/libflayer /opt/libflayer/examples/flayersh

flayer's People

Watchers

James Cloos avatar IteRatorS avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.