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

Practicing data processing instructions

After understanding the syntax of each instruction, the next step is to practice by examining as many assembly instructions as possible. In this section, you will learn how instructions related to data-processing operations are executed to perform specific tasks.

Here is a C code that uses logical operations and a comparison statement:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#define TASK_RUNNING          0x0000
#define TASK_INTERRUPTIBLE    0x0001
#define TASK_UNINTERRUPTIBLE  0x0002
#define __TASK_STOPPED        0x0004
void compare_operation(void)
{
    unsigned int state = TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE;
    unsigned int count = 1;
    if (state & TASK_UNINTERRUPTIBLE) {
        count++;
        state &= ~TASK_UNINTERRUPTIBLE;
    }
    else {
        count--;
        state |= __TASK_STOPPED;
    }
    check_curr_state(state);
}
int main()
{
    compare_operation();
    return...
Visually different images
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