Skip to content

CTSRD-SOAAP/chromium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ead0d88 · Aug 10, 2015

History

56 Commits
May 8, 2015
May 8, 2015
Aug 10, 2015
May 8, 2015
Sep 23, 2013
May 11, 2015
May 4, 2015
Nov 14, 2014
May 8, 2015
Apr 28, 2015
May 11, 2015
Apr 28, 2015
Aug 9, 2015
May 8, 2015
Feb 25, 2014

Repository files navigation

SOAAP tools for Chromium

This repository contains tools for applying SOAAP to Chromium. To use them, you need to:

  1. Build SOAAP and its custom versions of LLVM and Clang.

  2. Check out the version of Chromium you're interested in:

    $ git submodule init
    $ git submodule update --reference . v42    # or v32, or...
  3. Use the run-gyp command to run Gyp (Chromium's meta-build tool) with appropriate arguments for FreeBSD and patch the resulting Ninja file with SOAAP-specific build targets:

    $ cd v42
    $ LLVM_PREFIX=/llvm/build/path SOAAP_PREFIX=/SOAAP/build/path ../run-gyp
  4. Run ninja to build Chromium and perform the SOAAP analysis:

    $ ninja -C out/Release chrome soaap

You can then inspect the output file out/Release/chrome.soaap.json for unsandboxed past-vulnerability warnings, call traces, etc.

The default chrome target builds Chrome in the normal fashion but also generates an LLVM IR file containing a linked version of Chrome. To convert this IR file into a native executable, run:

$ ninja -C out/Release chrome.bc.exe