Compare commits
5 Commits
aa8b70931c
...
9d42d525a8
Author | SHA1 | Date |
---|---|---|
|
9d42d525a8 | |
|
26d03f13e2 | |
|
5fb85e43b3 | |
|
bce039f350 | |
|
b1cdaa01d5 |
|
@ -10,7 +10,7 @@ final: prev: {
|
|||
ghidra_headless = final.ghidra.lib;
|
||||
|
||||
# stuff that tracks upstream
|
||||
ghidra = final.callPackage ./pkgs/reverse-enginering/ghidra/build.nix {
|
||||
ghidra = final.callPackage ./pkgs/reverse-engineering/ghidra/build.nix {
|
||||
protobuf = final.protobuf_21;
|
||||
};
|
||||
ghidra-extensions = final.lib.recurseIntoAttrs (final.callPackage ./pkgs/reverse-engineering/ghidra/extensions.nix { });
|
||||
|
|
|
@ -65,4 +65,11 @@
|
|||
];
|
||||
|
||||
pythonImportsCheck = [ "binsync" ];
|
||||
|
||||
meta = {
|
||||
description = "Reversing plugin for cross-decompiler collaboration, built on git";
|
||||
homepage = "https://github.com/binsync/binsync";
|
||||
changelog = "https://github.com/binsync/binsync/releases/tag/${src.tag}";
|
||||
license = lib.licenses.bsd2;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -67,4 +67,11 @@
|
|||
"tests/test_decompilers.py"
|
||||
"tests/test_remote_ghidra.py"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Library for writing plugins in any decompiler: includes API lifting, common data formatting, and GUI abstraction";
|
||||
homepage = "https://github.com/binsync/libbs";
|
||||
changelog = "https://github.com/binsync/libbs/releases/tag/${src.tag}";
|
||||
license = lib.licenses.bsd2;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,16 +21,17 @@ let
|
|||
platforms = oldMeta.platforms or ghidra.meta.platforms;
|
||||
};
|
||||
|
||||
buildGhidraExtension =
|
||||
buildGhidraExtension = lib.extendMkDerivation {
|
||||
constructDrv = stdenv.mkDerivation;
|
||||
extendDrvArgs =
|
||||
finalAttrs:
|
||||
{
|
||||
pname,
|
||||
nativeBuildInputs ? [ ],
|
||||
meta ? { },
|
||||
...
|
||||
}@args:
|
||||
stdenv.mkDerivation (
|
||||
args
|
||||
// {
|
||||
{
|
||||
nativeBuildInputs = nativeBuildInputs ++ [
|
||||
unzip
|
||||
jdk
|
||||
|
@ -58,22 +59,28 @@ let
|
|||
mkdir -p $out/lib/ghidra/Ghidra/Extensions
|
||||
unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip
|
||||
|
||||
# Prevent attempted creation of plugin lock files in the Nix store.
|
||||
for i in $out/lib/ghidra/Ghidra/Extensions/*; do
|
||||
touch "$i/.dbDirLock"
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = metaCommon meta;
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
buildGhidraScripts =
|
||||
buildGhidraScripts = lib.extendMkDerivation {
|
||||
constructDrv = stdenv.mkDerivation;
|
||||
extendDrvArgs =
|
||||
finalAttrs:
|
||||
{
|
||||
pname,
|
||||
meta ? { },
|
||||
...
|
||||
}@args:
|
||||
stdenv.mkDerivation (
|
||||
args
|
||||
// {
|
||||
{
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
@ -95,8 +102,8 @@ let
|
|||
'';
|
||||
|
||||
meta = metaCommon meta;
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit buildGhidraExtension buildGhidraScripts;
|
||||
|
|
|
@ -11,11 +11,13 @@ lib.makeScope newScope (self: {
|
|||
buildGhidraScripts
|
||||
;
|
||||
|
||||
binsync = self.callPackage ./extensions/binsync {};
|
||||
|
||||
findcrypt = self.callPackage ./extensions/findcrypt { };
|
||||
|
||||
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension {
|
||||
inherit ghidra;
|
||||
};
|
||||
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension { };
|
||||
|
||||
ghidra-firmware-utils = self.callPackage ./extensions/ghidra-firmware-utils { };
|
||||
|
||||
ghidra-golanganalyzerextension = self.callPackage ./extensions/ghidra-golanganalyzerextension { };
|
||||
|
||||
|
@ -34,6 +36,4 @@ lib.makeScope newScope (self: {
|
|||
sleighdevtools = self.callPackage ./extensions/sleighdevtools { inherit ghidra; };
|
||||
|
||||
wasm = self.callPackage ./extensions/wasm { inherit ghidra; };
|
||||
|
||||
binsync = self.callPackage ./extensions/binsync {};
|
||||
})
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
binsync
|
||||
] ++ binsync.optional-dependencies.ghidra));
|
||||
in buildGhidraScripts {
|
||||
pname = "binsync-ghidra";
|
||||
pname = "BinSync";
|
||||
inherit (python.pkgs.binsync) version;
|
||||
|
||||
src = runCommand "binsync-ghidra-scripts" {
|
||||
|
@ -37,4 +37,10 @@ in buildGhidraScripts {
|
|||
--replace-fail 'plugin_command = "binsync -s ghidra"' \
|
||||
'plugin_command = "${lib.getExe' binsync_env "binsync"} -s ghidra"'
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Reversing plugin for cross-decompiler collaboration, built on git";
|
||||
homepage = "https://github.com/binsync/binsync";
|
||||
license = lib.licenses.bsd2;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
lib,
|
||||
ghidra,
|
||||
buildGhidraExtension,
|
||||
gradle,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
ghidra.buildGhidraExtension (finalAttrs: {
|
||||
buildGhidraExtension (finalAttrs: {
|
||||
pname = "ghidra-delinker-extension";
|
||||
version = "0.5.1";
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ buildGhidraExtension {
|
|||
pname = "gnudisassembler";
|
||||
version = lib.getVersion ghidra;
|
||||
|
||||
src = "${ghidra}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_GnuDisassembler.zip";
|
||||
src = "${ghidra.lib}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_GnuDisassembler.zip";
|
||||
|
||||
postPatch = ''
|
||||
ln -s ${binutils-src} binutils-${binutils-version}.tar.bz2
|
||||
|
|
|
@ -8,7 +8,7 @@ buildGhidraExtension {
|
|||
pname = "machinelearning";
|
||||
version = lib.getVersion ghidra;
|
||||
|
||||
src = "${ghidra}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_MachineLearning.zip";
|
||||
src = "${ghidra.lib}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_MachineLearning.zip";
|
||||
dontUnpack = true;
|
||||
|
||||
# Built as part ghidra
|
||||
|
|
|
@ -9,7 +9,7 @@ buildGhidraExtension {
|
|||
pname = "sleighdevtools";
|
||||
version = lib.getVersion ghidra;
|
||||
|
||||
src = "${ghidra}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_SleighDevTools.zip";
|
||||
src = "${ghidra.lib}/lib/ghidra/Extensions/Ghidra/${ghidra.distroPrefix}_SleighDevTools.zip";
|
||||
dontUnpack = true;
|
||||
|
||||
# Built as part ghidra
|
||||
|
|
|
@ -23,7 +23,7 @@ buildGhidraExtension (finalAttrs: {
|
|||
|
||||
# this doesn't really compile, it compresses sinc into sla
|
||||
pushd data
|
||||
ant -f build.xml -Dghidra.install.dir=${ghidra}/lib/ghidra sleighCompile
|
||||
ant -f build.xml -Dghidra.install.dir=${ghidra.lib}/lib/ghidra sleighCompile
|
||||
popd
|
||||
|
||||
runHook postConfigure
|
||||
|
|
|
@ -29,8 +29,10 @@ let
|
|||
nativeBuildInputs = [
|
||||
makeBinaryWrapper
|
||||
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
|
||||
postBuild =
|
||||
''
|
||||
postBuild = ''
|
||||
# Prevent attempted creation of plugin lock files in the Nix store.
|
||||
touch $out/lib/ghidra/Ghidra/.dbDirLock
|
||||
|
||||
makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
|
||||
--set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
|
||||
makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \
|
||||
|
|
Loading…
Reference in New Issue