Skip to content

Commit 6b6dad7

Browse files
committed
Merge remote-tracking branch 'NSA/master' into nsfw/cpu32-squash2
2 parents 8308495 + ce78b86 commit 6b6dad7

File tree

410 files changed

+15154
-5843
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

410 files changed

+15154
-5843
lines changed

DevGuide.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,29 @@
2727
The following is a list of dependencies, in no particular order.
2828
This guide includes instructions for obtaining many of these at the relevant step(s).
2929
You may not need all of these, depending on which portions you are building or developing.
30-
30+
#### At minimum you will need all of the following
3131
* Java JDK 11 (64-bit) - Free long term support (LTS) versions of JDK 11 are provided by:
3232
- AdoptOpenJDK
3333
- https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot
3434
- Amazon Corretto
3535
- https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html
36-
* Eclipse - It must support JDK 11. Eclipse 2018-12 or later should work. Other IDEs may work, but we have not tested them.
37-
- https://www.eclipse.org/downloads/
3836
* Gradle 5.0 or later - We use version 5.0, and tested with up to 5.6.3.
3937
- https://gradle.org/next-steps/?version=5.0&format=bin
4038
* A C/C++ compiler - We use GCC on Linux, Xcode (Clang) on macOS, and Visual Studio (2017 or later) on Windows.
4139
- https://gcc.gnu.org/
4240
- https://developer.apple.com/xcode/
4341
- https://visualstudio.microsoft.com/downloads/
44-
* Git - We use the official installer on Windows. Most Linux distros have git in their repos. Xcode provides git on macOS.
42+
#### Optional for Development
43+
* Eclipse - It must support JDK 11. Eclipse 2018-12 or later should work. Other IDEs may work, but we have not tested them.
44+
- https://www.eclipse.org/downloads/
45+
#### Necessary unless a download zip snapshot of the ghidra repository is used
46+
* Git - We use the official installer on Windows. For windows you can also use the github CLI or git from with (Windows Subsystem for Linux - WSL). Most Linux distros have git in their repos. Xcode provides git on macOS. You can skip Git if you download a .zip file of the ghidra repository.
4547
- https://git-scm.com/downloads
46-
* Bash - This is moot on Linux and macOS. On Windows, we use MinGW. This may be distributed with Git for Windows.
48+
- https://cli.github.com/
49+
#### Optional unless following [Manual download instructions](#manual-download-instructions)
50+
* Bash - This is moot on Linux and macOS. On Windows, we use MinGW. This may be distributed with Git for Windows. This can be skipped if using the automatic build.
4751
- https://osdn.net/projects/mingw/releases/
48-
* Bison and Flex - We use win-flex-bison v2.5.17. These packages may also be available in MSYS (MinGW). Most Linux distros have these in their repos. Xcode provides these for macOS.
49-
- https://sourceforge.net/projects/winflexbison/
52+
#### Necessary for the development and building of Ghidra, these and more will be downloaded during the [Automatic](#automatic-script-instructions) or the [Manual](#manual-download-instructions) instructions
5053
* dex2jar. We use version 2.0.
5154
- https://github.com/pxb1988/dex2jar/releases
5255
* AXMLPrinter2
@@ -68,10 +71,8 @@ If you need these offline, a reasonable course of action is to set up a developm
6871

6972
## Install Development and Build Tools
7073

71-
If you're on Windows, install Git, MinGW, Bison, and Flex.
72-
Many of the commands given below must be executed in Bash (Use git-bash or MSYS from MinGW).
73-
**IMPORTANT**: The bison and flex executables may be named `win-bison.exe` and `win-flex.exe`.
74-
Our build cannot currently cope with that, so you should rename them to `bison.exe` and `flex.exe`.
74+
If you're on Windows, install Git unless you will download a .zip clone of the ghidra repository. If you go the manual route
75+
many of the commands given below must be executed in Bash (Windows Subsystem for Linux (WSL), or Use git-bash or MSYS from MinGW).
7576

7677
Install OpenJDK 11 and make sure it's the default java.
7778

@@ -83,14 +84,15 @@ Install Gradle, add it to your `PATH`, and ensure it is launched using JDK 11.
8384

8485
## Setup Source Repository
8586

86-
You may choose any directory for your working copy, but these instructions will assume you have cloned the source to `~/git/ghidra`.
87+
You may choose any directory for your working copy, however these instructions will assume you have cloned the source to `~/git/ghidra`.
8788
Be sure to adjust the commands to match your chosen working directory if different than suggested:
8889

8990
```bash
9091
mkdir ~/git
9192
cd ~/git
9293
git clone [email protected]:NationalSecurityAgency/ghidra.git
9394
```
95+
or unzip a snapshot .zip of the ghidra repository
9496

9597
## Setup Build Dependency Repository
9698

@@ -263,7 +265,6 @@ Some of Ghidra's components are built for the native platform.
263265
We currently support Linux, macOS, and Windows 64-bit x86 systems.
264266
Others should be possible, but we do not test on them.
265267

266-
Ensure bison and flex are installed and in your `PATH`.
267268
Now build using Gradle:
268269

269270
On Linux:
@@ -364,7 +365,7 @@ The result can be added to an installation or source tree by copying it to `~/gi
364365
This task is often done manually from the Ghidra GUI, and the archives included in our official build require a fair bit of fine tuning.
365366
You will first need to import the relevant libraries from which you'd like to produce a FID database.
366367
This is often a set of libraries from an SDK.
367-
We include a variety of Visual Studio platforms in the official build.
368+
We include a variety of Visual Studio platforms in the official build. The official .fidb files can be found in the ghidra-data repository here https://github.com/NationalSecurityAgency/ghidra-data/tree/master/FunctionID
368369

369370
From a CodeBrowser window, select __File -> Configure__.
370371
Enable the "Function ID" plugins, and close the dialog.

Ghidra/Features/Base/.launch/Ghidra Code Coverage.launch

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
77
<listEntry value="1"/>
88
</listAttribute>
9+
<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
10+
<mapEntry key="[debug]" value="org.eclipse.jdt.launching.localJavaApplication"/>
11+
<mapEntry key="[run]" value="org.eclipse.jdt.launching.localJavaApplication"/>
12+
</mapAttribute>
913
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
1014
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;sourceLookupDirector&gt;&#10; &lt;sourceContainers duplicates=&quot;false&quot;&gt;&#10; &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#10;&amp;lt;classpathContainer path=&amp;quot;org.eclipse.jdt.launching.JRE_CONTAINER&amp;quot;/&amp;gt;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.classpathContainer&quot;/&gt;&#10; &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#10;&amp;lt;default/&amp;gt;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#10; &lt;/sourceContainers&gt;&#10;&lt;/sourceLookupDirector&gt;&#10;"/>
1115
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">

0 commit comments

Comments
 (0)