Skip to Content
Android Hacker's Handbook
book

Android Hacker's Handbook

by Joshua J. Drake, Zach Lanier, Collin Mulliner, Pau Oliva Fora, Stephen A. Ridley, Georg Wicherski
March 2014
Intermediate to advanced
576 pages
15h 38m
English
Wiley
Content preview from Android Hacker's Handbook

Chapter 9Return Oriented Programming

This chapter introduces the basics of Return Oriented Programming (ROP) and why using it is necessary. The ARM architecture is very different from x86 in regards to ROP, and this chapter introduces some new concepts specific to ARM. The chapter examines the bionic dynamic linker as a case study of a rich and comparatively stable source of code usable for ROP and presents some ideas for automation.

History and Motivation

ROP is a technique to leverage existing native code in memory as an arbitrary payload instead of injecting custom native instruction payloads or shellcode. It has been documented in several degrees of abstraction in various academic papers, but its roots go back to the return2libc technique first publicly documented by Solar Designer in a 1997 post to the Bugtraq mailing list (http://seclists.org/bugtraq/1997/Aug/63). In that article, Solar demonstrated the reuse of existing x86 code fragments in order to bypass a non-executable stack protection mechanism. Later, Tim Newsham demonstrated the first chaining of more than two calls in his lpset Solaris 7 exploit from May 2000 (http://seclists.org/bugtraq/2000/May/90).

There are three main reasons to leverage existing native code in today's ARM environments and therefore use ROP. The primary, and most obvious reason, is the XN exploit mitigation as discussed in Chapter 12. The secondary reason is due to the separate data and instruction caches on the ARM architecture as described ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

iOS Hacker's Handbook

iOS Hacker's Handbook

Ralf-Philipp Weinmann, Charlie Miller, Stefan Esser, Dino DaiZovi, Vincenzo Iozzo, Dion Blazakis
Hacking Android

Hacking Android

Mohammed A. Imran, Srinivasa Rao Kotipalli
Hacking Exposed Mobile

Hacking Exposed Mobile

Neil Bergman, Mike Stanfield, Jason Rouse, Joel Scambray, Sarath Geethakumar, Swapnil Deshmukh, Scott Matsumoto, John Steven, Mike Price
Learning Android Forensics - Second Edition

Learning Android Forensics - Second Edition

Oleg Skulkin, Donnie Tindall, Rohit Tamma

Publisher Resources

ISBN: 9781118608647Purchase book