Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 Paradyn Project Deconstruction of Dyninst: Best Practices and Lessons Learned Bill.

Slides:



Advertisements
Similar presentations
Implementation Architecture
Advertisements

University of Maryland Smarter Code Generation for Dyninst Nick Rutar.
Program Representations. Representing programs Goals.
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 ProcControlAPI and StackwalkerAPI Integration into Dyninst Todd Frederick and Dan.
Paradyn Project Paradyn / Dyninst Week College Park, Maryland March 26-28, 2012 Paradyn Project Upcoming Features in Dyninst and its Components Bill Williams.
Paradyn Project Paradyn / Dyninst Week College Park, Maryland March 26-28, 2012 Self-propelled Instrumentation Wenbin Fang.
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-3, 2011 Introduction to the PatchAPI Wenbin Fang, Drew Bernat.
© 2006 Barton P. MillerFebruary 2006Binary Code Analysis and Editing A Framework for Binary Code Analysis, and Static and Dynamic Patching Barton P. Miller.
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Week 8 Implementation Design Alex Baker. Implementation Design System Design – Describes what the system should do Implementation Design – Describes what.
Dynamic Tainting for Deployed Java Programs Du Li Advisor: Witawas Srisa-an University of Nebraska-Lincoln 1.
VB in Context Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh Pittsburgh, Pa 15260
1 RAMP Breakout 1 Question 3 What are the standard distribution target machines? In what form should they be distributed? or What kind of infrastructure.
Sage User Network 11 th June 2009 Andrew Credland - Product Development Manager.
Precision Going back to constant prop, in what cases would we lose precision?
Tailoring Google Site Search Brett Lucas Payman Labbaf July 2008.
Incell Phonium Processor Project Plan Document Dale Mansholt Aaron Drake Jon Scruggs Travis Svehla.
Paradyn Project Dyninst/MRNet Users’ Meeting Madison, Wisconsin August 7, 2014 The Evolution of Dyninst in Support of Cyber Security Emily Gember-Jacobson.
Lawrence Livermore National Laboratory Matthew LeGendre LLNL-PRES Lawrence Livermore National Laboratory, P. O. Box 808, Livermore,
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
March 17, 2005 Roadmap of Upcoming Research, Features and Releases Bart Miller & Jeff Hollingsworth.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 1 Computer System Overview.
Andrew Bernat, Bill Williams Paradyn / Dyninst Week Madison, Wisconsin April 29-May 1, 2013 New Features in Dyninst
The Deconstruction of Dyninst: Experiences and Future Directions Drew Bernat, Madhavi Krishnan, Bill Williams, Bart Miller Paradyn Project 1.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Auther: Kevian A. Roudy and Barton P. Miller Speaker: Chun-Chih Wu Adviser: Pao, Hsing-Kuo.
University of Maryland New APIs from P/D Separation James Waskiewicz.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Environment Selection Application  Firefox 1.0 or 2.0  Apache Operating System  Linux  Windows XP Instrumentation Package  JIT (DynamoRio,
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
Enhanced Storage Architecture
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
© 2001 Barton P. MillerParadyn/Condor Week (12 March 2001, Madison/WI) The Paradyn Port Report Barton P. Miller Computer Sciences Department.
November 2005 New Features in Paradyn and Dyninst Matthew LeGendre Ray Chen
Test Specifications A Specification System for Multi-Platform Test Suite Configuration, Build, and Execution Greg Cooksey.
University of Maryland Paradyn as a Strict Dyninst Client James Waskiewicz.
Intermission. Binary parsing 2 The Deconstruction of Dyninst _lock_foo main foo dynamic instrumentation, debugger, static binary analysis tools, malware.
AMD64/EM64T – Dyninst & ParadynMarch 17, 2005 The AMD64/EM64T Port of Dyninst and Paradyn Greg Quinn Ray Chen
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin April 12-14, 2010 Binary Rewriting with Dyninst Madhavi Krishnan and Dan McNulty.
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin April 12-14, 2010 Binary Concolic Execution for Automatic Exploit Generation Todd Frederick.
© 2001 B. P. Miller & M. Livny (12-14 March 2001)Paradyn/Condor Week Agenda Paradyn/Condor Week 2001 Barton P. Miller Miron Livny
Paradyn Week Monday 8:45-9:15am - The Deconstruction of Dyninst: Lessons Learned and Best Practices The Deconstruction of Dyninst: Lessons Learned.
April 2007The Deconstruction of Dyninst: Part 1- the SymtabAPI The Deconstruction of Dyninst Part 1: The SymtabAPI Giridhar Ravipati University of Wisconsin,
Data analysis Now I have data. What can I do with them? Old way: Export it to a text file, import it back to SAS, SPSS or some stat package Drawbacks:
Join us on Twitter: #AU2013 Building Well-Performing Autodesk® AutoCAD® Applications Albert Szilvasy Software Architect.
© 2006 Andrew R. BernatMarch 2006Generalized Code Relocation Generalized Code Relocation for Instrumentation and Efficiency Andrew R. Bernat University.
© 2001 Week (14 March 2001)Paradyn & Dyninst Demonstrations Paradyn & Dyninst Demos Barton P. Miller Computer.
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin April 29-May 1, 2013 Detecting Code Reuse Attacks Using Dyninst Components Emily Jacobson, Drew.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
1 ROGUE Dynamic Optimization Framework Using Pin Vijay Janapa Reddi PhD. Candidate - Electrical And Computer Engineering University of Colorado at Boulder.
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin April 12-14, 2010 Paradyn Project Safe and Efficient Instrumentation Andrew Bernat.
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Common Transport Rafael Schloming. Objectives Scaling Engineering Time ● N experts in protocol & language -> 1 protocol expert & N language experts ●
Introduction to Operating Systems Concepts
Recent and Upcoming Advances in the Dyninst Toolkits
Kernel Code Coverage Nilofer Motiwala Computer Sciences Department
New Features in Dyninst 5.1
Lesson Objectives Aims You should be able to:
Orange Contribution to ONAP project Northbound API October update
The heavyweight parts of lightweight languages
Systems Analysis and Design
CompSci 725 Presentation by Siu Cho Jun, William.
Paradyn / Condor Week 2007 University of Wisconsin-Madison
New Features in Dyninst 6.1 and 6.2
GIFT / Fiscal Data Package Iteration 3
From Development to Production: Optimizing for Continuous Delivery
Introduction to Virtual Machines
Introduction to Virtual Machines
from Lutz Dietrich and Hans Kluge
Presentation transcript:

Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 Paradyn Project Deconstruction of Dyninst: Best Practices and Lessons Learned Bill Williams

What is Componentization? Software Project Public Interface Neat Idea Deconstruction of Dyninst 2

Software Project Neat Idea What is Componentization? Public Interface Component Public Interface Component Deconstruction of Dyninst 3

Why Components? Expose existing functionality Build new tools easily Orthogonality Testability Improved code quality Deconstruction of Dyninst 4

Dyninst and the Components AST Binary Process Stackwalker API Stackwalker API Patch API Patch API Symtab API Symtab API DataFlow API DataFlow API Instruction API Parse API Parse API Code Gen Code Gen ProcControl API Binary = Existing Component = New Component = Proposed DyninstAPI

ParseAPI: Defining the component Block Edge Function Cached register liveness info Instrumentability InstPoints Dyninst CFG model Deconstruction of Dyninst 6

ParseAPI: Defining the component Block Edge Function Cached register liveness info Instrumentability InstPoints Dyninst extensionsParseAPI CFG model Deconstruction of Dyninst 7

PatchAPI: Refine your assumptions Deconstruction of Dyninst 8 PatchAPI Dyninst Paradyn

SymtabAPI: Creating good abstractions …hiding messy internals Great interface… Deconstruction of Dyninst 9 ELF PE XCOFF

InstructionAPI: Adding missing features Old: Control flow and not much else Deconstruction of Dyninst 10

InstructionAPI: Adding missing features New: control flow and data flow Deconstruction of Dyninst 11

ProcControlAPI: Build one to throw away Too many features, and I don’t need all of them! Deconstruction of Dyninst 12

ProcControlAPI: Build one to throw away Ah, something that just does what I need! Deconstruction of Dyninst 13

Stackwalker: When customers attack Dyninst requirements Call Stack Frame type Normal Optimized Signal handler Instrumentation Location 3 rd party Platform Linux Windows Solaris AIX Call Stack Frame type Normal Optimized Signal handler Location 1 st party 3 rd party Platform Linux BlueGene STAT requirements Deconstruction of Dyninst 14

DataflowAPI: Cool isn’t enough Customers: the difference between a module and a component Deconstruction of Dyninst 15

What we’ve learned Internal and external users driving interface design Test new interfaces Change code incrementally Keep your project’s details where they belong Deconstruction of Dyninst 16

Componentization Tradeoffs Stability vs. improvement Internal requirements vs. external requirements Development time vs. scope Structured vs. organic Early feedback vs. interface stability Deconstruction of Dyninst 17