Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Reverse Engineering Armv8-A Systems
  • Table Of Contents Toc
Reverse Engineering Armv8-A Systems

Reverse Engineering Armv8-A Systems

By : Austin Kim
close
close
Reverse Engineering Armv8-A Systems

Reverse Engineering Armv8-A Systems

By: Austin Kim

Overview of this book

Unlock the secrets hidden in binary code without needing the source! Written by a Linux kernel engineer and author with over 14 years of industry experience, this book lays a solid foundation in reverse engineering and takes you from curious analyst to expert. You’ll master advanced techniques to dissect kernel binaries, including kernel module files, vmlinux, and vmcore, giving you the power to analyze systems at their core. This practical, three-part journey starts with the essentials of reverse engineering, introducing the key features of Armv8-A processors and the ELF file format. The second part walks you through the reverse-engineering process, from Arm environment setup to using static and dynamic analysis tools, including innovative methods for analyzing kernel binaries and the powerful debugging tool uftrace. The final part covers security, exploring TrustZone and the latest security techniques to safeguard Arm devices at the hardware level. By the end of this reverse engineering book, you'll have comprehensive Armv8-A expertise and the practical skills to analyze any binary with confidence while leveraging advanced security features to harden your systems.
Table of Contents (22 chapters)
close
close
Preface
Lock Free Chapter
1
Part I: Fundamentals of Armv8-A Architecture
7
Part II: Background Knowledge for Binary Analysis
11
Part III: Unlocking Key Binary Analysis Skills for Reverse Engineering
17
Part IV: Security Features in Armv8-A Systems
20
Other Books You May Enjoy
21
Index

Memory corruption: buffer overflow case study

Let’s suppose that a variable in your program suddenly has an unexpected value, even though there is no code that sets it to that value. When this kind of issue happens, it can be difficult to troubleshoot.

If this happens accidentally, it is considered a bug in your program. However, if memory corruption is caused intentionally using malicious techniques, it is referred to as an exploit.

Introducing the example code

Let’s start analyzing the memory corruption symptom by looking at the following example code:

unsigned int task_state; 
void set_task_state(unsigned int new_state) { 
    task_state = new_state; 
}

This code looks simple. The set_task_state function is used to update the task_state global variable. Let’s assume that the set_task_state function is only designed to handle two valid states, defined as follows:

#define TASK_STATE_SLEEP 0 
#define TASK_STATE_RUN 1 

If you inspect...

CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
Reverse Engineering Armv8-A Systems
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist download Download options font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon