Skip to content

StringLiteralXRefAnalyzer + Ghidra 12 compatibility + minor improvements#79

Open
izmcm wants to merge 14 commits into
ReverseApple:mainfrom
izmcm:main
Open

StringLiteralXRefAnalyzer + Ghidra 12 compatibility + minor improvements#79
izmcm wants to merge 14 commits into
ReverseApple:mainfrom
izmcm:main

Conversation

@izmcm

@izmcm izmcm commented Mar 25, 2026

Copy link
Copy Markdown
  • Improve README documentation
  • Add support to Ghidra 12 (from Ghidra 12 Compatibility #78)
  • Add StringLiteralXRefAnalyzer - Adds XREF to show strings referenced by each address
  • Minor improvements

@nmggithub nmggithub left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello, @izmcm ! It looks like you may have included some of your own local config (e.g. .idea, gradle.properties, perhaps more) in this PR. Can you take a look and clean it up, please?

Copilot AI review requested due to automatic review settings April 6, 2026 23:16
@izmcm
izmcm requested a review from nmggithub April 6, 2026 23:17

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the project for Ghidra 12, expands analysis capabilities with a new ARM64 string-literal xref analyzer, and refreshes developer/setup documentation and build tooling.

Changes:

  • Update loader API usage for Ghidra 12 compatibility.
  • Add StringLiteralXRefAnalyzer to reconstruct string literal cross-references from ADRP+ADD(+SUB) sequences.
  • Refresh development docs and Gradle wrapper/tooling setup (README overhaul, wrapper files, test runtime dependency, ignore rules).

Reviewed changes

Copilot reviewed 9 out of 12 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/main/java/lol/fairplay/ghidraapple/loading/UniversalBinaryLoader.kt Updates to new Ghidra 12 loader API and post-load fixups.
src/main/java/lol/fairplay/ghidraapple/analysis/passes/strings/StringLiteralXRefAnalyzer.kt New analyzer to add xrefs/comments for computed string literal addresses.
src/main/java/lol/fairplay/ghidraapple/analysis/passes/objcclasses/OCStructureAnalyzer.kt Minor analyzer robustness/logging tweaks.
readme.md Replaces feature/WIP README with detailed development setup guide.
gradlew Adds POSIX Gradle wrapper script.
gradlew.bat Adds Windows Gradle wrapper script.
gradle/wrapper/gradle-wrapper.properties Pins the Gradle distribution used by the wrapper.
gradle/wrapper/gradle-wrapper.jar Adds Gradle wrapper JAR.
extension.properties Updates description and adds a GHIDRA_INSTALL_DIR entry.
DEVELOPMENT.md Removes older development setup instructions.
build.gradle.kts Adds JUnit platform launcher runtime dependency.
.gitignore Ignores gradle.properties and additional IntelliJ files.
Comments suppressed due to low confidence (1)

extension.properties:6

  • extension.properties looks like extension metadata that ships with the plugin. Adding a machine-specific absolute GHIDRA_INSTALL_DIR path here can leak local paths and is likely ignored by Gradle (which reads env vars / Gradle properties), while potentially confusing users. Please remove this from the shipped properties and rely on GHIDRA_INSTALL_DIR env var / gradle.properties as documented in build.gradle.kts.
version=@extversion@

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/main/java/lol/fairplay/ghidraapple/loading/UniversalBinaryLoader.kt Outdated
Comment thread readme.md
@izmcm
izmcm requested a review from Copilot April 8, 2026 00:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 12 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread gradle/wrapper/gradle-wrapper.properties
@izmcm

izmcm commented Apr 20, 2026

Copy link
Copy Markdown
Author
  • Added SmallStringLiteralAnalyzer - decodes Swift small strings that are stored inline

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 14 changed files in this pull request and generated 5 comments.

Comment thread gradlew Outdated
Comment thread src/main/java/lol/fairplay/ghidraapple/loading/UniversalBinaryLoader.kt Outdated
@izmcm

izmcm commented May 7, 2026

Copy link
Copy Markdown
Author

@nmggithub I believe I did all the changes you and Copilot requested. I also added a new analyzer that decoded small Swift strings. Let me know if there is anything I can make :)

@nmggithub

Copy link
Copy Markdown
Contributor

@nmggithub I believe I did all the changes you and Copilot requested. I also added a new analyzer that decoded small Swift strings. Let me know if there is anything I can make :)

I'll take a look when I can. I really do appreciate the effort you put into this!

@AngeloD2022

Copy link
Copy Markdown
Contributor

Hey, thanks for the PR! I'll test these changes tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants