implement split package for ghidra
this allows having `ghidra_headless` not be dependent on any particular jdk package
This commit is contained in:
parent
8ae77094e6
commit
6eb846c9e3
|
@ -8,9 +8,9 @@ let
|
|||
in {
|
||||
options.services.ghidra-server = {
|
||||
enable = mkEnableOption "ghidra-server";
|
||||
enableAdminCli = mkEnableOption "ghidra-svrAdmin";
|
||||
enableAdminCli = mkEnableOption "ghidra-svrAdmin" // { default = true; };
|
||||
package = mkPackageOption pkgs "ghidra_headless" { };
|
||||
jdkPackage = mkPackageOption pkgs "openjdk17_headless" { };
|
||||
jdkPackage = mkPackageOption pkgs "openjdk21_headless" { };
|
||||
host = mkOption {
|
||||
default = null;
|
||||
defaultText = literalExpression "null";
|
||||
|
|
10
overlay.nix
10
overlay.nix
|
@ -7,17 +7,13 @@ final: prev: {
|
|||
makeSquashFs = prev.callPackage ./lib/make-squashfs {};
|
||||
makeHpcDist = final.callPackage ./lib/make-hpc-dist {};
|
||||
|
||||
ghidra_headless = prev.ghidra.override {
|
||||
openjdk17 = prev.openjdk17_headless;
|
||||
};
|
||||
|
||||
ghidra_headless = final.ghidra.lib;
|
||||
|
||||
# stuff that tracks upstream
|
||||
ghidra = final.callPackage ./pkgs/ghidra-xenia/build.nix {
|
||||
ghidra = final.callPackage ./pkgs/ghidra-xenia-v2/build.nix {
|
||||
protobuf = final.protobuf_21;
|
||||
};
|
||||
ghidra-extensions = final.lib.recurseIntoAttrs (final.callPackage ./pkgs/ghidra-xenia/extensions.nix { });
|
||||
ghidra-bin = final.callPackage ./pkgs/ghidra-xenia { };
|
||||
ghidra-extensions = final.lib.recurseIntoAttrs (final.callPackage ./pkgs/ghidra-xenia-v2/extensions.nix { });
|
||||
|
||||
kicad = final.callPackage ./pkgs/kicad-xenia { };
|
||||
kicadAddons = final.lib.recurseIntoAttrs (final.callPackage ./pkgs/kicad-xenia/addons {});
|
||||
|
|
|
@ -8,7 +8,7 @@ Subject: [PATCH] Use com.google.protobuf:protobuf-gradle-plugin
|
|||
Ghidra/Debug/Debugger-isf/build.gradle | 8 +-
|
||||
Ghidra/Debug/Debugger-rmi-trace/build.gradle | 14 +--
|
||||
build.gradle | 6 ++
|
||||
gradle/debugger/hasProtobuf.gradle | 94 --------------------
|
||||
gradle/hasProtobuf.gradle | 94 --------------------
|
||||
5 files changed, 26 insertions(+), 103 deletions(-)
|
||||
|
||||
diff --git a/Ghidra/Debug/Debugger-gadp/build.gradle b/Ghidra/Debug/Debugger-gadp/build.gradle
|
||||
|
@ -19,7 +19,7 @@ index 9e1c57faf..3a3242eb5 100644
|
|||
apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle"
|
||||
apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
|
||||
apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
|
||||
-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle"
|
||||
-apply from: "${rootProject.projectDir}/gradle/hasProtobuf.gradle"
|
||||
+apply plugin: 'com.google.protobuf'
|
||||
|
||||
apply plugin: 'eclipse'
|
||||
|
@ -41,7 +41,7 @@ index d135294a0..785681ca2 100644
|
|||
apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle"
|
||||
apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
|
||||
apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
|
||||
-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle"
|
||||
-apply from: "${rootProject.projectDir}/gradle/hasProtobuf.gradle"
|
||||
-
|
||||
+apply plugin: 'com.google.protobuf'
|
||||
apply plugin: 'eclipse'
|
||||
|
@ -63,9 +63,9 @@ index 40fbc17ab..7517ffe6e 100644
|
|||
apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle"
|
||||
apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle"
|
||||
apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle"
|
||||
-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle"
|
||||
-apply from: "${rootProject.projectDir}/gradle/hasProtobuf.gradle"
|
||||
+apply plugin: 'com.google.protobuf'
|
||||
apply from: "${rootProject.projectDir}/gradle/debugger/hasPythonPackage.gradle"
|
||||
apply from: "${rootProject.projectDir}/gradle/hasPythonPackage.gradle"
|
||||
|
||||
apply plugin: 'eclipse'
|
||||
eclipse.project.name = 'Debug Debugger-rmi-trace'
|
||||
|
@ -110,10 +110,10 @@ index b0c717fb1..5f56506a5 100644
|
|||
}
|
||||
}
|
||||
else {
|
||||
diff --git a/gradle/debugger/hasProtobuf.gradle b/gradle/debugger/hasProtobuf.gradle
|
||||
diff --git a/gradle/hasProtobuf.gradle b/gradle/hasProtobuf.gradle
|
||||
index 23b4ce74b..e69de29bb 100644
|
||||
--- a/gradle/debugger/hasProtobuf.gradle
|
||||
+++ b/gradle/debugger/hasProtobuf.gradle
|
||||
--- a/gradle/hasProtobuf.gradle
|
||||
+++ b/gradle/hasProtobuf.gradle
|
||||
@@ -1,94 +0,0 @@
|
||||
-/* ###
|
||||
- * IP: GHIDRA
|
||||
|
|
|
@ -1,44 +1,53 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, unzip
|
||||
, jdk
|
||||
, gradle
|
||||
, ghidra
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
unzip,
|
||||
jdk,
|
||||
gradle,
|
||||
ghidra,
|
||||
}:
|
||||
|
||||
let
|
||||
metaCommon = oldMeta:
|
||||
oldMeta // (with lib; {
|
||||
maintainers = (oldMeta.maintainers or []) ++ (with maintainers; [ vringar ]);
|
||||
metaCommon =
|
||||
oldMeta:
|
||||
oldMeta
|
||||
// {
|
||||
maintainers = (oldMeta.maintainers or [ ]) ++ (with lib.maintainers; [ vringar ]);
|
||||
platforms = oldMeta.platforms or ghidra.meta.platforms;
|
||||
});
|
||||
};
|
||||
|
||||
buildGhidraExtension = {
|
||||
pname, nativeBuildInputs ? [], meta ? { }, ...
|
||||
buildGhidraExtension =
|
||||
{
|
||||
pname,
|
||||
nativeBuildInputs ? [ ],
|
||||
meta ? { },
|
||||
...
|
||||
}@args:
|
||||
stdenv.mkDerivation (args // {
|
||||
stdenv.mkDerivation (
|
||||
args
|
||||
// {
|
||||
nativeBuildInputs = nativeBuildInputs ++ [
|
||||
unzip
|
||||
jdk
|
||||
gradle
|
||||
];
|
||||
|
||||
buildPhase = args.buildPhase or ''
|
||||
runHook preBuild
|
||||
|
||||
preBuild = ''
|
||||
# Set project name, otherwise defaults to directory name
|
||||
echo -e '\nrootProject.name = "${pname}"' >> settings.gradle
|
||||
|
||||
export GRADLE_USER_HOME=$(mktemp -d)
|
||||
gradle \
|
||||
--offline \
|
||||
--no-daemon \
|
||||
-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra
|
||||
|
||||
runHook postBuild
|
||||
# A config directory needs to exist when ghidra's GHelpBuilder is run
|
||||
export XDG_CONFIG_HOME="''${XDG_CONFIG_HOME:-$(mktemp -d)}"
|
||||
${args.preBuild or ""}
|
||||
'';
|
||||
|
||||
installPhase = args.installPhase or ''
|
||||
# Needed to run gradle on darwin
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
gradleBuildTask = args.gradleBuildTask or "buildExtension";
|
||||
gradleFlags = args.gradleFlags or [ ] ++ [ "-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra" ];
|
||||
|
||||
installPhase =
|
||||
args.installPhase or ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib/ghidra/Ghidra/Extensions
|
||||
|
@ -48,10 +57,18 @@ let
|
|||
'';
|
||||
|
||||
meta = metaCommon meta;
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
buildGhidraScripts = { pname, meta ? { }, ... }@args:
|
||||
stdenv.mkDerivation (args // {
|
||||
buildGhidraScripts =
|
||||
{
|
||||
pname,
|
||||
meta ? { },
|
||||
...
|
||||
}@args:
|
||||
stdenv.mkDerivation (
|
||||
args
|
||||
// {
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
@ -73,6 +90,9 @@ let
|
|||
'';
|
||||
|
||||
meta = metaCommon meta;
|
||||
});
|
||||
}
|
||||
);
|
||||
in
|
||||
{ inherit buildGhidraExtension buildGhidraScripts; }
|
||||
{
|
||||
inherit buildGhidraExtension buildGhidraScripts;
|
||||
}
|
||||
|
|
|
@ -3,10 +3,9 @@
|
|||
fetchFromGitHub,
|
||||
lib,
|
||||
callPackage,
|
||||
gradle_7,
|
||||
perl,
|
||||
gradle,
|
||||
makeBinaryWrapper,
|
||||
openjdk17,
|
||||
openjdk21,
|
||||
unzip,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
|
@ -20,7 +19,7 @@
|
|||
|
||||
let
|
||||
pname = "ghidra";
|
||||
version = "11.1.1";
|
||||
version = "11.2";
|
||||
|
||||
releaseName = "NIX";
|
||||
distroPrefix = "ghidra_${version}_${releaseName}";
|
||||
|
@ -28,7 +27,7 @@ let
|
|||
owner = "NationalSecurityAgency";
|
||||
repo = "Ghidra";
|
||||
rev = "Ghidra_${version}_build";
|
||||
hash = "sha256-t96FcAK3JwO66dOf4OhpOfU8CQfAczfF61Cg7m+B3fA=";
|
||||
hash = "sha256-iO6g3t8JNdc/wAC+JG+6Y7aZCq7T9zYQC3KKZcr+wzc=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
|
@ -43,8 +42,6 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
gradle = gradle_7;
|
||||
|
||||
patches = [
|
||||
# Use our own protoc binary instead of the prebuilt one
|
||||
./0001-Use-protobuf-gradle-plugin.patch
|
||||
|
@ -75,69 +72,6 @@ let
|
|||
HERE
|
||||
'';
|
||||
|
||||
# Adds a gradle step that downloads all the dependencies to the gradle cache.
|
||||
addResolveStep = ''
|
||||
cat >>build.gradle <<HERE
|
||||
task resolveDependencies {
|
||||
doLast {
|
||||
project.rootProject.allprojects.each { subProject ->
|
||||
subProject.buildscript.configurations.each { configuration ->
|
||||
resolveConfiguration(subProject, configuration, "buildscript config \''${configuration.name}")
|
||||
}
|
||||
subProject.configurations.each { configuration ->
|
||||
resolveConfiguration(subProject, configuration, "config \''${configuration.name}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void resolveConfiguration(subProject, configuration, name) {
|
||||
if (configuration.canBeResolved) {
|
||||
logger.info("Resolving project {} {}", subProject.name, name)
|
||||
configuration.resolve()
|
||||
}
|
||||
}
|
||||
HERE
|
||||
'';
|
||||
|
||||
# fake build to pre-download deps into fixed-output derivation
|
||||
# Taken from mindustry derivation.
|
||||
deps = stdenv.mkDerivation {
|
||||
pname = "${pname}-deps";
|
||||
inherit version src patches;
|
||||
|
||||
postPatch = addResolveStep;
|
||||
|
||||
nativeBuildInputs = [
|
||||
gradle
|
||||
perl
|
||||
] ++ lib.optional stdenv.isDarwin xcbuild;
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
export HOME="$NIX_BUILD_TOP/home"
|
||||
mkdir -p "$HOME"
|
||||
export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'"
|
||||
export GRADLE_USER_HOME="$HOME/.gradle"
|
||||
|
||||
# First, fetch the static dependencies.
|
||||
gradle --no-daemon --info -Dorg.gradle.java.home=${openjdk17} -I gradle/support/fetchDependencies.gradle init
|
||||
|
||||
# Then, fetch the maven dependencies.
|
||||
gradle --no-daemon --info -Dorg.gradle.java.home=${openjdk17} resolveDependencies
|
||||
runHook postBuild
|
||||
'';
|
||||
# perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
|
||||
| perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/maven/$x/$3/$4/$5" #e' \
|
||||
| sh
|
||||
cp -r dependencies $out/dependencies
|
||||
runHook postInstall
|
||||
'';
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha256-66gL4UFlBUo2JIEOXoF6tFvXtBdEX4b2MeSrV1b6Vg4=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
inherit
|
||||
|
@ -148,7 +82,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
postPatch
|
||||
;
|
||||
|
||||
outputs = ["bin" "out" "lib" "doc"];
|
||||
outputs = [ "out" "lib" "doc" ];
|
||||
|
||||
# Don't create .orig files if the patch isn't an exact match.
|
||||
patchFlags = [
|
||||
|
@ -179,7 +113,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
python3
|
||||
python3Packages.pip
|
||||
]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
xcbuild
|
||||
desktopToDarwinBundle
|
||||
];
|
||||
|
@ -188,24 +122,24 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
export HOME="$NIX_BUILD_TOP/home"
|
||||
mkdir -p "$HOME"
|
||||
export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'"
|
||||
mitmCache = gradle.fetchDeps {
|
||||
inherit pname;
|
||||
data = ./deps.json;
|
||||
};
|
||||
|
||||
ln -s ${deps}/dependencies dependencies
|
||||
gradleFlags = [ "-Dorg.gradle.java.home=${openjdk21}" ];
|
||||
|
||||
sed -i "s#mavenLocal()#mavenLocal(); maven { url '${deps}/maven' }#g" build.gradle
|
||||
|
||||
gradle --offline --no-daemon --info -Dorg.gradle.java.home=${openjdk17} buildGhidra
|
||||
runHook postBuild
|
||||
preBuild = ''
|
||||
export JAVA_TOOL_OPTIONS="-Duser.home=$NIX_BUILD_TOP/home"
|
||||
gradle -I gradle/support/fetchDependencies.gradle
|
||||
'';
|
||||
|
||||
gradleBuildTask = "buildGhidra";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$lib/lib/ghidra" "$bin/share/applications" "$doc/share/doc"
|
||||
mkdir -p "$lib/lib/ghidra" "$out/share/applications" "$doc/share/doc"
|
||||
|
||||
ZIP=build/dist/$(ls build/dist)
|
||||
echo $ZIP
|
||||
|
@ -218,23 +152,70 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
out_path="$(basename "$path")"
|
||||
mv "$lib/lib/ghidra/$path" "$doc/share/doc/ghidra/$out_path"
|
||||
done
|
||||
unzip "$doc/share/doc/ghidra/GhidraAPI_javadoc.zip" -d "$doc/share/doc/ghidra"
|
||||
rm "$doc/share/doc/ghidra/GhidraAPI_javadoc.zip"
|
||||
|
||||
for f in Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon*.png; do
|
||||
res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -c11-)
|
||||
install -Dm444 "$f" "$bin/share/icons/hicolor/''${res}x''${res}/apps/ghidra.png"
|
||||
install -Dm444 "$f" "$out/share/icons/hicolor/''${res}x''${res}/apps/ghidra.png"
|
||||
done;
|
||||
# improved macOS icon support
|
||||
install -Dm444 Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png $bin/share/icons/hicolor/32x32@2/apps/ghidra.png
|
||||
install -Dm444 Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png $out/share/icons/hicolor/32x32@2/apps/ghidra.png
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
mkdir -p "$bin/bin"
|
||||
ln -s "$lib/lib/ghidra/ghidraRun" "$bin/bin/ghidra"
|
||||
wrapProgram "$lib/lib/ghidra/support/launch.sh" \
|
||||
postFixup =
|
||||
let
|
||||
javaArgs = [
|
||||
"-showversion"
|
||||
"-cp $lib/lib/ghidra/Ghidra/Framework/Utility/lib/Utility.jar"
|
||||
|
||||
"-Djava.system.class.loader=ghidra.GhidraClassLoader"
|
||||
"-Xshare:off"
|
||||
|
||||
"-Dfile.encoding=UTF8"
|
||||
"-Dpython.console.encoding=UTF-8"
|
||||
|
||||
"-Duser.country=US"
|
||||
"-Duser.language=en"
|
||||
"-Duser.variant="
|
||||
|
||||
"-Dsun.java2d.opengl=false"
|
||||
"-Dfont.size.override="
|
||||
|
||||
"-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3"
|
||||
|
||||
"-Dcpu.core.limit="
|
||||
"-Dcpu.core.override="
|
||||
] ++ (lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
"-Xdock:name=$APPNAME"
|
||||
"-Declipse.filelock.disable=true"
|
||||
"-Dapple.laf.useScreenMenuBar=false"
|
||||
"-Dapple.awt.application.appearance=system"
|
||||
]) ++ (lib.optionals stdenv.hostPlatform.isLinux [
|
||||
"-Dsun.java2d.pmoffscreen=false"
|
||||
"-Dsun.java2d.xrender=true"
|
||||
"-Dsun.java2d.uiScale=1"
|
||||
"-Dawt.useSystemAAFontSettings=on"
|
||||
]);
|
||||
in ''
|
||||
mkdir -p "$out/bin"
|
||||
|
||||
APPNAME=Ghidra
|
||||
makeWrapper "${openjdk21}/bin/java" "$out/bin/ghidra" \
|
||||
--set-default NIX_GHIDRAHOME "$lib/lib/ghidra/Ghidra" \
|
||||
--prefix PATH : ${lib.makeBinPath [ openjdk17 ]}
|
||||
--prefix PATH : ${lib.makeBinPath [ openjdk21 ]} \
|
||||
--add-flags "${lib.strings.concatStringsSep " " javaArgs}" \
|
||||
--add-flags "ghidra.Ghidra ghidra.GhidraRun"
|
||||
|
||||
APPNAME=Ghidra-Headless
|
||||
makeWrapper "${openjdk21}/bin/java" "$out/bin/ghidra-analyzeHeadless" \
|
||||
--set-default NIX_GHIDRAHOME "$lib/lib/ghidra/Ghidra" \
|
||||
--prefix PATH : ${lib.makeBinPath [ openjdk21 ]} \
|
||||
--add-flags "${lib.strings.concatStringsSep " " javaArgs}" \
|
||||
--add-flags "-Xmx2G -XX:ParallelGCThreads=2 -XX:CICompilerCount=2" \
|
||||
--add-flags "ghidra.Ghidra ghidra.app.util.headless.AnalyzeHeadless"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
@ -267,6 +248,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
roblabla
|
||||
vringar
|
||||
];
|
||||
broken = stdenv.isDarwin && stdenv.isx86_64;
|
||||
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -1,83 +0,0 @@
|
|||
{ stdenv
|
||||
, fetchzip
|
||||
, lib
|
||||
, makeWrapper
|
||||
, autoPatchelfHook
|
||||
, openjdk17
|
||||
, pam
|
||||
, makeDesktopItem
|
||||
, icoutils
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
pkg_path = "$out/lib/ghidra";
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "ghidra";
|
||||
exec = "ghidra";
|
||||
icon = "ghidra";
|
||||
desktopName = "Ghidra";
|
||||
genericName = "Ghidra Software Reverse Engineering Suite";
|
||||
categories = [ "Development" ];
|
||||
terminal = false;
|
||||
startupWMClass = "ghidra-Ghidra";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "ghidra";
|
||||
version = "10.4";
|
||||
versiondate = "20230928";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_${version}_build/ghidra_${version}_PUBLIC_${versiondate}.zip";
|
||||
hash = "sha256-IiAQ9OKmr8ZgqmGftuW0ITdG06fb9Lr30n2H9GArctk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
icoutils
|
||||
]
|
||||
++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
|
||||
|
||||
buildInputs = [
|
||||
stdenv.cc.cc.lib
|
||||
pam
|
||||
];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "${pkg_path}"
|
||||
mkdir -p "${pkg_path}" "$out/share/applications"
|
||||
cp -a * "${pkg_path}"
|
||||
ln -s ${desktopItem}/share/applications/* $out/share/applications
|
||||
|
||||
icotool -x "${pkg_path}/support/ghidra.ico"
|
||||
rm ghidra_4_40x40x32.png
|
||||
for f in ghidra_*.png; do
|
||||
res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -d"x" -f1-2)
|
||||
mkdir -pv "$out/share/icons/hicolor/$res/apps"
|
||||
mv "$f" "$out/share/icons/hicolor/$res/apps/ghidra.png"
|
||||
done;
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
mkdir -p "$out/bin"
|
||||
ln -s "${pkg_path}/ghidraRun" "$out/bin/ghidra"
|
||||
|
||||
wrapProgram "${pkg_path}/support/launch.sh" \
|
||||
--prefix PATH : ${lib.makeBinPath [ openjdk17 ]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
|
||||
mainProgram = "ghidra";
|
||||
homepage = "https://github.com/NationalSecurityAgency/ghidra";
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ck3d govanify mic92 ];
|
||||
};
|
||||
|
||||
}
|
|
@ -0,0 +1,754 @@
|
|||
{
|
||||
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
|
||||
"!version": 1,
|
||||
"https://archive.eclipse.org": {
|
||||
"tools/cdt/releases/8.6/cdt-8.6.0": {
|
||||
"zip": "sha256-gbfRnVfEowCfR2FpmnLo1kK14dklHSu5jfQ4seKPi6k="
|
||||
}
|
||||
},
|
||||
"https://files.pythonhosted.org/packages": {
|
||||
"27/d6/003e593296a85fd6ed616ed962795b2f87709c3eee2bca4f6d0fe55c6d00/wheel-0.37.1-py2.py3-none-any": {
|
||||
"whl": "sha256-S9zX2EATgIYSbNCSVNxhlftPxvAcBQodcjbyYw2x0io="
|
||||
},
|
||||
"50/8f/518a37381e55a8857a638afa86143efa5508434613541402d20611a1b322/comtypes-1.4.1-py3-none-any": {
|
||||
"whl": "sha256-ogig48ocClNic12g/2YYIoAdzocxK4lNfXUq3QEKIbA="
|
||||
},
|
||||
"83/1c/25b79fc3ec99b19b0a0730cc47356f7e2959863bf9f3cd314332bddb4f68/pywin32-306-cp312-cp312-win_amd64": {
|
||||
"whl": "sha256-NyV3lMGtOe6b5lLaBGLcLjlMgVnf2ROopOjrb9NG2g4="
|
||||
},
|
||||
"8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any": {
|
||||
"whl": "sha256-p8ptSIqo/38ynUxUWy262KwxRk8dixyHrRNGcXcx5Ns="
|
||||
},
|
||||
"90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8": {
|
||||
"tar.gz": "sha256-a+Em4yJUht/yhqj7mgYkalJT9MfFO0depfWsk05kGUw="
|
||||
},
|
||||
"c7/42/be1c7bbdd83e1bfb160c94b9cafd8e25efc7400346cf7ccdbdb452c467fa/setuptools-68.0.0-py3-none-any": {
|
||||
"whl": "sha256-EeUsZ0FaOB0Q1rRiztnPuXBmF58OhxOZ4AbEqxAfyF8="
|
||||
},
|
||||
"ce/78/91db67e7fe1546dc8b02c38591b7732980373d2d252372f7358054031dd4/Pybag-2.2.12-py3-none-any": {
|
||||
"whl": "sha256-7aXubE6HOQKYG39SW0KgJCi4fHNo3yxb3+He0OaIQSY="
|
||||
},
|
||||
"d0/dd/b28df50316ca193dd1275a4c47115a720796d9e1501c1888c4bfa5dc2260/capstone-5.0.1-py3-none-win_amd64": {
|
||||
"whl": "sha256-G/pcgeaIDK9BoxlGzW0tBpwEi8wi7fEhJUtQGgSN5nU="
|
||||
}
|
||||
},
|
||||
"https://ftp.postgresql.org": {
|
||||
"pub/source/v15.3/postgresql-15.3": {
|
||||
"tar.gz": "sha256-CG04Uz4odHlmpNXx546kMuM6ePIdy5EzAQ7LUYn62Yw="
|
||||
}
|
||||
},
|
||||
"https://github.com": {
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2012_x64": {
|
||||
"fidb": "sha256-1OmKs/eQuDF5MhhDC7oNiySl+/TaZbDB/6jLDPvrDNw="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2012_x86": {
|
||||
"fidb": "sha256-pJDtfi7SHlh0Wf6urOcDa37eTOhOcuEN/YxXQ0ppGLY="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2015_x64": {
|
||||
"fidb": "sha256-4E6eQPnstgHIX02E7Zv2a0U2O+HR6CwWLkyZArjLUI8="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2015_x86": {
|
||||
"fidb": "sha256-tm7mlmU+LtNlkZ3qrviFEDEgx5LiLnmvcNEgnX4dhkQ="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2017_x64": {
|
||||
"fidb": "sha256-1fpfaXKYF0+lPSR9NZnmoSiEYFrRgce5VOI4DsHwvYk="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2017_x86": {
|
||||
"fidb": "sha256-04nLjXb/SlnKNfiRuFIccq1fDfluJTlzotIahhSkzIE="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2019_x64": {
|
||||
"fidb": "sha256-FQAHeW/DakBpZgrWJEmq2q890Rs4ZKXvIeeYMcnOkRg="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vs2019_x86": {
|
||||
"fidb": "sha256-62MKNvqlhqNx63NNwLvY0TzK72l/PbWHJZY1jz3SQyo="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vsOlder_x64": {
|
||||
"fidb": "sha256-jDtR9GYM0n4aDWEKnz8tX7yDOmasnuQ5PuLySB6FWGY="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/FunctionID/vsOlder_x86": {
|
||||
"fidb": "sha256-mGBca2uSFKlF2ETkHIWGDVRkmkW8p4c+9pkcDpNyB4c="
|
||||
},
|
||||
"NationalSecurityAgency/ghidra-data/raw/Ghidra_11.2/lib/java-sarif-2.1-modified": {
|
||||
"jar": "sha256-f3NlZklHVtJxql5LGvbIncUNB0qxxjdKR9+CImQiawE="
|
||||
},
|
||||
"pxb1988/dex2jar/releases/download/v2.1/dex2jar-2.1": {
|
||||
"zip": "sha256-epvfhD1D3k0elOwue29VglAXsMSn7jn/gmYOJJOkbwg="
|
||||
}
|
||||
},
|
||||
"https://repo.maven.apache.org/maven2": {
|
||||
"biz/aQute/bnd#biz.aQute.bnd.util/7.0.0": {
|
||||
"jar": "sha256-OVddFQJJliqcbUbM5+Zy53fIqGIKHS0iDH8sCnmediM=",
|
||||
"pom": "sha256-+dgDJLl2Hp3ipFoP6naPWZRH9AxuQZ8gje2MrxIYAMU="
|
||||
},
|
||||
"biz/aQute/bnd#biz.aQute.bndlib/7.0.0": {
|
||||
"jar": "sha256-gKVp0AbzLpJc7kzor5Jrfm/aqqtcy/1f5MnN/5xN0t8=",
|
||||
"pom": "sha256-mOuywO2iBtxb79bFJsjCAneApDvymekXyzwDXwOYp9I="
|
||||
},
|
||||
"com/beust#jcommander/1.64": {
|
||||
"jar": "sha256-FWvnNhmcmQMh2f93CQsZlinPyYZeLWwT980pG7FkGBc=",
|
||||
"pom": "sha256-F84MMunPlTZ4+CCuXyrZLu85bYQPZn/JnyOtwK0l0yg="
|
||||
},
|
||||
"com/formdev#flatlaf/3.2.1": {
|
||||
"jar": "sha256-fYMX/hOyYIiZTWZmOvjofBI5DugIf3unS2hjj0pV9EA=",
|
||||
"module": "sha256-kU7FLZBJj8ctFju0F1UhHnW7yfy3ip5wTZn/Mvfzywg=",
|
||||
"pom": "sha256-uKf+YYO269HIAaqwdGnF2UFRQFSftLdpkqyALuJeGtE="
|
||||
},
|
||||
"com/github/rotty3000#phidias/0.3.7": {
|
||||
"jar": "sha256-yNB2DOOw7RRT1DW83THjTwvjrAkCTn4amLijzr9Ka7U=",
|
||||
"pom": "sha256-FY+kDQZfFCR5B7aSIiRY152eFjsTz1tfrHvgIkLMK60="
|
||||
},
|
||||
"com/github/tomnelson#jungrapht-layout/1.4": {
|
||||
"jar": "sha256-owQBKdw57SMms2yhXGNEIu5XmkYXhmj5lELjiz5gcJk=",
|
||||
"pom": "sha256-TO0lLb8YrUWTvoW6bWycCdvB7tZEjZtZneziavTnyN4="
|
||||
},
|
||||
"com/github/tomnelson#jungrapht-visualization-parent/1.4": {
|
||||
"pom": "sha256-s5gyFq8VA62ryVOkKXKO1kpORbvDj++2wgOiiUPCq+w="
|
||||
},
|
||||
"com/github/tomnelson#jungrapht-visualization/1.4": {
|
||||
"jar": "sha256-lwU6HdLNqyY/tWEfG8grhiswmflR480FZOPiPRk/Tdg=",
|
||||
"pom": "sha256-YE8saHqHsq0L90QETPJmynWuKdPPCa383C5WEjDOtoY="
|
||||
},
|
||||
"com/google/code/findbugs#jsr305/3.0.2": {
|
||||
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
|
||||
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
|
||||
},
|
||||
"com/google/code/gson#gson-parent/2.9.0": {
|
||||
"pom": "sha256-r3gcmldm/+oxGg3wU2V2pk3sxmGqEQxN5cc6yL9DRCQ="
|
||||
},
|
||||
"com/google/code/gson#gson/2.9.0": {
|
||||
"jar": "sha256-yW1gVRMxoZbaxUt0WqZCzQeO+JtvJnFGtwXywsvvBS0=",
|
||||
"pom": "sha256-cZDQsH8njp9MYD9E5UOUD4HPGiVZ+FHG8pjJuyvil4w="
|
||||
},
|
||||
"com/google/errorprone#error_prone_annotations/2.2.0": {
|
||||
"jar": "sha256-br0iyhudjsBtQd6NZOBZaYHZYHtCA1+e03T53icaSBo=",
|
||||
"pom": "sha256-XgJY6huk5RoTN0JoC8IkSPerIUvkBz6GGfZF7xvkLdU="
|
||||
},
|
||||
"com/google/errorprone#error_prone_annotations/2.21.1": {
|
||||
"jar": "sha256-0fPGaqkaxSVJ4Arjsgi6S5r31y1o8jBkNVO+s45hGKw=",
|
||||
"pom": "sha256-9ZiID+766p1nTcQdsTqzcAS/A3drW7IcBN7ejpIMHxI="
|
||||
},
|
||||
"com/google/errorprone#error_prone_parent/2.2.0": {
|
||||
"pom": "sha256-xGCQLd9ezmiDLGsnHOUqCSiwXPOmrIGo9UjHPL1UETg="
|
||||
},
|
||||
"com/google/errorprone#error_prone_parent/2.21.1": {
|
||||
"pom": "sha256-MrsLX/JB/Wuh/upEiuu5zt7xaZvnPLbzGTZTh7gr+Sw="
|
||||
},
|
||||
"com/google/gradle#osdetector-gradle-plugin/1.7.0": {
|
||||
"jar": "sha256-29oheMFO1rk6GEsay/ONchBwAiUmaMERz0EeyjfkHKY=",
|
||||
"pom": "sha256-6BYywu6apI5+zwVHUSwcOGVgwNRqlY7lBVD3693xNRc="
|
||||
},
|
||||
"com/google/guava#failureaccess/1.0.1": {
|
||||
"jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=",
|
||||
"pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk="
|
||||
},
|
||||
"com/google/guava#guava-parent/19.0": {
|
||||
"pom": "sha256-O3b/Q+zfEPdNo25KritHDJ0GPgU8XKAm9VEq6U8cPhA="
|
||||
},
|
||||
"com/google/guava#guava-parent/26.0-android": {
|
||||
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
|
||||
},
|
||||
"com/google/guava#guava-parent/27.0.1-jre": {
|
||||
"pom": "sha256-MX6IKRJi4M8oBelWwYhQ8dRWXIXC4REvXZ0Iqxcy5pY="
|
||||
},
|
||||
"com/google/guava#guava-parent/27.1-android": {
|
||||
"pom": "sha256-1oF79aZ2AKOTpoA9UfR8159KXth1cqg3K++S4nNRgXI="
|
||||
},
|
||||
"com/google/guava#guava-parent/32.1.3-jre": {
|
||||
"pom": "sha256-8oPB8EiXqaiKP6T/RoBOZeghFICaCc0ECUv33gGxhXs="
|
||||
},
|
||||
"com/google/guava#guava/19.0": {
|
||||
"pom": "sha256-rdwGTafxB3/fTckOWqqIfNeQhQ0bdP4ubiXV94VRrGM="
|
||||
},
|
||||
"com/google/guava#guava/27.0.1-jre": {
|
||||
"jar": "sha256-4cgU/QRJKifDjgMX6r6qGz6VDsgBAjnkAP6QrWyRB7Q=",
|
||||
"pom": "sha256-ao3QQfI6a7FKhuRA/MuZNTe2InE1eg2sCjyw/zkVjzY="
|
||||
},
|
||||
"com/google/guava#guava/27.1-android": {
|
||||
"pom": "sha256-KUYNJundBml2Ak+RJoMlzxHzkScNiPi1MewGQqNbwNw="
|
||||
},
|
||||
"com/google/guava#guava/32.1.3-jre": {
|
||||
"jar": "sha256-bU4rWhGKq2Lm5eKdGFoCJO7YLIXECsPTPPBKJww7N0Q=",
|
||||
"module": "sha256-9f/3ZCwS52J7wUKJ/SZ+JgLBf5WQ4jUiw+YxB/YcKUI=",
|
||||
"pom": "sha256-cA5tRudbWTmiKkHCXsK7Ei88vvTv7UXjMS/dy+mT2zM="
|
||||
},
|
||||
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
|
||||
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
|
||||
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
|
||||
},
|
||||
"com/google/j2objc#j2objc-annotations/1.1": {
|
||||
"jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=",
|
||||
"pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4="
|
||||
},
|
||||
"com/google/j2objc#j2objc-annotations/2.8": {
|
||||
"jar": "sha256-8CqV+hpele2z7YWf0Pt99wnRIaNSkO/4t03OKrf01u0=",
|
||||
"pom": "sha256-N/h3mLGDhRE8kYv6nhJ2/lBzXvj6hJtYAMUZ1U2/Efg="
|
||||
},
|
||||
"com/google/protobuf#protobuf-bom/3.17.3": {
|
||||
"pom": "sha256-bf431vImF9VqQUzNrf+NmFhaH3kXEr6HbCYWZxDR2N0="
|
||||
},
|
||||
"com/google/protobuf#protobuf-bom/3.21.8": {
|
||||
"pom": "sha256-+7Ds/DyjGFddtifjOuRUwT1qTcp68UXRTT9m4IY8PPo="
|
||||
},
|
||||
"com/google/protobuf#protobuf-gradle-plugin/0.8.18": {
|
||||
"jar": "sha256-RP2JrzepsvHdQcCUqbtzPAe/f8eg4jhooQuvbjUfpeA=",
|
||||
"pom": "sha256-Gwqekab09LYqWmB4wibudwqo3FdnueRzwvwY8KOImAQ="
|
||||
},
|
||||
"com/google/protobuf#protobuf-java/3.17.3": {
|
||||
"jar": "sha256-SsVJsZJpQUGVgEnwYKHIJqMzQvYZ4QjO2MF9mHf14+0=",
|
||||
"pom": "sha256-Km8izVJli4uxTBANs+F5NT+MNR0ENzo79voKOzlGStw="
|
||||
},
|
||||
"com/google/protobuf#protobuf-java/3.21.8": {
|
||||
"jar": "sha256-C4WBrYENLfrv0Nz78VabFFBEhlAjjX4v1rF2yTLQjJU=",
|
||||
"pom": "sha256-OJBUBuApx6MYaW8O4RnFXM7HizN+oR5MMZWfDgardAg="
|
||||
},
|
||||
"com/google/protobuf#protobuf-parent/3.17.3": {
|
||||
"pom": "sha256-T09Q5moqvM/o7SCbU/q3C4k+NfQ77FqB98GESbY+hrE="
|
||||
},
|
||||
"com/google/protobuf#protobuf-parent/3.21.8": {
|
||||
"pom": "sha256-bHKyrDl1sAnR5FdQlVnp+onyV4vShD3LTWo+XPgRFws="
|
||||
},
|
||||
"com/googlecode/json-simple#json-simple/1.1.1": {
|
||||
"jar": "sha256-TmlpaJK4i0HFXUmrL9zCHurZK/VKzFiMAFBZbDt1GZw=",
|
||||
"pom": "sha256-Zl9jWQ3vtj1irdIdNSU2LPk3z2ocBeSwFFuujailf4M="
|
||||
},
|
||||
"com/h2database#h2/2.2.220": {
|
||||
"jar": "sha256-l4q4YwGNP5ZeOIgFccNik+qLEKgIYZQVnE1dILUPClc=",
|
||||
"pom": "sha256-tbp8XBcINbyupnWMWfo8EOvNepx5LiWzm4a559X72Mo="
|
||||
},
|
||||
"com/jcraft#jsch/0.1.55": {
|
||||
"jar": "sha256-1JKxWm0uo/HMOcQiyVPEDBIokHPb6DYNmMD2+ex0/EQ=",
|
||||
"pom": "sha256-dHx0jR8BBx6j0PhHb2jUqCOjE7dycB2FUck+qqV/n5k="
|
||||
},
|
||||
"com/opencsv#opencsv/5.4": {
|
||||
"jar": "sha256-n94e8+VEQE406u4V5L97p0uANV15gJOwUk1jpZk2JCs=",
|
||||
"pom": "sha256-uGQpmn0KIQIKgxaZQ499P4VAirJKNOkR+qmf9oTrdv0="
|
||||
},
|
||||
"com/oracle/labs/olcut#olcut-config-protobuf/5.2.0": {
|
||||
"jar": "sha256-xmqG5GT9gi9xzu6JuSU3l8Pc/fZWxNsr+W2kceuXs8o=",
|
||||
"pom": "sha256-JCBA8xgQ+I6pnGF7RUBrhmdtOvJa7jzZIoysQpd0zmk="
|
||||
},
|
||||
"com/oracle/labs/olcut#olcut-core/5.2.0": {
|
||||
"jar": "sha256-5T6OCQrUJo0iqlPgaCu76rHIHiyoRBP6Q2AqQWP2vhk=",
|
||||
"pom": "sha256-G912ta/r+7rg+FHQjJ46WmgwP40cMHY4rxuChHVvCgM="
|
||||
},
|
||||
"com/oracle/labs/olcut#olcut/5.2.0": {
|
||||
"pom": "sha256-SRIriefVQhUkr5IsQrsnF0x7vhL2oKKWwiEJgIUW/B4="
|
||||
},
|
||||
"commons-beanutils#commons-beanutils/1.9.4": {
|
||||
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
|
||||
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
|
||||
},
|
||||
"commons-collections#commons-collections/3.2.2": {
|
||||
"jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
|
||||
"pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
|
||||
},
|
||||
"commons-io#commons-io/2.11.0": {
|
||||
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
|
||||
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
|
||||
},
|
||||
"commons-lang#commons-lang/2.6": {
|
||||
"jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=",
|
||||
"pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE="
|
||||
},
|
||||
"commons-logging#commons-logging/1.2": {
|
||||
"jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=",
|
||||
"pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA="
|
||||
},
|
||||
"javax/help#javahelp/2.0.05": {
|
||||
"jar": "sha256-/PSSLTj/hRhPHSMoMXu2CCbhTalIq9YG7j1bjGpw3r0=",
|
||||
"pom": "sha256-uIEr4lGsoTl/S2pCO/Tt06KERONFOyIDtTSTNrmVgik="
|
||||
},
|
||||
"junit#junit/4.10": {
|
||||
"jar": "sha256-NqdHyh4LhvbqiAVbhyO7hwMNYndm2mKIvwd6/e6w91o=",
|
||||
"pom": "sha256-IqG/C6rothBretgCbs8nxZ5+R920nWKXUDa+rbLGLrU="
|
||||
},
|
||||
"junit#junit/4.12": {
|
||||
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
|
||||
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
|
||||
},
|
||||
"kr/motd/maven#os-maven-plugin/1.7.0": {
|
||||
"jar": "sha256-lDBTUBpCnlPRxNYhUu7BJfo2Yg4NxmtzkKiVCXz96s4=",
|
||||
"pom": "sha256-xPVqjuqlJp76BdsB4xMJBf9b24frKuPnZhVOmuoYO6Y="
|
||||
},
|
||||
"msv#isorelax/20050913": {
|
||||
"jar": "sha256-NCcVJDHPf5Z/kuaeXKwWFHxdj7S05ainL1KReI78/4w=",
|
||||
"pom": "sha256-u54IxYm/b2BxTQ+dMcLtdwPK9nf+muOSFrzKt3SkfNk="
|
||||
},
|
||||
"msv#msv/20050913": {
|
||||
"jar": "sha256-FL46VQ5QhDO0/hB3XVQOnrWLPvBO10Vrx8fShckMh6I=",
|
||||
"pom": "sha256-eoaknOHugXmjgCLiMZHkjPW1fkEEr2tXSJ3bjN7GoNY="
|
||||
},
|
||||
"msv#relaxngDatatype/20050913": {
|
||||
"jar": "sha256-TUWpPrXNwyYxlmZzyVS4P8m2CgaBu93O+ixJdtBM3fI=",
|
||||
"pom": "sha256-F/kF72gZZRismj53oNXlGY1g9D/8kEsiCcoEZhfyLfk="
|
||||
},
|
||||
"msv#xsdlib/20050913": {
|
||||
"jar": "sha256-a476GP9XDAkW2nAsRpBrnooTnhwF2/Hk2L3rokTBsrM=",
|
||||
"pom": "sha256-Ti8Z4AifVdrd/gOXbyhwCXvAaJcWVQ/p3r10KwrKZ5Y="
|
||||
},
|
||||
"net/java/dev/javacc#javacc/5.0": {
|
||||
"jar": "sha256-cRExYbyM9mQVFVQcKBgCi4fHjsLo/6p1MXaG7giWe4k=",
|
||||
"pom": "sha256-lBZg1Hgi+cDYDUDqBtSYH83CuHzGJTgbVF79fmtEnO8="
|
||||
},
|
||||
"net/java/dev/jna#jna-platform/5.14.0": {
|
||||
"jar": "sha256-rkys6zhAcwwlN/m3+1WgG6ulgChrQSKVFIi87lWMJEk=",
|
||||
"pom": "sha256-bLoOBPnuyxZIYAB5O7J+EDsPTQSF4FVOK0wK7RPS7RY="
|
||||
},
|
||||
"net/java/dev/jna#jna/5.14.0": {
|
||||
"jar": "sha256-NO0eHyf6iWvKUNvE6ZzzcylnzsOHp6DV40hsCWc/6MY=",
|
||||
"pom": "sha256-4E4llRUB3yWtx7Hc22xTNzyUiXuE0+FJISknY+4Hrj0="
|
||||
},
|
||||
"net/java/dev/timingframework#timingframework/1.0": {
|
||||
"jar": "sha256-dGHpJGw7BRkWRaf5TBBGgMwxhlu02RIIKsAv93Egz0s=",
|
||||
"pom": "sha256-EHm33r9dRb/PyG6euBCvHRhqN11glaDpHKKM2a8pwtA="
|
||||
},
|
||||
"net/sf/jung#jung-algorithms/2.1.1": {
|
||||
"jar": "sha256-7ROOL2srLxOvYaE/F4i85vHeiFjELucKfUHmKDk3owo=",
|
||||
"pom": "sha256-INw/C+7taPkCw/AtO6qJ8eI0xNSWeyIS15HBjw/a6Qs="
|
||||
},
|
||||
"net/sf/jung#jung-api/2.1.1": {
|
||||
"jar": "sha256-bLc1ljw21RVdDeXxmgNIW5om5nVQ4WCz3YkAmm9RaU4=",
|
||||
"pom": "sha256-3vtMVoVkg6Trdxnh4WiqYKtjnkPJJRKGZYNzLyPxOgs="
|
||||
},
|
||||
"net/sf/jung#jung-graph-impl/2.1.1": {
|
||||
"jar": "sha256-SRHaBNd7T3u0ZaZa48w6AAyuTVK1h5EePAtMS2Q0k8E=",
|
||||
"pom": "sha256-DXLiLd6PiBAEu7aagzjuxtnpGTlg9BRDOBlhYPhJqLQ="
|
||||
},
|
||||
"net/sf/jung#jung-parent/2.1.1": {
|
||||
"pom": "sha256-os5T0/ynH/HQQ3FfmhowSo5KrhwGRa2QOMrkxSE2i+Q="
|
||||
},
|
||||
"net/sf/jung#jung-visualization/2.1.1": {
|
||||
"jar": "sha256-kzuibCMIw79FZsOCiXm2itdCJyRXFxLlrw3odr3/oq4=",
|
||||
"pom": "sha256-ayUROtpk+JgoOQmGsyWE0nNsBE+7iVz1Bo6BQWo9l+w="
|
||||
},
|
||||
"net/sf/sevenzipjbinding#sevenzipjbinding-all-platforms/16.02-2.01": {
|
||||
"jar": "sha256-cvq1Op0x4W1lP+H0AAEdAqf2vGqR6GNLXPrVzhXUZ7s=",
|
||||
"pom": "sha256-u3FCxepITF/phCbcFezhuYu/3UZTRWqI2idCHXJnAmU="
|
||||
},
|
||||
"net/sf/sevenzipjbinding#sevenzipjbinding/16.02-2.01": {
|
||||
"jar": "sha256-Ezyj9pyMc12Jl8CUd1BPSKny5h6ntwSzcUqQZrHvuI4=",
|
||||
"pom": "sha256-pdF4WGwNvc4V3cKlKBaE04ek8jW10bklWzls7TaWhcE="
|
||||
},
|
||||
"org/antlr#ST4/4.0.8": {
|
||||
"jar": "sha256-WMqrxAyfdLC1mT/YaOD2SlDAdZCU5qJRqq+tmO38ejs=",
|
||||
"pom": "sha256-PAiQ3scRdOs7o9QEyp40GQH/awQhgIsAcTsNuxMGwXw="
|
||||
},
|
||||
"org/antlr#antlr-master/3.5.2": {
|
||||
"pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y="
|
||||
},
|
||||
"org/antlr#antlr-runtime/3.5.2": {
|
||||
"jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=",
|
||||
"pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU="
|
||||
},
|
||||
"org/antlr#antlr/3.5.2": {
|
||||
"jar": "sha256-WsNsKs+woPPTfa/iC1tXDyZD4tAAxkjURQPCc4vmQ98=",
|
||||
"pom": "sha256-Bl5egGYv64WHldPAH3cUJHvdMZRZcF7hOxpLGWj6IuQ="
|
||||
},
|
||||
"org/apache#apache/13": {
|
||||
"pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
|
||||
},
|
||||
"org/apache#apache/16": {
|
||||
"pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4="
|
||||
},
|
||||
"org/apache#apache/19": {
|
||||
"pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
|
||||
},
|
||||
"org/apache#apache/21": {
|
||||
"pom": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A="
|
||||
},
|
||||
"org/apache#apache/23": {
|
||||
"pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
|
||||
},
|
||||
"org/apache#apache/27": {
|
||||
"pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk="
|
||||
},
|
||||
"org/apache#apache/7": {
|
||||
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
|
||||
},
|
||||
"org/apache/commons#commons-collections4/4.1": {
|
||||
"jar": "sha256-sf6LWWi1fYRlQlNX7S2dxpVQRRi+0t9bVlxLjmjByKU=",
|
||||
"pom": "sha256-wK1C6RA1N5YNmnTaWOzCTdGjehPR5MSPCWm+k+QBg2k="
|
||||
},
|
||||
"org/apache/commons#commons-collections4/4.4": {
|
||||
"jar": "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=",
|
||||
"pom": "sha256-JxvWc4Oa9G5zr/lX4pGNS/lvWsT2xs9NW+k/0fEnHE0="
|
||||
},
|
||||
"org/apache/commons#commons-compress/1.21": {
|
||||
"jar": "sha256-auz9VFlyillWAc+gcljRMZcv/Dm0kutIvdWWV3ovJEo=",
|
||||
"pom": "sha256-Z1uwI8m+7d4yMpSZebl0Kl/qlGKApVobRi1Mp4AQiM0="
|
||||
},
|
||||
"org/apache/commons#commons-dbcp2/2.9.0": {
|
||||
"jar": "sha256-iHcgkSxcu83/bg4h1QNJN1Vfj/xZc4Hv+Pp38zzm1k4=",
|
||||
"pom": "sha256-XtPwH1ee+0xru81m9VnpwV6ZwUCVeeAZG7pUHF/meYY="
|
||||
},
|
||||
"org/apache/commons#commons-lang3/3.11": {
|
||||
"pom": "sha256-mA1mXYP+0EZlE08FeOUHRCoOdQaRBzeEORsKeYhySnU="
|
||||
},
|
||||
"org/apache/commons#commons-lang3/3.12.0": {
|
||||
"jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=",
|
||||
"pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo="
|
||||
},
|
||||
"org/apache/commons#commons-lang3/3.9": {
|
||||
"pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU="
|
||||
},
|
||||
"org/apache/commons#commons-parent/17": {
|
||||
"pom": "sha256-lucYuvU0h07mLOTULeJl8t2s2IORpUDgMNWdmPp8RAg="
|
||||
},
|
||||
"org/apache/commons#commons-parent/34": {
|
||||
"pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w="
|
||||
},
|
||||
"org/apache/commons#commons-parent/38": {
|
||||
"pom": "sha256-VY2WF0Xrrcxdw5HP3n1HQIbUyq7iTdPm35Me2fa1tJU="
|
||||
},
|
||||
"org/apache/commons#commons-parent/39": {
|
||||
"pom": "sha256-h80n4aAqXD622FBZzphpa7G0TCuLZQ8FZ8ht9g+mHac="
|
||||
},
|
||||
"org/apache/commons#commons-parent/47": {
|
||||
"pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
|
||||
},
|
||||
"org/apache/commons#commons-parent/48": {
|
||||
"pom": "sha256-Hh996TcKe3kB8Sjx2s0UIr504/R/lViw954EwGN8oLQ="
|
||||
},
|
||||
"org/apache/commons#commons-parent/51": {
|
||||
"pom": "sha256-m3edGLItjeVZYFVY57sKCjGz8Awqu5yHgRfDmKrKvso="
|
||||
},
|
||||
"org/apache/commons#commons-parent/52": {
|
||||
"pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
|
||||
},
|
||||
"org/apache/commons#commons-parent/54": {
|
||||
"pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M="
|
||||
},
|
||||
"org/apache/commons#commons-pool2/2.11.1": {
|
||||
"jar": "sha256-6gUF7nUV5YsawOaG5NGl2ffYCOJRphvDcaoFlbmWP4M=",
|
||||
"pom": "sha256-wbsCmUpK34loDfepitujPFUnaDAUJy1liFuzA27NSMM="
|
||||
},
|
||||
"org/apache/commons#commons-text/1.10.0": {
|
||||
"jar": "sha256-dwzZA/p7YE0ffve6F/hBCGZylLK0eL6O0a87/7SuABg=",
|
||||
"pom": "sha256-OI3VI0i6GEKqOK64l8kdJwsUZh64daIP2YAxU1qydWc="
|
||||
},
|
||||
"org/apache/commons#commons-text/1.8": {
|
||||
"pom": "sha256-9s/bqlnHCtfj/r5xTgkRmQFWrAkFKV2PKjt1HgXlmhI="
|
||||
},
|
||||
"org/apache/commons#commons-text/1.9": {
|
||||
"pom": "sha256-n5IWz8lE3KeC5jEdYnV/13Fk/mfaKbWPAVaH+gn0QFA="
|
||||
},
|
||||
"org/apache/felix#felix-parent/6": {
|
||||
"pom": "sha256-Ngi2sgD2yPSIx3zBWYR9UV5pZugzO4XY4E45Sgk7VZU="
|
||||
},
|
||||
"org/apache/felix#org.apache.felix.framework/7.0.5": {
|
||||
"jar": "sha256-q6cpMsX/5S0a6ftzVBVHS8gwX9BPBQ6FHzqPZ9oYNP0=",
|
||||
"pom": "sha256-CBAm1JP4dt+OsPPxyPhdpyy+N99VeDPpaLQMMNrL/Kk="
|
||||
},
|
||||
"org/apache/logging#logging-parent/3": {
|
||||
"pom": "sha256-djouwrgJTUFh3rbCZLEmIIW5vjC/OjHCzhNyQuV3Iqc="
|
||||
},
|
||||
"org/apache/logging/log4j#log4j-api/2.17.1": {
|
||||
"jar": "sha256-sNikyKtPuLGIjQCVgicDsObUeTxBlVAgPanmkZYWHeQ=",
|
||||
"pom": "sha256-HirO8yILKb4QrgmXKLFYsY2UP5Ghk8xFAbtC+SnB6Io="
|
||||
},
|
||||
"org/apache/logging/log4j#log4j-core/2.17.1": {
|
||||
"jar": "sha256-yWfyI0h5gLk2TpSnx/mooB/T7nwZvb8LD5+MuFEfPUE=",
|
||||
"pom": "sha256-C7s79tTSKhv6PDwJJ8KUEK8UoPsm47Ark3JvXH6Yqv0="
|
||||
},
|
||||
"org/apache/logging/log4j#log4j/2.17.1": {
|
||||
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
|
||||
},
|
||||
"org/bouncycastle#bcpkix-jdk15on/1.69": {
|
||||
"jar": "sha256-QIN20Xqqh4nnrNBV/kBCiaEfozX9fGinUykEn7fSjtI=",
|
||||
"pom": "sha256-WrvkytLCMJR0ZvsgmiJn48xqDTgKajGRWVnTqtm4F2w="
|
||||
},
|
||||
"org/bouncycastle#bcprov-jdk15on/1.69": {
|
||||
"jar": "sha256-5Gm9Ofk2mZ8lYAJjEAP/AioilR2p1b2Xicer+pdjopI=",
|
||||
"pom": "sha256-/YHicUSVvOeeauazAp2s0kzyz/NAJB2lgQVYlae6eN4="
|
||||
},
|
||||
"org/bouncycastle#bcutil-jdk15on/1.69": {
|
||||
"jar": "sha256-KeQOJGbQQNgqbw6ZY10LwrujqUJRz3k5zwtpMhyu/Ak=",
|
||||
"pom": "sha256-p2e8fzQtGTKJfso8i6zHAEygOAv6dSnyOpc0VJZcffw="
|
||||
},
|
||||
"org/checkerframework#checker-compat-qual/2.5.2": {
|
||||
"pom": "sha256-da9ztewybj29yUayH9RoAtXafGEsO/Hlh1N0yY1+pP0="
|
||||
},
|
||||
"org/checkerframework#checker-qual/2.5.2": {
|
||||
"jar": "sha256-ZLAmkci51OdwD47i50Lc5+osboHmYrdSLJ7jv1aMBAo=",
|
||||
"pom": "sha256-3EzUOKNkYtATwjOMjiBtECoyKgDzNynolV7iGYWcnt4="
|
||||
},
|
||||
"org/checkerframework#checker-qual/3.31.0": {
|
||||
"module": "sha256-UYkl4iqnmMH71voXwYN0aR8f57G+fdNw1Omv7us7Ds8=",
|
||||
"pom": "sha256-Q1ecPr5H54NYp/MvlnN471YXWyKUszUYNYTwvSNZUjE="
|
||||
},
|
||||
"org/checkerframework#checker-qual/3.37.0": {
|
||||
"jar": "sha256-5M4TdswnNeHd4iC2KtCRP1EpdwTarRVaM/OGvF2w2fc=",
|
||||
"module": "sha256-clinadyqJrmBVNIp2FzHLls2ZrC8tjfS2vFuxJiVZjg=",
|
||||
"pom": "sha256-AjkvvUziGQH5RWFUcrHU1NNZGzqr3wExBfXJLsMstPA="
|
||||
},
|
||||
"org/codehaus#codehaus-parent/3": {
|
||||
"pom": "sha256-UOslOs0LbuBI9DLZ/Do7NiZO+z2h/6f7B/bE1LeoyjE="
|
||||
},
|
||||
"org/codehaus/mojo#animal-sniffer-annotations/1.17": {
|
||||
"jar": "sha256-kmVPST7P7FIILnY1Tw6/h2SNw9XOwuPDzblHwBZ0elM=",
|
||||
"pom": "sha256-6VarXS60j6uuEjANDNLTKU1KKkGrwgaMI8tNYK12y+U="
|
||||
},
|
||||
"org/codehaus/mojo#animal-sniffer-annotations/1.9": {
|
||||
"jar": "sha256-zZb+60fzSyVZcEcV23sXmgOjch+dxAksNFxxjim0LeQ=",
|
||||
"pom": "sha256-/nEJDiNXjdGapqj+9Rhvz6WPSPgHBnKprIlFhis7fz0="
|
||||
},
|
||||
"org/codehaus/mojo#animal-sniffer-parent/1.17": {
|
||||
"pom": "sha256-GKA98W4qGExYLbexJWM8Fft3FAJ6hMG1MtcpM9wIuB8="
|
||||
},
|
||||
"org/codehaus/mojo#animal-sniffer-parent/1.9": {
|
||||
"pom": "sha256-nyDSRN5e5OZQmbJ3tpiE7xr4EROcAJcl3TzPqPsaxjs="
|
||||
},
|
||||
"org/codehaus/mojo#mojo-parent/28": {
|
||||
"pom": "sha256-WrbfH5JfxhOX3y0XNSu8mK8UZOhT7SF+CeU9IKMm9wc="
|
||||
},
|
||||
"org/codehaus/mojo#mojo-parent/40": {
|
||||
"pom": "sha256-/GSNzcQE+L9m4Fg5FOz5gBdmGCASJ76hFProUEPLdV4="
|
||||
},
|
||||
"org/fusesource#fusesource-pom/1.12": {
|
||||
"pom": "sha256-xA2WDarc73sBwbHGZXr7rE//teUxaPj8sLKLhOb9zKE="
|
||||
},
|
||||
"org/fusesource/jansi#jansi/2.3.2": {
|
||||
"jar": "sha256-+dWXnFx7oxN8d/QYR16wIYn4/Ip1+nP/w/8dEv6UVWc=",
|
||||
"pom": "sha256-ywU3vsxjUsFUcz22+v0JAPlYRgOgsLnPjyJFVjEs2+E="
|
||||
},
|
||||
"org/hamcrest#hamcrest-core/1.1": {
|
||||
"jar": "sha256-A2HRST/w2U+GE1nv6pEgByBjUHITR5LvtyF/bgnVz/s=",
|
||||
"pom": "sha256-OXOH9AbGjMtAP0d8y+wcgYz8a4/0+tpaM+Jhg6hBfIM="
|
||||
},
|
||||
"org/hamcrest#hamcrest-core/1.3": {
|
||||
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
|
||||
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
|
||||
},
|
||||
"org/hamcrest#hamcrest-parent/1.1": {
|
||||
"pom": "sha256-FOaVChpimMvLg8+UKcrEFf8nMWf28Vh2hZQTsNbAfjo="
|
||||
},
|
||||
"org/hamcrest#hamcrest-parent/1.3": {
|
||||
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
|
||||
},
|
||||
"org/hamcrest#hamcrest/2.2": {
|
||||
"jar": "sha256-XmKEaonwXNeM2cGlU/NA0AJFg4DDIEVd0fj8VJeoocE=",
|
||||
"pom": "sha256-s2E3N2xLP8923DN+KhvFtpGirBqpZqtdJiCak4EvpX0="
|
||||
},
|
||||
"org/jacoco#org.jacoco.agent/0.8.11": {
|
||||
"jar": "sha256-0+2F3qeKntVYRqdzjjoMoVxwLGYe5LyMv+Aqi59KmcA=",
|
||||
"pom": "sha256-FuBen0liG4fFPmk1AUDzxG1C2WbGepM730sGOiscj8U="
|
||||
},
|
||||
"org/jacoco#org.jacoco.ant/0.8.11": {
|
||||
"jar": "sha256-gdfriJDZvjCpOWEsKVYDVBBjUpzdA6UyZaunRHS3C3w=",
|
||||
"pom": "sha256-ftED2VnQzue6v7Ewf6bkUbFpb/01JwYVU7VQ3lUgHYU="
|
||||
},
|
||||
"org/jacoco#org.jacoco.build/0.8.11": {
|
||||
"pom": "sha256-W4SxXPLu8+WeuRvCJ4SDMQCwnfmRHjMZAww7xki9iws="
|
||||
},
|
||||
"org/jacoco#org.jacoco.core/0.8.11": {
|
||||
"jar": "sha256-/NGIxohHP8jcwMbKrzVeeziVAiQ1J8M7lZej7Ch5H0c=",
|
||||
"pom": "sha256-u2E18Qo2NJy4SlYA/Yz3P8EpahNbLxStzYPejPJMq7E="
|
||||
},
|
||||
"org/jacoco#org.jacoco.report/0.8.11": {
|
||||
"jar": "sha256-g5MpWuJGgO0QytgzOQcED5KLhxMySRWBylvHhOLLT74=",
|
||||
"pom": "sha256-jjtzR3nV4/1oPsAVQT1S+WGYTFDLkEX9orI7/160I4E="
|
||||
},
|
||||
"org/jdom#jdom-legacy/1.1.3": {
|
||||
"jar": "sha256-Ar1hpyXor5sBdrQ78pgW0MdIuKuVE4W9EnvjdIkyWgo=",
|
||||
"pom": "sha256-bWWTi3CxFyMBy0LY5l7gVzpXHtOfOvEBOp5ukp/flow="
|
||||
},
|
||||
"org/jgrapht#jgrapht-core/1.5.1": {
|
||||
"jar": "sha256-pNgQy2Pgp3p1PRRwlP6p3ULoLPxXqiifn4UinyYEO7Q=",
|
||||
"pom": "sha256-KknxKWxTwJ4OCiVdogMgVq3fKlu6WFyAF3Eg/IELQRM="
|
||||
},
|
||||
"org/jgrapht#jgrapht-io/1.5.1": {
|
||||
"jar": "sha256-hsf8ZswZB7/CazZtTdKSzQ2ihr3h/QiKEcDZcp1tzFw=",
|
||||
"pom": "sha256-jMvAH5otyMV0llX6FSck3dJ8FIIpxWeV+CC7V6GEp4g="
|
||||
},
|
||||
"org/jgrapht#jgrapht/1.5.1": {
|
||||
"pom": "sha256-X9k28p0qw4blfbTL+JtZLFth3GpA03qhUw9eVLNQx9I="
|
||||
},
|
||||
"org/jheaps#jheaps/0.13": {
|
||||
"jar": "sha256-Y0FCkMNJf4rA8QIgkgcIjexG/UdH4PVqJsaTCOhcZBU=",
|
||||
"pom": "sha256-SH2xJbFxCY4/qDOFNaxZR2kirCxFK1ehTTz2YfIohDA="
|
||||
},
|
||||
"org/jline#jline-builtins/3.20.0": {
|
||||
"jar": "sha256-prFPiYOXb7Sd67PZ6KFb+V9yTXFp8TFaYu+lin+omeI=",
|
||||
"pom": "sha256-9T2EkbSNrQfnIR8M5BIhS5un25YmYZAxsqhvgMgrZrE="
|
||||
},
|
||||
"org/jline#jline-parent/3.20.0": {
|
||||
"pom": "sha256-cXjGACAsS8Jux6S2IlXu829wVsrSpeYjnFdL7qXCEMo="
|
||||
},
|
||||
"org/jline#jline-reader/3.20.0": {
|
||||
"jar": "sha256-rNHJTR4iiqe3li9psh7Tqf2CjrOmPkuvkIaVTmJq8fA=",
|
||||
"pom": "sha256-2fF+3XIcAqExcgN21sB4eHgutrb6/rX/QkBKtXFD4TY="
|
||||
},
|
||||
"org/jline#jline-style/3.20.0": {
|
||||
"jar": "sha256-C7ERYF4BAM6E05YfMLQNqgiOnC7FxnHn75D0L2rdBrY=",
|
||||
"pom": "sha256-48nFXt7Ob0ru5jplYjiaS++NA1j6iq3GdKPeZR4w4ao="
|
||||
},
|
||||
"org/jline#jline-terminal-jansi/3.20.0": {
|
||||
"jar": "sha256-wX/++o8GDa79OPJXRAcOQI9LrFPD6BOuoZKMxgcmD+Q=",
|
||||
"pom": "sha256-Q3JhhBr0j5oZT9WygHJSCKds+jzKFgBAx6QoDrAn2+s="
|
||||
},
|
||||
"org/jline#jline-terminal/3.20.0": {
|
||||
"jar": "sha256-EhJRcOeVUZum3IAQwHC1PHaq6StIXB43Uw5Uq13QjUM=",
|
||||
"pom": "sha256-EMo7z1F48YUH8hCmOtljeJaFM0OtHBKRoBmhFvIWpUg="
|
||||
},
|
||||
"org/junit#junit-bom/5.7.1": {
|
||||
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=",
|
||||
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q="
|
||||
},
|
||||
"org/junit#junit-bom/5.7.2": {
|
||||
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
|
||||
"pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs="
|
||||
},
|
||||
"org/junit#junit-bom/5.8.0-M1": {
|
||||
"module": "sha256-vgUUcTA6UD9MIkZwdbJ0kEE3fd1tWoywc53tZ9kW2C0=",
|
||||
"pom": "sha256-dxREMv/Gi9mKeQqxBpYZ2RAyz8Dk4TwIFjqgPaNv1uI="
|
||||
},
|
||||
"org/junit#junit-bom/5.9.0": {
|
||||
"module": "sha256-oFTq9QFrWLvN6GZgREp8DdPiyvhNKhrV/Ey1JZecGbk=",
|
||||
"pom": "sha256-2D6H8Wds3kQZHuxc2mkEkjkvJpI7HkmBSMpznf7XUpU="
|
||||
},
|
||||
"org/junit#junit-bom/5.9.1": {
|
||||
"module": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=",
|
||||
"pom": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw="
|
||||
},
|
||||
"org/osgi#org.osgi.core/5.0.0": {
|
||||
"jar": "sha256-tEDGv/KGMyr89crgZ7YGli52HA3wDl/Yp0bwsxJlYZs=",
|
||||
"pom": "sha256-4AHZl0MYUeq4uTOLW32f5eaOGutDpYV5JLChWIbuNjk="
|
||||
},
|
||||
"org/osgi#org.osgi.util.promise/1.3.0": {
|
||||
"jar": "sha256-cFPFfn19iP7GuQl5o68SXh0ruEcmijKKLx7WWtCkwYU=",
|
||||
"pom": "sha256-rcyK9ce+Z7BSEF4Mncq43ibaxvGbxamrcpRqMydscQA="
|
||||
},
|
||||
"org/ow2#ow2/1.3": {
|
||||
"pom": "sha256-USFcZ9LAaNi30vb4D1E3KgmAdd7MxEjUvde5h7qDKPs="
|
||||
},
|
||||
"org/ow2#ow2/1.5.1": {
|
||||
"pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU="
|
||||
},
|
||||
"org/ow2/asm#asm-bom/9.6": {
|
||||
"pom": "sha256-ig5fYk/ikwt6jWmVb0OORe9TKZa01kQJthbErvSxrE4="
|
||||
},
|
||||
"org/ow2/asm#asm-commons/9.6": {
|
||||
"jar": "sha256-eu/Q1cCQFwHGn3UT/tp2X7a+M68s56oXxXgfyHZXxRE=",
|
||||
"pom": "sha256-qYrkiVM0uvj/hr1mUWIQ29mgPxpuFeR92oKvz2tT13w="
|
||||
},
|
||||
"org/ow2/asm#asm-debug-all/5.0.3": {
|
||||
"jar": "sha256-KWk1asHkD+QUGUjFY2kCOPXXnXaux/2HNTaGejMe3oE=",
|
||||
"pom": "sha256-nJnXpVVyW8L4N5l3k1zboW1ofZyTtuByXhlhgNSQyZU="
|
||||
},
|
||||
"org/ow2/asm#asm-parent/5.0.3": {
|
||||
"pom": "sha256-wu2r9BKKU030uLSwubVi6U8kK6lawk3GFIVDK4oYjjI="
|
||||
},
|
||||
"org/ow2/asm#asm-tree/9.6": {
|
||||
"jar": "sha256-xD7PF7U5x3fhXae1uGVTs3fi05poPeYoVWfVKDiI5+8=",
|
||||
"pom": "sha256-G8tIHX/Ba5VbtgygfIz6JCS87ni9xAW7oxx9b13C0RM="
|
||||
},
|
||||
"org/ow2/asm#asm/9.6": {
|
||||
"jar": "sha256-PG+sJCTbPUqFO2afTj0dnDxVIjXhmjGWc/iHCDwjA6E=",
|
||||
"pom": "sha256-ku7iS8PIQ+SIHUbB3WUFRx7jFC+s+0ZrQoz+paVsa2A="
|
||||
},
|
||||
"org/postgresql#postgresql/42.6.2": {
|
||||
"jar": "sha256-gmKXVPMJwLVx0dQLp0+wU4VfhjdSpGyjB8ez5YYMSy4=",
|
||||
"pom": "sha256-/5dcZtbZSN/YKp6SbsER7eldPkyRo6DYaQ8xox45NMY="
|
||||
},
|
||||
"org/python#jython-standalone/2.7.3": {
|
||||
"jar": "sha256-2n89gpsUi8+oawWdyWTjqFVv7bAhCWyNsH4wxm+qubQ=",
|
||||
"pom": "sha256-moD1I2PkBVnKxMjaKsX4uil3ksbpEmN7dIUfKjMHDNI="
|
||||
},
|
||||
"org/slf4j#slf4j-api/1.7.25": {
|
||||
"jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=",
|
||||
"pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4="
|
||||
},
|
||||
"org/slf4j#slf4j-nop/1.7.25": {
|
||||
"jar": "sha256-bLEnE49Btahp+ezdBhrRd5mg4/5yBGAHlxVOsEMu6xI=",
|
||||
"pom": "sha256-ogpNV7z++b2sp9EVliwN58lEa+TUZre9MNXxmkWc9Jk="
|
||||
},
|
||||
"org/slf4j#slf4j-parent/1.7.25": {
|
||||
"pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY="
|
||||
},
|
||||
"org/smali#baksmali/2.5.2": {
|
||||
"jar": "sha256-HtI2Jm19xJB6reCxmjT3fvrCU0K2PIrOUuV5A5lBs4k=",
|
||||
"module": "sha256-g+59x3oek4+5BtaNfUPiRX8s+Im7HecuqtcJJDVfpbU=",
|
||||
"pom": "sha256-8FzZiasE/SboahreXCGauEgovqfebryA/Bd7YtJ1k4g="
|
||||
},
|
||||
"org/smali#dexlib2/2.5.2": {
|
||||
"jar": "sha256-WlyJgti9fW47saBxMEnjx4txnsMrIPa2GYhc7DCg3WE=",
|
||||
"module": "sha256-5XDKZe/asrKMAq2P34W9hSIGZrkkuJXKW+r1fXKGiDw=",
|
||||
"pom": "sha256-BWB6NSDN841drl0MQZZRKjhWpA3rlTny/OCGNalut44="
|
||||
},
|
||||
"org/smali#util/2.5.2": {
|
||||
"jar": "sha256-T1gKnP8+u4PLP9IL7Ijjfk8YN5bKZScymSYRYgKC2uo=",
|
||||
"module": "sha256-rRt+JSAWcAXJFp2Gv8z/JvXF+b8Ls/qyRMtIIWU9wmE=",
|
||||
"pom": "sha256-IKx+12/5cPUQB6IPrIvbon7IeUT9Kb2oxnQJZ5LJFFE="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/6": {
|
||||
"pom": "sha256-tDBtE+j1OSRYobMIZvHP8WGz0uaZmojQWe6jkyyKhJk="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/7": {
|
||||
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/9": {
|
||||
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
|
||||
},
|
||||
"org/tribuo#tribuo-classification-core/4.2.0": {
|
||||
"jar": "sha256-+vv5OnIrmrVC7oeaX09lF5bkyuobZ5gNVWL+jdjbqeY=",
|
||||
"pom": "sha256-gLgGCPTPN93HLmioPGBRyupwvqF+96hTCfWeqdpzBPE="
|
||||
},
|
||||
"org/tribuo#tribuo-classification-tree/4.2.0": {
|
||||
"jar": "sha256-uVozLZJI7RKVgxdkTNQ9cubdit4KJPnKTlLaB72sY6c=",
|
||||
"pom": "sha256-OrTlGe48n3lzd3MirS7EaR5j1kovRxiR4A1BGQdY2jw="
|
||||
},
|
||||
"org/tribuo#tribuo-classification/4.2.0": {
|
||||
"pom": "sha256-SqINxWFbgU86wjq3xB+s+LpCKbPuzSwa/KeL3/kntcU="
|
||||
},
|
||||
"org/tribuo#tribuo-common-tree/4.2.0": {
|
||||
"jar": "sha256-34iqIWT+X60ITLIxl7LgodbBPk7QbuXCGXausNuVfOk=",
|
||||
"pom": "sha256-DbCNldwWEPdn/AehmZqXlhVxALozjH4JA2jMVN5NIHU="
|
||||
},
|
||||
"org/tribuo#tribuo-common/4.2.0": {
|
||||
"pom": "sha256-GAZzLdQd51aq3tY2v7qZSD00J72diyAvEEJcr84iykk="
|
||||
},
|
||||
"org/tribuo#tribuo-core/4.2.0": {
|
||||
"jar": "sha256-NFwzfcKHjsdQJJgqqwZycZtznnGOc9eisu/ottXQCb8=",
|
||||
"pom": "sha256-XkjLxuPn9x+wYPSWdPTXbCLcKEe9flflVCY7+5gYpZ0="
|
||||
},
|
||||
"org/tribuo#tribuo-data/4.2.0": {
|
||||
"jar": "sha256-m8EQCFnODOBCDNbfbOdna25DxSKEXUKGz5FIUmgtYz0=",
|
||||
"pom": "sha256-SMm4+bX7Nd5toLwWhuMLStMkS6UWMCNw1fqGd1ixruA="
|
||||
},
|
||||
"org/tribuo#tribuo-math/4.2.0": {
|
||||
"jar": "sha256-7NZdhI/2SIAXBLm6D3CmRtQDAgy97SYf1zVIGkeWVRI=",
|
||||
"pom": "sha256-iCAlohj3F9hakTNsztSg+08CsjFcppZy0oqCc3uWhVE="
|
||||
},
|
||||
"org/tribuo#tribuo-util-onnx/4.2.0": {
|
||||
"jar": "sha256-ohcAq4nLB1/OT8UkA1n5HMj4t/JCiS1lsD+oda0s3Vs=",
|
||||
"pom": "sha256-Q19d8ELZieF6QHPjcFa++ChKUrw3zIZeF5Xvi7U5KUw="
|
||||
},
|
||||
"org/tribuo#tribuo-util-tokenization/4.2.0": {
|
||||
"jar": "sha256-b0TzDZ0g6amwscMHAbcrPeXtofbXbZXanWkHQmVXdoI=",
|
||||
"pom": "sha256-6GAT6tT7c0apQghWqMAX/g7aAlhmu0w935AK2JLi/Tg="
|
||||
},
|
||||
"org/tribuo#tribuo-util/4.2.0": {
|
||||
"pom": "sha256-saxG0eBU4acgcz0cMeBMaIxxJb+mIN7RpEQ9BdNMma8="
|
||||
},
|
||||
"org/tribuo#tribuo/4.2.0": {
|
||||
"pom": "sha256-mMQFMwnY7vg2fAbCAmyDHkqwS3nOny0hrGrrKE2dNZQ="
|
||||
},
|
||||
"org/tukaani#xz/1.9": {
|
||||
"jar": "sha256-IRswbPxE+Plt86Cj3a91uoxSie7XfWDXL4ibuFX1NeU=",
|
||||
"pom": "sha256-CTvhsDMxvOKTLWglw36YJy12Ieap6fuTKJoAJRi43Vo="
|
||||
}
|
||||
},
|
||||
"https://sourceforge.net/projects": {
|
||||
"pydev/files/pydev/PyDev%206.3.1/PyDev%206.3.1": {
|
||||
"zip": "sha256-TYH+nYr+dmW46iCETT9RB/RGdCknxZlz6t5PKYCbBpk="
|
||||
},
|
||||
"yajsw/files/yajsw/yajsw-stable-13.12/yajsw-stable-13.12": {
|
||||
"zip": "sha256-xvxZgV04ANFOyXeSaor9P2BqDr100s/WBgFndGbt6qI="
|
||||
}
|
||||
},
|
||||
"https://storage.googleapis.com": {
|
||||
"google-code-archive-downloads/v2/code.google.com/android4me/AXMLPrinter2": {
|
||||
"jar": "sha256-AO0Djrarr23eyNICo+16gbUhRY9M1FmUgRXP0C/1nW0="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,14 +1,32 @@
|
|||
{ lib, newScope, callPackage, ghidra }:
|
||||
{
|
||||
lib,
|
||||
newScope,
|
||||
callPackage,
|
||||
ghidra,
|
||||
}:
|
||||
|
||||
lib.makeScope newScope (self: {
|
||||
inherit (callPackage ./build-extension.nix { inherit ghidra; }) buildGhidraExtension buildGhidraScripts;
|
||||
inherit (callPackage ./build-extension.nix { inherit ghidra; })
|
||||
buildGhidraExtension
|
||||
buildGhidraScripts
|
||||
;
|
||||
|
||||
findcrypt = self.callPackage ./extensions/findcrypt { };
|
||||
|
||||
ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { };
|
||||
|
||||
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension {
|
||||
inherit ghidra;
|
||||
};
|
||||
|
||||
gnudisassembler = self.callPackage ./extensions/gnudisassembler { inherit ghidra; };
|
||||
|
||||
lightkeeper = self.callPackage ./extensions/lightkeeper { };
|
||||
|
||||
machinelearning = self.callPackage ./extensions/machinelearning { inherit ghidra; };
|
||||
|
||||
ret-sync = self.callPackage ./extensions/ret-sync { };
|
||||
|
||||
sleighdevtools = self.callPackage ./extensions/sleighdevtools { inherit ghidra; };
|
||||
|
||||
})
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildGhidraExtension,
|
||||
}:
|
||||
let
|
||||
version = "3.0.2";
|
||||
in
|
||||
buildGhidraExtension {
|
||||
pname = "findcrypt";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "antoniovazquezblanco";
|
||||
repo = "GhidraFindcrypt";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SNmhn/X+POp6dRaB9etZ8GvpKf/5+mPg3E0HUQTthIY=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Ghidra analysis plugin to locate cryptographic constants";
|
||||
homepage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt";
|
||||
downloadPage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${version}";
|
||||
changelog = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${version}";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = [ lib.maintainers.BonusPlay ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
lib,
|
||||
ghidra,
|
||||
gradle,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
let
|
||||
version = "0.5.0";
|
||||
self = ghidra.buildGhidraExtension {
|
||||
pname = "ghidra-delinker-extension";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "boricj";
|
||||
repo = "ghidra-delinker-extension";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-y0afqqIsWN33b/zGsxJYn8O+R5IP4eD300CgzMymEA0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace build.gradle \
|
||||
--replace-fail '"''${getGitHash()}"' '"v${version}"'
|
||||
'';
|
||||
|
||||
gradleBuildTask = "buildExtension";
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
mitmCache = gradle.fetchDeps {
|
||||
pkg = self;
|
||||
data = ./deps.json;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Ghidra extension for delinking executables back to object files";
|
||||
homepage = "https://github.com/boricj/ghidra-delinker-extension";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.jchw ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
};
|
||||
in
|
||||
self
|
|
@ -0,0 +1,214 @@
|
|||
{
|
||||
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
|
||||
"!version": 1,
|
||||
"https://plugins.gradle.org/m2": {
|
||||
"com/diffplug/durian#durian-collect/1.2.0": {
|
||||
"jar": "sha256-sZTAuIAhzBFsIcHcdvScLB/hda9by3TIume527+aSMw=",
|
||||
"pom": "sha256-i7diCGoKT9KmRzu/kFx0R2OvodWaVjD3O7BLeHLAn/M="
|
||||
},
|
||||
"com/diffplug/durian#durian-core/1.2.0": {
|
||||
"jar": "sha256-F+0KrLOjwWMjMyFou96thpTzKACytH1p1KTEmxFNXa4=",
|
||||
"pom": "sha256-hwMg6QdVNxsBeW/oG6Ul/R3ui3A0b1VFUe7dQonwtmI="
|
||||
},
|
||||
"com/diffplug/durian#durian-io/1.2.0": {
|
||||
"jar": "sha256-CV/R3HeIjAc/C+OaAYFW7lJnInmLCd6eKF7yE14W6sQ=",
|
||||
"pom": "sha256-NQkZQkMk4nUKPdwvobzmqQrIziklaYpgqbTR1uSSL/4="
|
||||
},
|
||||
"com/diffplug/durian#durian-swt.os/4.2.0": {
|
||||
"jar": "sha256-8h5XK/n7tUmpmMt+L3m2uaOrliM3GsEwsSUJUj97dI8=",
|
||||
"module": "sha256-S9OpnUAGnXD/3CiPsokUlAoDtNURHO1NnPohI8lOX+M=",
|
||||
"pom": "sha256-5CTf5Z5I9R1LbVP2mXeaU6Ue8yTx/zxtZi791PYwSGI="
|
||||
},
|
||||
"com/diffplug/spotless#com.diffplug.spotless.gradle.plugin/6.20.0": {
|
||||
"pom": "sha256-g2lNHgrPjO84zk9mbIzZ3h5S4dQpc+YwFYmXja3WWnY="
|
||||
},
|
||||
"com/diffplug/spotless#spotless-lib-extra/2.40.0": {
|
||||
"jar": "sha256-/+NEZO04c32MmQ+Im51b87b+wvu+oAvUq92SjuNPUxY=",
|
||||
"module": "sha256-VHaHB4POYSoDtDOa00a11RN9a3fSAUFybYWRCdYZFPc=",
|
||||
"pom": "sha256-CpqBsO9AG7lEYP08A2kB74qKW9d1khjyFbFviGGhZfE="
|
||||
},
|
||||
"com/diffplug/spotless#spotless-lib/2.40.0": {
|
||||
"jar": "sha256-ozGah3amzO4e1DaQTtEBZWX9Ay7KhIwlpCUSbBk3Z10=",
|
||||
"module": "sha256-sPGda3aE/68dQY7dFc7ZgCBZCwbFfsr0RAX0iVBRgFw=",
|
||||
"pom": "sha256-aQbVFaYTBtHzpqMFi5hXcTipXDTEwCD00AmBUfMZSLI="
|
||||
},
|
||||
"com/diffplug/spotless#spotless-plugin-gradle/6.20.0": {
|
||||
"jar": "sha256-PbqJL0iTeT3w0CRZb02LGQUXzUDNErVYFwoB37PCLDM=",
|
||||
"module": "sha256-i+pazpSaZq1tIXFfG9Ge5u7F9S7A1m8G+PLJNPtwJWA=",
|
||||
"pom": "sha256-VTD1T1UXPH7b0n0dAUjbFVWCBvMYy/bCtjZYNcNUW9I="
|
||||
},
|
||||
"com/github/gmazzo/buildconfig#com.github.gmazzo.buildconfig.gradle.plugin/5.3.5": {
|
||||
"pom": "sha256-+7LpGMzwo5wJ8GZtfRlxoEaiVsZG8yfDoQpN6M5P1JU="
|
||||
},
|
||||
"com/github/gmazzo/buildconfig#plugin/5.3.5": {
|
||||
"jar": "sha256-Jeh99WaAFSYYVbxxERZaqpQMo9I781sKoBBVRXNjgyk=",
|
||||
"module": "sha256-4Fk5HzzRXQvCrDvbTf7MNXtNcFekqGlpSg/sbGruwXY=",
|
||||
"pom": "sha256-MgrmPgZ4TF2fraSFnOPhEBYlcCoWM4/dvu9UHVUkWOo="
|
||||
},
|
||||
"com/googlecode/concurrent-trees#concurrent-trees/2.6.1": {
|
||||
"jar": "sha256-BONySYTipcv1VgbPo3KlvT08XSohUzpwBOPN5Tl2H6U=",
|
||||
"pom": "sha256-Q8K5sULnBV0fKlgn8QlEkl0idH2XVrMlDAeqtHU4qXE="
|
||||
},
|
||||
"com/googlecode/javaewah#JavaEWAH/1.2.3": {
|
||||
"jar": "sha256-1lImlJcTxMYaeE9BxRFn57Axb5N2Q5jrup5DNrPZVMI=",
|
||||
"pom": "sha256-5O1sZpYgNm+ZOSBln+CsfLyD11PbwNwOseUplzr5byM="
|
||||
},
|
||||
"com/squareup#javapoet/1.13.0": {
|
||||
"jar": "sha256-THUX6EinGzbQadErs79Gpw/UzaMQXYIrDtLhnAC2kpE=",
|
||||
"pom": "sha256-VKNPqFAqRryQ79tJJiYAWR+oC/mjT1pMeYMRrsFsqXc="
|
||||
},
|
||||
"com/squareup#kotlinpoet-jvm/1.15.3": {
|
||||
"jar": "sha256-cdnoD49eqFCombaN6tOxwzvfq67DZJBpVfS0hTbXn6E=",
|
||||
"module": "sha256-WTlDw+sa3SFaeEL6MsmnlqoCF3zVZDkfuIp9QIYWs6M=",
|
||||
"pom": "sha256-3Zr3oWxwNwdeGbOoQLXlHVes9g4cjYnG5FqcHDWw6Ik="
|
||||
},
|
||||
"com/squareup#kotlinpoet/1.15.3": {
|
||||
"module": "sha256-Q38EctA1tN3NSAJpTEodgDhphD4Li+WP/FA//GFmIWc=",
|
||||
"pom": "sha256-TLSlkhcLOMvGCZ4QIWMAR8ViFco++yl5jP4nA1qyPw0="
|
||||
},
|
||||
"com/squareup/okhttp3#okhttp/4.10.0": {
|
||||
"jar": "sha256-dYDxT6FpEgbjcIGtP5IGOxYDsyjaC7MW8v7wLgVi5+w=",
|
||||
"module": "sha256-bDBwggtZH17IwpSEl7Wmt0L0krcVvKz0t1EVs6j/qxU=",
|
||||
"pom": "sha256-x/kgsofIOOHYHipj+Gd7svqZE3BYorEeZTWv3pyBoOU="
|
||||
},
|
||||
"com/squareup/okio#okio-jvm/3.0.0": {
|
||||
"jar": "sha256-vmSgzB8o6pzVyXDdfnVXr3LICNc4xJWzl7+JfJkh6Qc=",
|
||||
"module": "sha256-F/SNQXdb2E3qeOnf7Y37zGavgFZ6XJ7J2WCHheyCDN4=",
|
||||
"pom": "sha256-sMtzRExjeVg7KlOiZIxI3kIOsfSRVmdTdNimdW7zovo="
|
||||
},
|
||||
"com/squareup/okio#okio/3.0.0": {
|
||||
"module": "sha256-b546eXgx51xbVi2UbAdRg/myvoRnken4i95FSR2u2Yc=",
|
||||
"pom": "sha256-lgrVNSNexh9VRtuBPQGVwTr4UjChLqvpmXUeilUNFU8="
|
||||
},
|
||||
"dev/equo/ide#solstice/1.3.1": {
|
||||
"jar": "sha256-dl9eEMdIofpRy3tsyH8pgqs2txWX5p9wnZi/ETa1ME8=",
|
||||
"module": "sha256-oEpRNV2jFNNKtpRZzJ1J8trBV3pd9Kc3Y5DXfOogItE=",
|
||||
"pom": "sha256-ljw9pdrhspFNWcDbgXTt2LyqwwO0FMdp4WQsfYOMbPw="
|
||||
},
|
||||
"org/eclipse/jgit#org.eclipse.jgit-parent/6.6.0.202305301015-r": {
|
||||
"pom": "sha256-rILKtoxRf/67xcbnagItce9dQANsnE4O+QHw6ceKOlk="
|
||||
},
|
||||
"org/eclipse/jgit#org.eclipse.jgit/6.6.0.202305301015-r": {
|
||||
"jar": "sha256-4wRVXVsg3zuRzHfBJCSvcL4w1Copx+2MJ7Pwb3M3qOM=",
|
||||
"pom": "sha256-nNAirxZ7WVDZpXC0s+aqPsybehWhshWFVDB+mb7h0IQ="
|
||||
},
|
||||
"org/eclipse/platform#org.eclipse.osgi/3.18.300": {
|
||||
"jar": "sha256-urlD5Y7dFzCSOGctunpFrsni2svd24GKjPF3I+oT+iI=",
|
||||
"pom": "sha256-4nl2N1mZxUJ/y8//PzvCD77a+tiqRRArN59cL5fI/rQ="
|
||||
},
|
||||
"org/jetbrains#annotations/13.0": {
|
||||
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
|
||||
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-reflect/1.9.21": {
|
||||
"jar": "sha256-oTPgSfCk4kllFYJCjhZt5N+slUat9Da2FyEZJV7eUQ8=",
|
||||
"pom": "sha256-wu93WbdrxNn29SnS8/vBwxpFl8wVhuc6fXqxbRvbtKk="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-common/1.9.22": {
|
||||
"module": "sha256-+Tyemr+NUtjo/Y6FGqgC7OxVEyFhxK7ufTzZJL95QkY=",
|
||||
"pom": "sha256-10k21oh1ZK63EOhCmLVCB/U+m88jpSrSv6IsIIZ3V2c="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.8.0": {
|
||||
"jar": "sha256-TIidHZgD9fLrbBWSprfmI2msdmDJ7uFauhb+wFkWNmY=",
|
||||
"pom": "sha256-36lkSmrluJjuR1ux9X6DC6H3cK7mycFfgRKqOBGAGEo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.8.0": {
|
||||
"jar": "sha256-BbYoBEQbDJoZILa31c9zKaTiS2JYR44ysfBGygGQCUY=",
|
||||
"pom": "sha256-K7bHVRuXx7oCn5hmWC56oZ1jq/1M1T2j/AxGLzq1/CY="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib/1.9.22": {
|
||||
"jar": "sha256-ar4UbCeGQTi4dMzM/l9TTj65I8maG3tdRUlO5WlPPgo=",
|
||||
"module": "sha256-9IIxS1B5wUVfb7DUJXp0XRAcYSTOlhUiuob53JCQHkc=",
|
||||
"pom": "sha256-zOLxUoXsgHijd0a1cwigVAQt1cwlQgxD9zt4V8JGjwM="
|
||||
},
|
||||
"org/slf4j#slf4j-api/1.7.36": {
|
||||
"jar": "sha256-0+9XXj5JeWeNwBvx3M5RAhSTtNEft/G+itmCh3wWocA=",
|
||||
"pom": "sha256-+wRqnCKUN5KLsRwtJ8i113PriiXmDL0lPZhSEN7cJoQ="
|
||||
},
|
||||
"org/slf4j#slf4j-parent/1.7.36": {
|
||||
"pom": "sha256-uziNN/vN083mTDzt4hg4aTIY3EUfBAQMXfNgp47X6BI="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/5": {
|
||||
"pom": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/7": {
|
||||
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||
},
|
||||
"org/tukaani#xz/1.9": {
|
||||
"jar": "sha256-IRswbPxE+Plt86Cj3a91uoxSie7XfWDXL4ibuFX1NeU=",
|
||||
"pom": "sha256-CTvhsDMxvOKTLWglw36YJy12Ieap6fuTKJoAJRi43Vo="
|
||||
}
|
||||
},
|
||||
"https://repo.maven.apache.org/maven2": {
|
||||
"junit#junit/4.12": {
|
||||
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
|
||||
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
|
||||
},
|
||||
"net/bytebuddy#byte-buddy-agent/1.14.5": {
|
||||
"jar": "sha256-VfGYYrhw9dhYkLpThrG0Xpu8iNX+H4Gavgx4i0kp+ms=",
|
||||
"pom": "sha256-CyjT+A+r52hqIX2ZiWGdN8V7vXSoCja5bC3DojrKTyg="
|
||||
},
|
||||
"net/bytebuddy#byte-buddy-parent/1.14.5": {
|
||||
"pom": "sha256-/gFyOCYsnppgFaKxG5Ra9yjBMz9fnvnQ4DEj568X8MI="
|
||||
},
|
||||
"net/bytebuddy#byte-buddy/1.14.5": {
|
||||
"jar": "sha256-6ZdhpSbfD++70/4UQ2sPlTAAzfpRUdxjwLGNN9nEbxw=",
|
||||
"pom": "sha256-ZtTt/qwkvRduj7LUhn6QigYX15dxCIFFuYJReEsoggo="
|
||||
},
|
||||
"org/hamcrest#hamcrest-core/1.3": {
|
||||
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
|
||||
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
|
||||
},
|
||||
"org/hamcrest#hamcrest-parent/1.3": {
|
||||
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
|
||||
},
|
||||
"org/jacoco#org.jacoco.agent/0.8.11": {
|
||||
"jar": "sha256-0+2F3qeKntVYRqdzjjoMoVxwLGYe5LyMv+Aqi59KmcA=",
|
||||
"pom": "sha256-FuBen0liG4fFPmk1AUDzxG1C2WbGepM730sGOiscj8U="
|
||||
},
|
||||
"org/jacoco#org.jacoco.ant/0.8.11": {
|
||||
"jar": "sha256-gdfriJDZvjCpOWEsKVYDVBBjUpzdA6UyZaunRHS3C3w=",
|
||||
"pom": "sha256-ftED2VnQzue6v7Ewf6bkUbFpb/01JwYVU7VQ3lUgHYU="
|
||||
},
|
||||
"org/jacoco#org.jacoco.build/0.8.11": {
|
||||
"pom": "sha256-W4SxXPLu8+WeuRvCJ4SDMQCwnfmRHjMZAww7xki9iws="
|
||||
},
|
||||
"org/jacoco#org.jacoco.core/0.8.11": {
|
||||
"jar": "sha256-/NGIxohHP8jcwMbKrzVeeziVAiQ1J8M7lZej7Ch5H0c=",
|
||||
"pom": "sha256-u2E18Qo2NJy4SlYA/Yz3P8EpahNbLxStzYPejPJMq7E="
|
||||
},
|
||||
"org/jacoco#org.jacoco.report/0.8.11": {
|
||||
"jar": "sha256-g5MpWuJGgO0QytgzOQcED5KLhxMySRWBylvHhOLLT74=",
|
||||
"pom": "sha256-jjtzR3nV4/1oPsAVQT1S+WGYTFDLkEX9orI7/160I4E="
|
||||
},
|
||||
"org/mockito#mockito-core/5.4.0": {
|
||||
"jar": "sha256-sWibBmF+oB/Xd7+u293lEvrwg9Y5oEn3mziNWk6W0uU=",
|
||||
"pom": "sha256-1gZDwDIVaj0pWc0AAN871iqBcj9+DCWD+kL9ZoTz1eM="
|
||||
},
|
||||
"org/objenesis#objenesis-parent/3.3": {
|
||||
"pom": "sha256-MFw4SqLx4cf+U6ltpBw+w1JDuX1CjSSo93mBjMEL5P8="
|
||||
},
|
||||
"org/objenesis#objenesis/3.3": {
|
||||
"jar": "sha256-At/QsEOaVZHjW3CO0vVHTrCUj1Or90Y36Vm45O9pv+s=",
|
||||
"pom": "sha256-ugxA2iZpoEi24k73BmpHHw+8v8xQnmo+hWyk3fphStM="
|
||||
},
|
||||
"org/ow2#ow2/1.5.1": {
|
||||
"pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU="
|
||||
},
|
||||
"org/ow2/asm#asm-bom/9.6": {
|
||||
"pom": "sha256-ig5fYk/ikwt6jWmVb0OORe9TKZa01kQJthbErvSxrE4="
|
||||
},
|
||||
"org/ow2/asm#asm-commons/9.6": {
|
||||
"jar": "sha256-eu/Q1cCQFwHGn3UT/tp2X7a+M68s56oXxXgfyHZXxRE=",
|
||||
"pom": "sha256-qYrkiVM0uvj/hr1mUWIQ29mgPxpuFeR92oKvz2tT13w="
|
||||
},
|
||||
"org/ow2/asm#asm-tree/9.6": {
|
||||
"jar": "sha256-xD7PF7U5x3fhXae1uGVTs3fi05poPeYoVWfVKDiI5+8=",
|
||||
"pom": "sha256-G8tIHX/Ba5VbtgygfIz6JCS87ni9xAW7oxx9b13C0RM="
|
||||
},
|
||||
"org/ow2/asm#asm/9.6": {
|
||||
"jar": "sha256-PG+sJCTbPUqFO2afTj0dnDxVIjXhmjGWc/iHCDwjA6E=",
|
||||
"pom": "sha256-ku7iS8PIQ+SIHUbB3WUFRx7jFC+s+0ZrQoz+paVsa2A="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,10 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, buildGhidraScripts
|
||||
, binwalk
|
||||
, swift
|
||||
, yara
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildGhidraScripts,
|
||||
binwalk,
|
||||
swift,
|
||||
yara,
|
||||
}:
|
||||
|
||||
buildGhidraScripts {
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, buildGhidraExtension
|
||||
, ghidra
|
||||
, flex
|
||||
, bison
|
||||
, texinfo
|
||||
, perl
|
||||
, zlib
|
||||
, xcbuild
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
buildGhidraExtension,
|
||||
ghidra,
|
||||
flex,
|
||||
bison,
|
||||
texinfo,
|
||||
perl,
|
||||
zlib,
|
||||
xcbuild,
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -41,13 +42,10 @@ buildGhidraExtension {
|
|||
bison
|
||||
texinfo
|
||||
perl
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
xcbuild
|
||||
];
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
|
||||
|
||||
buildInputs = [
|
||||
zlib
|
||||
];
|
||||
buildInputs = [ zlib ];
|
||||
gradleBuildTask = "assemble";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildGhidraExtension,
|
||||
}:
|
||||
buildGhidraExtension rec {
|
||||
pname = "lightkeeper";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WorksButNotTested";
|
||||
repo = "lightkeeper";
|
||||
rev = version;
|
||||
hash = "sha256-Emyo4GBrR725jDxRsStC6/4F9mYnRo3S3QY0GeB/BvI=";
|
||||
};
|
||||
preConfigure = ''
|
||||
cd lightkeeper
|
||||
'';
|
||||
meta = {
|
||||
description = "A port of the Lighthouse plugin to GHIDRA.";
|
||||
homepage = "https://github.com/WorksButNotTested/lightkeeper";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{ lib
|
||||
, buildGhidraExtension
|
||||
, ghidra
|
||||
{
|
||||
lib,
|
||||
buildGhidraExtension,
|
||||
ghidra,
|
||||
}:
|
||||
|
||||
buildGhidraExtension {
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
buildGhidraExtension,
|
||||
ghidra,
|
||||
}:
|
||||
buildGhidraExtension {
|
||||
pname = "ret-sync-ghidra";
|
||||
version = "0-unstable-2024-05-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bootleg";
|
||||
repo = "ret-sync";
|
||||
rev = "0617c75746ddde7fe2bdbbf880175af8ad27553e";
|
||||
hash = "sha256-+G5ccdHnFL0sHpueuIYwLRU9FhzN658CYqQCHCBwxV4=";
|
||||
};
|
||||
patches = [
|
||||
# This patch is needed to get the extension compiling with Ghidra 11.2.
|
||||
# Once it's fixed upstream, the src can be updated and this can be removed.
|
||||
(fetchpatch {
|
||||
# https://github.com/bootleg/ret-sync/pull/126
|
||||
name = "ghidra-11.2-fix.patch";
|
||||
url = "https://github.com/bootleg/ret-sync/commit/d81d953c24b4369b499e90ba64c1c9f78513a008.patch";
|
||||
hash = "sha256-t/voPcBfsZtfdYnskgBAPfqMTBw1LRTT0aXyyb5qtr8=";
|
||||
})
|
||||
];
|
||||
preConfigure = ''
|
||||
cd ext_ghidra
|
||||
'';
|
||||
preInstall = ''
|
||||
correct_version=$(ls dist | grep ${ghidra.version})
|
||||
mv dist/$correct_version dist/safe.zip
|
||||
rm dist/ghidra*
|
||||
mv dist/safe.zip dist/$correct_version
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "Reverse-Engineering Tools SYNChronization. Allows syncing between a debugging session and Ghidra";
|
||||
homepage = "https://github.com/bootleg/ret-sync";
|
||||
license = licenses.gpl3Only;
|
||||
};
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
{ lib
|
||||
, buildGhidraExtension
|
||||
, ghidra
|
||||
, python3
|
||||
{
|
||||
lib,
|
||||
buildGhidraExtension,
|
||||
ghidra,
|
||||
python3,
|
||||
}:
|
||||
|
||||
buildGhidraExtension {
|
||||
|
|
|
@ -1,33 +1,42 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, callPackage
|
||||
, symlinkJoin
|
||||
, makeBinaryWrapper
|
||||
, desktopToDarwinBundle
|
||||
, ghidra
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
callPackage,
|
||||
symlinkJoin,
|
||||
makeBinaryWrapper,
|
||||
desktopToDarwinBundle,
|
||||
ghidra,
|
||||
}:
|
||||
|
||||
let
|
||||
ghidra-extensions = callPackage ./extensions.nix { inherit ghidra; };
|
||||
allExtensions = lib.filterAttrs (n: pkg: lib.isDerivation pkg) ghidra-extensions;
|
||||
|
||||
/* Make Ghidra with additional extensions
|
||||
/*
|
||||
Make Ghidra with additional extensions
|
||||
Example:
|
||||
pkgs.ghidra.withExtensions (p: with p; [
|
||||
ghostrings
|
||||
]);
|
||||
=> /nix/store/3yn0rbnz5mbrxf0x70jbjq73wgkszr5c-ghidra-with-extensions-10.2.2
|
||||
*/
|
||||
withExtensions = f: (symlinkJoin {
|
||||
withExtensions =
|
||||
f:
|
||||
(symlinkJoin {
|
||||
name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}";
|
||||
paths = (f allExtensions);
|
||||
nativeBuildInputs = [ makeBinaryWrapper ]
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
|
||||
postBuild = ''
|
||||
nativeBuildInputs = [
|
||||
makeBinaryWrapper
|
||||
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
|
||||
postBuild =
|
||||
''
|
||||
makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
|
||||
--set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
|
||||
makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \
|
||||
--set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
|
||||
ln -s ${ghidra}/share $out/share
|
||||
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
convertDesktopFiles $prefix
|
||||
'';
|
||||
inherit (ghidra) meta;
|
||||
|
|
Loading…
Reference in New Issue