Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ghidra: improvements #58453

Closed
wants to merge 10 commits into from
Closed

Conversation

deliciouslytyped
Copy link
Contributor

@deliciouslytyped deliciouslytyped commented Mar 27, 2019

(wip: botched this a bit)
changes so far:

  • dont change the name of the ghidra launcher
  • wrap more launchers with jdk

Questions:

  • what should be done with the binaries in the server directory (I haven't looked at this yet)
  • should all these binaries end up in bin?: are they all things that should end up in $PATH if someone uses Ghidra?

xref: #56959

- dont change the name of the ghidra launcher
- wrap more launchers with jdk
@Mic92
Copy link
Member

Mic92 commented Mar 29, 2019

I'd say put all binaries in PATH, which appear to be useful to be started without ghidra in the first place.

@deliciouslytyped
Copy link
Contributor Author

more changes pending: I would like to attach or make a new PR with plugins functionality in the next day or two, but first I want to learn to use scm properly once and for all. "soon".

@Mic92
Copy link
Member

Mic92 commented Mar 29, 2019

I found tig easier to use then plain git.

@ck3d ck3d mentioned this pull request Apr 6, 2019
10 tasks
@deliciouslytyped
Copy link
Contributor Author

I have not abandoned this, it has just been more difficult than I expected and I've been otherwise busy.
Someone helped me by cannibalizing the plugin system from idris, I have my own implementation attempting to use makeScope, that doesnt work yet. I'm blocked on my poor understanding (and confusion stacked on confusion) of how makeScope and related things work.

The plugin system allows using plugins from an in-tree plugin specification attrset, as well as using overrides to attach additional plugins that may not be in-tree.

@deliciouslytyped
Copy link
Contributor Author

Here's an example (dump) of how I'm currently using it:

with (import ./nixpkgs.nix); #pinning

let
  gh_path = /home/path/to/another-attempt.nix;
  plugin_path = ./plugin.nix;

  #just consume the args, the original isnt an overlay (doesnt need to reference self/super
  mkOverlay = set: self: super: set;

  overrides = mkOverlay { MyPlugin = (import plugin_path); };
  ghidraPlugins = (callPackage gh_path { inherit overrides; });

  ghidra = (ghidraPlugins.withPlugins (p: with p; [ ghidra-scala-loader MyPlugin ]));
  eclipse = eclipses.eclipseWithPlugins { eclipse = eclipses.eclipse-java; plugins = [ ghidra.ghidraDev ]; };
in
  (symlinkJoin {
    name = "shell";
    buildInputs = [
      ghidra
      eclipse
      ];
    paths = [
      ghidra
      eclipse
      ];
    }) // { inherit ghidra; }

@deliciouslytyped
Copy link
Contributor Author

This is superseded by #60664 .

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

Successfully merging this pull request may close these issues.

None yet

3 participants