Book Image

Ghidra Software Reverse Engineering for Beginners

By : A. P. David
Book Image

Ghidra Software Reverse Engineering for Beginners

By: A. P. David

Overview of this book

Ghidra, an open source software reverse engineering (SRE) framework created by the NSA research directorate, enables users to analyze compiled code on any platform, whether Linux, Windows, or macOS. This book is a starting point for developers interested in leveraging Ghidra to create patches and extend tool capabilities to meet their cybersecurity needs. You'll begin by installing Ghidra and exploring its features, and gradually learn how to automate reverse engineering tasks using Ghidra plug-ins. You’ll then see how to set up an environment to perform malware analysis using Ghidra and how to use it in the headless mode. As you progress, you’ll use Ghidra scripting to automate the task of identifying vulnerabilities in executable binaries. The book also covers advanced topics such as developing Ghidra plug-ins, developing your own GUI, incorporating new process architectures if needed, and contributing to the Ghidra project. By the end of this Ghidra book, you’ll have developed the skills you need to harness the power of Ghidra for analyzing and avoiding potential vulnerabilities in code and networks.
Table of Contents (20 chapters)
1
Section 1: Introduction to Ghidra
6
Section 2: Reverse Engineering
12
Section 3: Extending Ghidra

Chapter 2

  1. Ghidra scripts are useful because they can be used to automatize reverse engineering tasks.

    Some tasks that you can automatize using Ghidra scripts are the following:

    - Searching for strings and code patterns

    - Automatically deobfuscating code

    - Adding useful comments to enrich the dissasembly

  2. Scripts are organized by category, as shown on the left-hand side of the following screenshot:

    Script Manager

    When clicking on the checklist icon located in the upper-right margin, as shown in the preceding screenshot taken from the Script Manager window, the paths of script directories will be shown:

    Script Directories

    But the organization of the scripts in the Script Manager is taken from the @category field located in the header of the script code, as shown in the following listing:

    //TODO write a description for this script //@author //@category Strings
    //@keybinding //@menupath //@toolbar 

    Notice that the previous script header is a Python header, but an analogous header is used...