1 of 9

DynamoRIO Projects

Branden Clark, Toshi Piazza, Ze Qin Qiu

2 of 9

Progress update

Week 1:

  • Set up environments

Weeks 2-3:

  • Dr. Heapstat C front-end
  • Dr. Heapstat visualizer full callstack table sorting
  • Switch Dr. Memory installer to WIX

Weeks 4-6 (Upcoming):

  • Switch Dr. Heapstat’s output format to binary

Why the orange?

3 of 9

DR/libc conflict i#1547

Conflict

...�Searching C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\libcmt.lib:��libcmt.lib(strnicmp.obj) : error LNK2005: __strnicmp already defined in ntdll_imports.lib(ntdll.dll)�...

Blocking our commits

  • Easy to fix manually
  • Non-trivial to fix globally

Can’t run pre-commit test-suite until fixed.

4 of 9

WIX for Dr.Memory

Conflict i#1608:

ClamAV reports Win.Adware.Linkular in DrMemory-Windows-1.7.0-5.exe��So I will do without your tool if you plan to install adware on computers��Regards :(

Let’s get WIX for our Installer

  • NSIS installer == adware?
  • Wix has better uninstall support
  • There is a visual studio add-on that makes WIX installers
    • Seems to be broken for Dr.Memory...
  • Going to try with their compiler and linker(Candle and Light)

5 of 9

What is DynamoRIO anyway?

Dynamic binary instrumentation system

6 of 9

What?

7 of 9

Demo!

8 of 9

Demo overview

DR lets us run code using callbacks

Count instructions using BB level callback.

  • More efficient than using an instruction level callback

Instruction count side channel

  • Non-contrived example

9 of 9

Thanks!

Derek Bruening & Qin Zhao

Prof. Goldschmidt & Prof. Moorthy

Sean O’Sullivan

RCOS