isle
isle copied to clipboard
Feature: Run the Ghidra import script run in CI
- [ ] Try to make the Ghidra script run in GitHub Actions
- [ ] If that works:
- [ ] Set up a user account for the CI
- [ ] Automatically run the script on new merges to
master
based on https://github.com/isledecomp/isle/pull/909#issuecomment-2106055112
Notes:
- There are existing and maintained Docker images, see e.g. https://github.com/blacktop/docker-ghidra
- Ghidra supports a "Headless mode", though it is not clear if the existing arguments provide sufficient functionality
- The relevant files are https://github.com/NationalSecurityAgency/ghidra/blob/ebfd108ddecfd0964ffa51f1cc8fcc3c70f3e7df/Ghidra/RuntimeScripts/Linux/support/analyzeHeadless and https://github.com/NationalSecurityAgency/ghidra/blob/ebfd108ddecfd0964ffa51f1cc8fcc3c70f3e7df/Ghidra/Features/Base/src/main/java/ghidra/app/util/headless/AnalyzeHeadless.java
- If the existing functionality turns out to be insufficient, we can probably create a Java file similar to that one
- See https://github.com/h4sh5/ghidra-headless-decompile for an example of a customization
- It might be necessary to download and install Ghidrathon manually if Ghidra's integrated installer cannot be used
- Other functionality that needs to be worked out:
- [ ] Open a shared repository
- [ ] Launch a Python 3 script
- [ ] Save and commit a change to the repository