Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Practical Hardware Pentesting

You're reading from   Practical Hardware Pentesting A guide to attacking embedded systems and protecting them against the most common hardware attacks

Arrow left icon
Product type Paperback
Published in Apr 2021
Publisher Packt
ISBN-13 9781789619133
Length 382 pages
Edition 1st Edition
Arrow right icon
Author (1):
Arrow left icon
Jean-Georges Valle Jean-Georges Valle
Author Profile Icon Jean-Georges Valle
Jean-Georges Valle
Arrow right icon
View More author details
Toc

Table of Contents (20) Chapters Close

Preface 1. Section 1: Getting to Know the Hardware
2. Chapter 1: Setting Up Your Pentesting Lab and Ensuring Lab Safety FREE CHAPTER 3. Chapter 2: Understanding Your Target 4. Chapter 3: Identifying the Components of Your Target 5. Chapter 4: Approaching and Planning the Test 6. Section 2: Attacking the Hardware
7. Chapter 5: Our Main Attack Platform 8. Chapter 6: Sniffing and Attacking the Most Common Protocols 9. Chapter 7: Extracting and Manipulating Onboard Storage 10. Chapter 8: Attacking Wi-Fi, Bluetooth, and BLE 11. Chapter 9: Software-Defined Radio Attacks 12. Section 3: Attacking the Software
13. Chapter 10: Accessing the Debug Interfaces 14. Chapter 11: Static Reverse Engineering and Analysis 15. Chapter 12: Dynamic Reverse Engineering 16. Chapter 13: Scoring and Reporting Your Vulnerabilities 17. Chapter 14: Wrapping It Up – Mitigations and Good Practices 18. Assessments 19. Other Books You May Enjoy

Leveraging OpenOCD and GDB

First, what do we want to do and how?

We want to achieve control over the target chip, and we want to be able to do the following:

  • Control the execution flow in a typical debugger fashion (have a breakpoint, inspect and change variables, and so on).
  • Change the execution flow (change the result of a branching test, change CPU flags, and so on).
  • Have access to the RAM and possibly the ROM.

How can we achieve that? We saw that we can have very low-level access to the chip with OpenOCD, but using it to achieve all of our goals is a pretty harrowing, complex, and repetitive task. And what do we do about harrowing, complex, and repetitive tasks? We automate them. Since debugging is such a common task, we will use tools that other people built and leverage them to achieve our goals as depicted here:

Figure 12.1 – Debug chain

Figure 12.1 – Debug chain

We saw that OpenOCD is opening a port that can be used as a GDB server. GDB...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime