0%

Book Description

There’s a powerful new tool in the fight against malware. The US National Security Agency (NSA) recently released its reverse engineering framework, Ghidra, as free and open source software. This practical report explains how engineers can use Ghidra to analyze malware and determine its impact on vulnerable systems. Developers can also use this tool to get a detailed look at compiled programs.

Information security experts Ric Messier and Matthew Berninger show you how Ghidra helps you to analyze compiled code on Linux, Windows, and macOS. You’ll be able to visually inspect a program, follow the path of execution, and analyze the code from function call to function call. The more you work with Ghidra, the more you’ll understand how effective this platform is.

  • Get a feature overview of Ghidra, including a quick look into its origins
  • Explore program use cases, including malware analysis, compiler comparison, and efficiency improvements
  • Learn the advantages of running this Java-based framework in a container
  • Perform code analysis by disassembling and graphing a program using Ghidra’s CodeBrowser tool
  • Run Ghirdra on innocuous programs before analyzing code that may be infected

Table of Contents

  1. Preface
  2. 1. Overview of Ghidra
    1. Quick Features Overview
    2. Origins
    3. Use Cases
      1. Malware Analysis
      2. Compiler Comparison
      3. Learning
      4. Efficiency Improvements
    4. What’s Next?
  3. 2. Finding and Installing Ghidra
    1. Obtaining Ghidra
      1. Obtaining the Java Development Kit
      2. Extracting JDK on Linux
      3. Extracting JDK on Windows
      4. Editing the PATH Environment Variable
      5. Setting Your PATH Variable for Java in Linux
      6. Setting Your PATH Variable for Java (Windows)
    2. Docker Containers
    3. Running Ghidra Under Windows and Linux
      1. Starting Ghidra
    4. Ready to Start Analysis
  4. 3. Program Analysis with Ghidra
    1. Loading a Program into Ghidra
      1. Creating a Project
    2. Overview of the Interface
      1. Using CodeBrowser
    3. Disassembling a Program
    4. Graphing a Program
    5. Further Analysis
  5. 4. Next Steps
  6. A. Source Code
    1. Code
    2. Additional Function