Dynamic Binary Modification: Tools, Techniques, and by Kim Hazelwood

By Kim Hazelwood

Dynamic binary amendment instruments shape a software program layer among a working software and the underlying working approach, offering the strong chance to examine and probably alter each user-level visitor software guideline that executes. Toolkits outfitted upon this know-how have enabled laptop architects to construct strong simulators and emulators for design-space exploration, compiler writers to investigate and debug the code generated through their compilers, software program builders to totally discover the good points, bottlenecks, and function in their software program, or even end-users to increase the performance of proprietary software program working on their desktops. a number of dynamic binary amendment structures are freely to be had this present day that position this energy into the arms of the top person. whereas those platforms are fairly complicated internally, they masks that complexity with an easy-to-learn API that permits a customary consumer to ramp up particularly speedy and construct any of a few strong instruments. in the meantime, those instruments are powerful sufficient to shape the root for software program items in use at the present time. This ebook serves as a primer for researchers attracted to dynamic binary amendment platforms, their inner layout constitution, and the wide variety of instruments that may be outfitted leveraging those platforms. The hands-on examples awarded all through shape a superior origin for designing and developing extra advanced instruments, with an appreciation for the options essential to make these instruments strong and effective. in the meantime, the reader gets an appreciation for the interior layout of the engines themselves. desk of Contents: Dynamic Binary amendment: evaluate / utilizing a Dynamic Binary Modifier / software research and Debugging / energetic application amendment / Architectural Exploration / complex method Internals / historic views / precis and Observations

Show description

Read Online or Download Dynamic Binary Modification: Tools, Techniques, and Applications (Synthesis Lectures on Computer Architecture) PDF

Best design & architecture books

Mastering JXTA: Building Java Peer-to-Peer Applications

A accomplished, code-intensive consultant to development commercial-quality peer-to-peer purposes with JXTA and Java millions of individuals use peer-to-peer (P2P) functions akin to KaZaA, AOL speedy Messenger, and allotted. internet. those functions harness the idle CPU cycles in their host pcs to supply huge, immense databases of knowledge, construct strong processing engines, and allow conversation and file-sharing between clients world wide.

Network Architecture & Design ''A Field Guide for IT Professionals'' (Sams White Book)

Community structure and layout takes readers via each part of a brand new venture from shopper conferences, web site surveys, facts assortment and interpretation, documentation to really designing and imposing the community based on spec. The dialogue includes:An evaluate of LAN and WAN topologiesCoverage of NOS (Novell working System)Integration of the customer working process (this 50% of community structure is usually missed in comparable titles)ProtocolsConnectivity DevicesImplementing distant AccessSecurityInternet connectivityNetwork MonitoringIn addition, the writer has ready a pattern of shopper documentation, a thesaurus of phrases and a hassle taking pictures fast reference consultant.

Computer Organization and Design: The Hardware Software Interface, 3rd Edition

A revised printing for this booklet should be to be had in June 2007! what is New within the 3rd variation, Revised Printing an identical nice booklet will get greater! The revised printing gains the entire unique content material in addition to those extra features:. Appendix A (Assemblers, Linkers, and the SPIM Simulator) has been moved from the CD-ROM into the broadcast publication.

Load Distribution: Implementation for the Mach Microkernel

J iirgen N ehmer Load distribution is a vital notion for dispensed platforms with a purpose to in attaining larger functionality, source usage and reaction instances. supplying effi cient mechanisms for the obvious help of load distribution has confirmed to be an incredibly tricky project.

Additional resources for Dynamic Binary Modification: Tools, Techniques, and Applications (Synthesis Lectures on Computer Architecture)

Example text

This means that special care must be taken to ensure correctness, isolation, and transparency since the guest application was not designed to share an address space with other applications. If the binary modifier overwrites memory or registers used by the application, then the application could behave differently or incorrectly. Meanwhile, the binary modifier itself requires registers and memory to execute, and, therefore, it must internally manage the process of context switching between itself and the guest application.

More details of PinPlay are presented by Patil et al. [2010], while more details on the logging operating system effects is presented by Narayanasamy et al. [2006]. 4 CUSTOMIZABLE DEBUGGING Given that debuggers like gdb are used for interactively querying program state, combining a dynamic binary modifier with a debugger can provide powerful opportunities to extend the functionality of the debugger itself, or often even provide debugging capabilities at significantly improved speeds. Yet, combining these tools can be a challenge without explicit support since the debugger expects to see unaltered program state while the binary modifier will alter that state significantly.

The APIs provide the flexibility to decide whether to modify an instruction in place or to delete the instruction and create one or more completely new instructions in its place. 26 1 2 3 4 5 6 7 8 9 10 11 12 4. ACTIVE PROGRAM MODIFICATION Rewriting Memory Operands // Map the original effective address (originalEa) to a translated address static ADDRINT ProcessAddress(ADDRINT originalEa, ADDRINT size, UINT32 access); ... for (UINT32 op = 0; op

Download PDF sample

Rated 4.23 of 5 – based on 41 votes