November 2005 New Features in Paradyn and Dyninst Matthew LeGendre Ray Chen

Slides:



Advertisements
Similar presentations
Purdue University Center for Education and Research in Information Assurance and Security Building a distributed intrusion detection system with Perl Diego.
Advertisements

Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
University of Maryland Smarter Code Generation for Dyninst Nick Rutar.
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.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
Technical Architectures
VB in Context Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh Pittsburgh, Pa 15260
Inventory Management System With Berkeley DB 1. What is Berkeley DB? Berkeley DB is an Open Source embedded database library that provides scalable, high-
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
MS Access Advanced Instructor: Vicki Weidler Assistant:
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
CS 350 Operating Systems & Programming Languages Ethan Race Oren Rasekh Christopher Roberts Christopher Rogers Anthony Simon Benjamin Ramos.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Introduction to .Net Framework
Manage Engine: Q Engine. What is it?  Tool developed by Manage Engine that allows one to test web applications using a variety of different tests to.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
University of Maryland Compiler-Assisted Binary Parsing Tugrul Ince PD Week – 27 March 2012.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 12 1 Microsoft Office Access 2003 Tutorial 12 – Managing and Securing a Database.
University of Maryland parseThat: A Robust Arbitrary-Binary Tester for Dyninst Ray Chen.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University DCCFinder: A Very- Large Scale Code Clone Analysis.
University of Maryland The New Dyninst Event Model James Waskiewicz.
DCE (distributed computing environment) DCE (distributed computing environment)
Lawrence Livermore National Laboratory Matthew LeGendre LLNL-PRES Lawrence Livermore National Laboratory, P. O. Box 808, Livermore,
March 17, 2005 Roadmap of Upcoming Research, Features and Releases Bart Miller & Jeff Hollingsworth.
Andrew Bernat, Bill Williams Paradyn / Dyninst Week Madison, Wisconsin April 29-May 1, 2013 New Features in Dyninst
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Games Development 2 Concurrent Programming CO3301 Week 9.
Environment Selection Application  Firefox 1.0 or 2.0  Apache Operating System  Linux  Windows XP Instrumentation Package  JIT (DynamoRio,
Test Specifications A Specification System for Multi-Platform Test Suite Configuration, Build, and Execution Greg Cooksey.
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
University of Maryland Paradyn as a Strict Dyninst Client James Waskiewicz.
By Jeff Dean & Sanjay Ghemawat Google Inc. OSDI 2004 Presented by : Mohit Deopujari.
AMD64/EM64T – Dyninst & ParadynMarch 17, 2005 The AMD64/EM64T Port of Dyninst and Paradyn Greg Quinn Ray Chen
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin April 12-14, 2010 Binary Rewriting with Dyninst Madhavi Krishnan and Dan McNulty.
CPS120: Introduction to Computer Science Compiling a C++ Program From The Command Line.
Application Communities Phase II Technical Progress, Instrumentation, System Design, Plans March 10, 2009.
April 2007The Deconstruction of Dyninst: Part 1- the SymtabAPI The Deconstruction of Dyninst Part 1: The SymtabAPI Giridhar Ravipati University of Wisconsin,
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 Paradyn Project Deconstruction of Dyninst: Best Practices and Lessons Learned Bill.
Personal Expense Tracker Ajmera Aneri S. ( ) Developed At : Developed By :
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Introduction to Operating Systems Concepts
SQL Database Management
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Security and Programming Language Work on SmartPhones
New Features in Dyninst 5.1
Performance Optimizations in Dyninst
Java Beans Sagun Dhakhwa.
New Features in Dyninst 6.1 and 6.2
Optimizing Your Dyninst Program
Microsoft Office Access 2003
CS 240 – Advanced Programming Concepts
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Graduation Project #1 University Internet Student Registration System
Presentation transcript:

November 2005 New Features in Paradyn and Dyninst Matthew LeGendre Ray Chen

– 2 – The Road from 4.2 to 5.0  Paradyn/Dyninst 4.2 was released in March  Paradyn/Dyninst 5.0 coming very soon.  In that time, we’ve changed ~40,000* lines out of Dyninst’s 146,000 line code base. But the code base only grew by ~4,000 lines * loose estimate

– 3 – Dyninst 5.0 Major Features  MRNet integration into Paradyn  More powerful instrumentation system  New threaded event handler  Support for multithreaded mutatees  Performance improvements  New test suite  Linux/AMD64 support  Improved Windows support

– 4 – Dyninst 5.0 Improvements in Scalability  Paradyn/Dyninst 5.0 will be able to handle a wider variety of applications at a more fine- grained level.  We recently used Dyninst to track every branch and return instruction in the Microsoft Word executable.  Users have used pre-releases to instrument every basic block in a ~200MB binary.

– 5 – Dyninst 5.0 MRNet Integration  Paradyn 5.0 now uses MRNet as a communication mechanism between the front end and its backends.  Lays the groundwork for us to start using Paradyn in large-scale computing environments.  An experimental implementation easily ran Paradyn on a 1024 node job.

– 6 – Dyninst 5.0 New Parsing and Instrumentation Systems  New parsing system helps us to distinguish code from data, allowing for more reliable and safe instrumentation.  New instrumentation system allows us to efficiently instrument any instruction in a binary.

– 7 – Dyninst 5.0 Support for Multithreaded Apps  Allows Dyninst to work with multithreaded mutatees Linux/x86, Linux/IA64, Linux/AMD64, AIX/Power, Solaris/SPARC, and Win32/x86  Mutators will need to be upgraded to use the new threading interface before they’ll work on multithreaded mutatees.

– 8 – Dyninst 5.0 BPatch_process Current DyninstAPI Model BPatch_thread BPatch_image BPatch_module BPatch_function

– 9 – Dyninst 5.0 Backwards Compatibility  Old Dyninst mutators will continue to work on single threaded applications.  Process operations that used to exist in BPatch_thread are being cloned in BPatch_process. For Example: BPatch_thread::malloc will call BPatch_process::malloc in the owner process.

– 10 – Dyninst 5.0 Performance Improvements  Lazy parsing of binaries and libraries speeds up Dyninst startup.  Cleaned up memory leaks and reduced memory usage in Dyninst.  We recently were able to run ~150 mutatees through one invocation of a Dyninst mutator.

– 11 – Dyninst 5.0 Register Optimizations  Register Liveness Analysis Instrumentation point analyzed for which registers are live Basetramp tailored for specific instPoint –Only live registers need to be saved –Reduces overhead of instrumentation Implemented for GPR and FPR on Power Implemented for GPR on x86_64

– 12 – Dyninst 5.0 Register Optimizations  Register Usage Analysis Snippet analyzed for registers used Basetramp tailored for snippets at that point –Functions called from instrumentation checked for register usage –Calls dealt with recursively Implemented for GPR and FPR on Power Implemented for block FPR on x86 and x86_64

– 13 – Dyninst 5.0 Register Optimization  Naturally leads to minitramp in-lining Basetramp generated specifically for minitramp Snippet becomes one contiguous piece of code Enabled with BPatch::setMergeTramp(true);  One step closer to Dyninst as binary editor

– 14 – Dyninst 5.0 Register Optimizations  This stuff works! Test written on Power architecture Every basic block of mutatee instrumented

– 15 – Dyninst 5.0 Transactions  More intelligent code generation requires a more descriptive API Code generated for multi-tramp and in-lining highly sensitive to their associated snippets Reduce unnecessary re-writes to mutatee memory Enabled from BPatch_process module –BPatch_process::beginInsertionSet(); –BPatch_process::finalizeInsertionSet(bool);

– 16 – Dyninst 5.0 Improved Testing  Old Testsuite’s Monolithic Structure 15 major test categories –Few developers know the meaning of all 15 Poor distribution of subtests –40 subtests in Test1 –1 subtest in Test15 Difficult to add new subtests –Functionality goes untested

– 17 – Dyninst 5.0 Improved Testing  New Testsuite Each subtest split into separate file –Easier to understand goal of test simply from code –Easier to add new test to the system Compatible with old testsuite –Nightly runs logged in regression database along with old testsuite Planned to replace old testsuite soon after 5.0 release

– 18 – Dyninst 5.0 Improved Testing  parseThat Tool for testing Dyninst on arbitrary binaries  Two major goals Allows for regular testing on production-scale application binaries –Eg: GCC, Firefox, MySQL Allows for detailed bug reports from users

– 19 – Dyninst 5.0 X86_64 Support  Introduces support for 64-bit mutatees  One library to instrument them all 32 and 64-bit mutatees both handled from same libdyninstAPI.so Mutatee word-length automatically recognized  Successfully running testsuite nightly

– 20 – Dyninst 5.0 Improved Windows Support  Windows is important for Dyninst’s future as a Security tool.  Now supporting Visual Studio 2003  More reliable stripped binary support  Able to handle newer debugging information formats.  Tested and works with the Microsoft Office suite.

– 21 – Dyninst 5.0 Miscellaneous  Keeping up with the times GCC 4.x Support –Mutatees built from GCC 4.x –Building DyninstAPI with GCC 4.x

– 22 – Dyninst 5.0 Questions? Matthew LeGendre Ray Chen