isle icon indicating copy to clipboard operation
isle copied to clipboard

Feature: Run the Ghidra import script run in CI

Open jonschz opened this issue 8 months ago • 0 comments

  • [ ] 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

jonschz avatar Jun 09 '24 17:06 jonschz