Skip to content

Commit b2a9906

Browse files
committed
Release 1.0.0
0 parents  commit b2a9906

37 files changed

+1601
-0
lines changed

.github/CODE OF CONDUCT.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
2+
# Contributor Covenant Code of Conduct
3+
4+
## Our Pledge
5+
6+
In the interest of fostering an open and welcoming environment, we as
7+
contributors and maintainers pledge to make participation in our project and
8+
our community a harassment-free experience for everyone, regardless of age, body
9+
size, disability, ethnicity, sex characteristics, gender identity and expression,
10+
level of experience, education, socio-economic status, nationality, personal
11+
appearance, race, religion, or sexual identity and orientation.
12+
13+
## Our Standards
14+
15+
Examples of behavior that contributes to creating a positive environment
16+
include:
17+
18+
* Using welcoming and inclusive language
19+
* Being respectful of differing viewpoints and experiences
20+
* Gracefully accepting constructive criticism
21+
* Focusing on what is best for the community
22+
* Showing empathy towards other community members
23+
24+
Examples of unacceptable behavior by participants include:
25+
26+
* The use of sexualized language or imagery and unwelcome sexual attention or
27+
advances
28+
* Trolling, insulting/derogatory comments, and personal or political attacks
29+
* Public or private harassment
30+
* Publishing others' private information, such as a physical or electronic
31+
address, without explicit permission
32+
* Other conduct which could reasonably be considered inappropriate in a
33+
professional setting
34+
35+
## Our Responsibilities
36+
37+
Project maintainers are responsible for clarifying the standards of acceptable
38+
behavior and are expected to take appropriate and fair corrective action in
39+
response to any instances of unacceptable behavior.
40+
41+
Project maintainers have the right and responsibility to remove, edit, or
42+
reject comments, commits, code, wiki edits, issues, and other contributions
43+
that are not aligned to this Code of Conduct, or to ban temporarily or
44+
permanently any contributor for other behaviors that they deem inappropriate,
45+
threatening, offensive, or harmful.
46+
47+
## Scope
48+
49+
This Code of Conduct applies within all project spaces, and it also applies when
50+
an individual is representing the project or its community in public spaces.
51+
Examples of representing a project or community include using an official
52+
project e-mail address, posting via an official social media account, or acting
53+
as an appointed representative at an online or offline event. Representation of
54+
a project may be further defined and clarified by project maintainers.
55+
56+
## Enforcement
57+
58+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
59+
reported by contacting the project team at info@foundryzero.co.uk . All
60+
complaints will be reviewed and investigated and will result in a response that
61+
is deemed necessary and appropriate to the circumstances. The project team is
62+
obligated to maintain confidentiality with regard to the reporter of an incident.
63+
Further details of specific enforcement policies may be posted separately.
64+
65+
Project maintainers who do not follow or enforce the Code of Conduct in good
66+
faith may face temporary or permanent repercussions as determined by other
67+
members of the project's leadership.
68+
69+
## Attribution
70+
71+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
72+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
73+
74+
[homepage]: https://www.contributor-covenant.org
75+
76+
For answers to common questions about this code of conduct, see
77+
https://www.contributor-covenant.org/faq

.github/CONTRIBUTING.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Foundry Zero Open Source Project Contributing Guide
2+
3+
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
4+
5+
6+
The following is a set of guidelines for contributing to ghidra-deep-links which is hosted in the Foundry Zero organisation on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
7+
8+
## Code of Conduct
9+
This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to info@foundryzero.co.uk.
10+
11+
## What should I know before I get started?
12+
13+
Take a look at the [README.md](https://github.com/foundryzero/ghidra-deep-links/blob/main/README.md) for more information about ghidra-deep-links.
14+
15+
## How Can I Contribute?
16+
17+
### Your First Code Contribution
18+
19+
Unsure where to begin contributing to ghidra-deep-links? You can start by looking through these `beginner` and `help-wanted` issues:
20+
21+
* [Beginner issues](https://github.com/foundryzero/ghidra-deep-links/labels/good%20first%20issue) - issues which should only require a few lines of code, and a test or two.
22+
* [Help wanted issues](https://github.com/foundryzero/ghidra-deep-links/labels/help-wanted) - issues which should be a bit more involved than `beginner` issues.
23+
24+
#### Pull Requests
25+
26+
The process described here has several goals:
27+
28+
- Maintain ghidra-deep-links's quality
29+
- Fix problems that are important to users
30+
- Engage the community in working toward the best possible ghidra-deep-links
31+
32+
While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
33+
34+
35+
### Reporting Bugs
36+
37+
#### Before Submitting A Bug Report
38+
39+
Before submitting a bug report, please check to see if the bug has already been raised as an issue by searching [our github issues](https://github.com/foundryzero/ghidra-deep-links/labels/bug)
40+
41+
#### How Do I Submit A (Good) Bug Report?
42+
43+
Bugs are tracked as GitHub issues. Please raise your bug as a GitHub issue using our [enhancement template](https://github.com/foundryzero/ghidra-deep-links/blob/main/.github/ISSUE_TEMPLATE/BUG%20REPORT.md).
44+
45+
Explain the problem and include additional details to help maintainers reproduce the problem:
46+
47+
* Use a clear and descriptive title for the issue to identify the problem.
48+
* Describe the exact steps which reproduce the problem in as many details as possible.
49+
* Provide specific examples to demonstrate the steps. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use Markdown code blocks.
50+
* Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
51+
* Explain which behavior you expected to see instead and why.
52+
53+
### Suggesting Enhancements
54+
55+
This section guides you through submitting an enhancement suggestion for ghidra-deep-links, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion 📝 and find related suggestions 🔎.
56+
57+
#### Before Submitting A Feature Request
58+
59+
Before submitting a feature request, please check to see if the bug has already been raised as an issue by searching [our github issues](https://github.com/foundryzero/ghidra-deep-links/labels/enhancement)
60+
61+
#### How Do I Submit A (Good) Enhancement Suggestion?
62+
63+
Features are tracked as GitHub issues. Please raise your bug as a GitHub issue using our [bug issue template](https://github.com/foundryzero/ghidra-deep-links/blob/main/.github/ISSUE_TEMPLATE/FEATURE%20REQUEST.md).
64+
65+
* **Use a clear and descriptive title** for the issue to identify the suggestion.
66+
* **Provide a step-by-step description of the suggested enhancement** in as many details as possible.
67+
* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
68+
* **Describe the current behavior** and **explain which behavior you would like to see instead** and why.
69+
* **Explain why this enhancement would be useful**
70+
* **Specify the name and version of the OS you're using.**
71+
72+
73+
## Attribution
74+
75+
This contributor guide is based on the [guide](https://github.com/atom/atom/blob/master/.CONTRIBUTING/CONTRIBUTING.md) developed by the Atom project

.github/ISSUE_TEMPLATE/BUG REPORT.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
### Environment
2+
3+
Please list the OS, version of ghidra and version of ghidra-deep-links under which this bug was experienced.
4+
5+
### Description
6+
7+
<!-- Description of the issue -->
8+
9+
### Steps to Reproduce
10+
11+
1. <!-- First Step -->
12+
2. <!-- Second Step -->
13+
3. <!-- and so on… -->
14+
15+
**Expected behavior:**
16+
17+
What you expect to happen
18+
19+
**Actual behavior:**
20+
21+
What actually happens
22+
23+
### Additional Information
24+
25+
Any additional information, configuration or data that might be necessary to reproduce the issue.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
## Summary
2+
3+
<!-- One paragraph explanation of the feature. -->
4+
5+
## Motivation
6+
7+
<!-- Why are we doing this? What use cases does it support? What is the expected outcome? -->
8+
9+
## Describe alternatives you've considered
10+
11+
<!-- A clear and concise description of the alternative solutions you've considered. Be sure to explain why ghidra-deep-links's existing functionality doesn't cover this feature. -->
12+
13+
## Additional context
14+
15+
<!-- Add any other context or screenshots about the feature request here. -->

.github/workflows/mac_app.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: build mac middleware
2+
on: workflow_dispatch
3+
jobs:
4+
build:
5+
runs-on: macos-latest
6+
steps:
7+
- name: Checkout
8+
uses: actions/checkout@v3
9+
10+
- name: Create output directories
11+
run: mkdir -p bundle/GhidraDeepLinksHandler.app/Contents/MacOS && mkdir -p bundle/GhidraDeepLinksHandler.app/Contents/Resources
12+
working-directory: os/mac
13+
14+
- name: Copy Info.plist
15+
run: cp Info.plist bundle/GhidraDeepLinksHandler.app/Contents/Info.plist
16+
working-directory: os/mac
17+
18+
- name: Copy icon
19+
run: cp ghidra-deep-links-logo.icns bundle/GhidraDeepLinksHandler.app/Contents/Resources/ghidra-deep-links-logo.icns
20+
working-directory: os/mac
21+
22+
- name: Build x86_64
23+
run: clang -target x86_64-apple-macos10.12 -framework Cocoa -lobjc *.m -o main-x86_64
24+
working-directory: os/mac
25+
26+
- name: Build ARM64
27+
run: clang -target arm64-apple-macos11 -framework Cocoa -lobjc *.m -o main-arm64
28+
working-directory: os/mac
29+
30+
- name: Package universal binary
31+
run: lipo -create -output bundle/GhidraDeepLinksHandler.app/Contents/MacOS/main main-x86_64 main-arm64
32+
working-directory: os/mac
33+
34+
- name: Create dmg
35+
run: hdiutil create /tmp/tmp.dmg -ov -volname "DeeplinksHandlerInstall" -fs HFS+ -srcfolder os/mac/bundle
36+
37+
- name: Finalise dmg
38+
run: hdiutil convert /tmp/tmp.dmg -format UDZO -o GhidraDeepLinksHandler.dmg
39+
40+
- name: Export artifacts 2
41+
uses: actions/upload-artifact@v3
42+
with:
43+
name: GhidraDeepLinksHandler
44+
path: GhidraDeepLinksHandler.dmg

.github/workflows/main.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
on: workflow_dispatch
2+
name: build
3+
jobs:
4+
build-matrix:
5+
runs-on: ubuntu-latest
6+
strategy:
7+
matrix:
8+
ghidra_version: ['10.4', '10.3.3', '10.3.2', '10.3.1', '10.3']
9+
steps:
10+
- name: checkout repo
11+
uses: actions/checkout@v3
12+
13+
- name: build
14+
env:
15+
GHIDRA_VERSION: ${{ matrix.ghidra_version }}
16+
run: docker compose up --exit-code-from build.service
17+
18+
- name: export artifacts
19+
uses: actions/upload-artifact@v3
20+
with:
21+
name: dist-${{ matrix.ghidra_version }}
22+
path: extension/dist/*.zip

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
*.class
2+
bin/
3+
.gradle/
4+
build/
5+
.settings/
6+
.project
7+
dist/
8+
.pydevproject
9+
.classpath
10+
11+
.DS_Store

BUILDING.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
### Requirements
2+
3+
- Docker, Docker Compose (only if building with docker, see below)
4+
- Java JDK 17+
5+
- Gradle
6+
7+
# Docker
8+
9+
### Requirements
10+
11+
- Docker
12+
- Docker Compose v2
13+
- A network connection on the build machine
14+
15+
```
16+
git clone https://github.com/foundryzero/ghidra-deep-links.git
17+
cd ghidra-deep-links
18+
GHIDRA_VERSION=10.3.3 docker compose up --exit-code-from build.service
19+
```
20+
21+
Prior to ghidra 10.3.2, ghidra plugins needed to be built against each new release of ghidra in order to be compatible. As of 10.3.2 it is possible to bypass the compatibility check, but it is still advisable to build the plugin for each specific version. To build for a different ghidra version, edit the `GHIDRA_VERSION` environment variable.
22+
23+
# Manual
24+
25+
### Requirements
26+
27+
- Java JDK 17+
28+
- Gradle
29+
- Ghidra (of the version you're building against)
30+
31+
```
32+
git clone https://github.com/foundryzero/ghidra-deep-links.git
33+
cd ghidra-deep-links/extension
34+
gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra/install
35+
```
36+
37+
However you build, the built extension will be placed in `dist/` in the source directory.
38+

Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM gradle:jdk19
2+
3+
RUN apt-get update && apt-get install python3-pip -y && rm -rf /var/lib/apt/lists/*
4+
RUN bash -c "AIOHTTP_NO_EXTENSIONS=1 pip3 install pygithub"
5+
6+
COPY docker_build.py /docker_build.py
7+
8+
CMD [ "python3", "-u", "/docker_build.py" ]

0 commit comments

Comments
 (0)