![]() The single-precision and double-precision variants of VNMUL support condition codes on them in ARM mode. We can amend the Sleigh constructors to reflect this. We can also amend the half-precision variant to reflect that the condition code should be 0xE in terms of value. The ARMv8 architecture reference manual states (at F6.1.148) that if a half-precision instruction is present and does not have a condition code of 1110, then the behavior is considered CONSTRAINED UNPREDICTABLE. This fixes VNMUL instructions disassembling as generic CDP instructions, making the disassembly much clearer. |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
eclipse | ||
Ghidra | ||
GhidraBuild | ||
GhidraDocs | ||
GPL | ||
gradle | ||
licenses | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
build.gradle | ||
certification.local.manifest | ||
CONTRIBUTING.md | ||
DevGuide.md | ||
DISCLAIMER.md | ||
LICENSE | ||
NOTICE | ||
README.md | ||
settings.gradle |
Ghidra Software Reverse Engineering Framework
Ghidra is a software reverse engineering (SRE) framework created and maintained by the National Security Agency Research Directorate. This framework includes a suite of full-featured, high-end software analysis tools that enable users to analyze compiled code on a variety of platforms including Windows, macOS, and Linux. Capabilities include disassembly, assembly, decompilation, graphing, and scripting, along with hundreds of other features. Ghidra supports a wide variety of processor instruction sets and executable formats and can be run in both user-interactive and automated modes. Users may also develop their own Ghidra plug-in components and/or scripts using Java or Python.
In support of NSA's Cybersecurity mission, Ghidra was built to solve scaling and teaming problems on complex SRE efforts, and to provide a customizable and extensible SRE research platform. NSA has applied Ghidra SRE capabilities to a variety of problems that involve analyzing malicious code and generating deep insights for SRE analysts who seek a better understanding of potential vulnerabilities in networks and systems.
To start developing extensions and scripts, try out the GhidraDev plugin for Eclipse, which is part of the distribution package. The full release build can be downloaded from our project homepage.
This repository contains the source for the core framework, features, and extensions. If you would like to contribute, please take a look at our contributor guide to see how you can participate in this open source project.
If you are a U.S. citizen interested in projects like this, to develop Ghidra, and other cybersecurity tools, for NSA to help protect our nation and its allies, consider applying for a career with us.