ghidra: update extensions

This commit is contained in:
xenia 2025-09-11 18:57:04 -04:00
parent 08ca2a385e
commit 4e666a5da8
8 changed files with 87 additions and 72 deletions

View File

@ -3,26 +3,23 @@
fetchFromGitHub, fetchFromGitHub,
buildGhidraExtension, buildGhidraExtension,
}: }:
let buildGhidraExtension (finalAttrs: {
version = "3.0.5";
in
buildGhidraExtension {
pname = "findcrypt"; pname = "findcrypt";
inherit version; version = "3.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "antoniovazquezblanco"; owner = "antoniovazquezblanco";
repo = "GhidraFindcrypt"; repo = "GhidraFindcrypt";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-gWVYy+PWpNXlcgD83jap4IFRv66qdhloOwvpQVU2TcI="; hash = "sha256-KP6Wx2U8O/37yEAcV3abKg/uWraHJJOIfb7kvcfejHA=";
}; };
meta = { meta = {
description = "Ghidra analysis plugin to locate cryptographic constants"; description = "Ghidra analysis plugin to locate cryptographic constants";
homepage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt"; homepage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt";
downloadPage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${version}"; downloadPage = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${finalAttrs.version}";
changelog = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${version}"; changelog = "https://github.com/antoniovazquezblanco/GhidraFindcrypt/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3; license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.BonusPlay ]; maintainers = [ lib.maintainers.BonusPlay ];
}; };
} })

View File

@ -4,22 +4,20 @@
gradle, gradle,
fetchFromGitHub, fetchFromGitHub,
}: }:
let ghidra.buildGhidraExtension (finalAttrs: {
version = "0.5.1";
self = ghidra.buildGhidraExtension {
pname = "ghidra-delinker-extension"; pname = "ghidra-delinker-extension";
inherit version; version = "0.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "boricj"; owner = "boricj";
repo = "ghidra-delinker-extension"; repo = "ghidra-delinker-extension";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-h6F50Z7S6tPOl9mIhChLKoFxHuAkq/n36ysUEFwWGxI="; hash = "sha256-h6F50Z7S6tPOl9mIhChLKoFxHuAkq/n36ysUEFwWGxI=";
}; };
postPatch = '' postPatch = ''
substituteInPlace build.gradle \ substituteInPlace build.gradle \
--replace-fail '"''${getGitHash()}"' '"v${version}"' --replace-fail '"''${getGitHash()}"' '"v${finalAttrs.version}"'
''; '';
gradleBuildTask = "buildExtension"; gradleBuildTask = "buildExtension";
@ -27,7 +25,7 @@ let
__darwinAllowLocalNetworking = true; __darwinAllowLocalNetworking = true;
mitmCache = gradle.fetchDeps { mitmCache = gradle.fetchDeps {
pkg = self; pkg = finalAttrs.finalPackage;
data = ./deps.json; data = ./deps.json;
}; };
@ -38,6 +36,4 @@ let
maintainers = [ lib.maintainers.jchw ]; maintainers = [ lib.maintainers.jchw ];
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
}; };
}; })
in
self

View File

@ -0,0 +1,24 @@
{
buildGhidraExtension,
fetchFromGitHub,
lib,
}:
buildGhidraExtension (finalAttrs: {
pname = "ghidra-firmware-utils";
version = "2024.04.20";
src = fetchFromGitHub {
owner = "al3xtjames";
repo = "ghidra-firmware-utils";
rev = finalAttrs.version;
hash = "sha256-BbPRSD1EzgMA3TCKHyNqLjzEgiOm67mLJuOeFOTvd0I=";
};
meta = {
description = "Ghidra utilities for analyzing PC firmware";
homepage = "https://github.com/al3xtjames/ghidra-firmware-utils";
downloadPage = "https://github.com/al3xtjames/ghidra-firmware-utils/releases/tag/${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ timschumi ];
};
})

View File

@ -3,22 +3,22 @@
fetchFromGitHub, fetchFromGitHub,
buildGhidraExtension, buildGhidraExtension,
}: }:
buildGhidraExtension rec { buildGhidraExtension (finalAttrs: {
pname = "Ghidra-GolangAnalyzerExtension"; pname = "Ghidra-GolangAnalyzerExtension";
version = "1.2.4"; version = "1.2.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mooncat-greenpy"; owner = "mooncat-greenpy";
repo = "Ghidra_GolangAnalyzerExtension"; repo = "Ghidra_GolangAnalyzerExtension";
rev = version; rev = finalAttrs.version;
hash = "sha256-uxozIJ+BLcP1vBnLOCZD9ueY10hd37fON/Miii3zabo="; hash = "sha256-uxozIJ+BLcP1vBnLOCZD9ueY10hd37fON/Miii3zabo=";
}; };
meta = { meta = {
description = "Facilitates the analysis of Golang binaries using Ghidra"; description = "Facilitates the analysis of Golang binaries using Ghidra";
homepage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension"; homepage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension";
downloadPage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension/releases/tag/${version}"; downloadPage = "https://github.com/mooncat-greenpy/Ghidra_GolangAnalyzerExtension/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = [ lib.maintainers.ivyfanchiang ]; maintainers = [ lib.maintainers.ivyfanchiang ];
}; };
} })

View File

@ -42,7 +42,8 @@ buildGhidraExtension {
bison bison
texinfo texinfo
perl perl
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]; ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
buildInputs = [ zlib ]; buildInputs = [ zlib ];
gradleBuildTask = "assemble"; gradleBuildTask = "assemble";

View File

@ -24,15 +24,15 @@ let
} }
); );
self = buildGhidraExtension rec { self = buildGhidraExtension (finalAttrs: {
pname = "kaiju"; pname = "kaiju";
version = "250417"; version = "250828";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "CERTCC"; owner = "CERTCC";
repo = "kaiju"; repo = "kaiju";
rev = version; rev = finalAttrs.version;
hash = "sha256-SSvCb3xnOh0mb3H24RJTi11UmN2ARgFgsiiKlZXyufM="; hash = "sha256-edsQIBoOTY+WxVBtH1bbM7TZZHhA0jgVb2iJKC66iVM=";
}; };
buildInputs = [ buildInputs = [
@ -43,9 +43,9 @@ let
# https://github.com/CERTCC/kaiju/blob/c9dbb55484b3d2a6abd9dfca2197cd00fb7ee3c1/build.gradle#L189 # https://github.com/CERTCC/kaiju/blob/c9dbb55484b3d2a6abd9dfca2197cd00fb7ee3c1/build.gradle#L189
preBuild = '' preBuild = ''
mkdir -p build/cmake/z3/java-bindings mkdir -p build/cmake/z3/java-bindings
ln -s ${lib.getOutput "lib" z3_lib}/lib/com.microsoft.z3.jar build/cmake/z3/java-bindings ln -s ${lib.getOutput "java" z3_lib}/share/java/com.microsoft.z3.jar build/cmake/z3/java-bindings
mkdir -p os/${ghidraPlatformName} mkdir -p os/${ghidraPlatformName}
cp ${lib.getOutput "lib" z3_lib}/lib/* os/${ghidraPlatformName} cp ${lib.getOutput "java" z3_lib}/lib/* os/${ghidraPlatformName}
''; '';
gradleFlags = [ "-PKAIJU_SKIP_Z3_BUILD=true" ]; gradleFlags = [ "-PKAIJU_SKIP_Z3_BUILD=true" ];
@ -56,9 +56,9 @@ let
}; };
meta = { meta = {
description = "A Java implementation of some features of the CERT Pharos Binary Analysis Framework for Ghidra"; description = "Java implementation of some features of the CERT Pharos Binary Analysis Framework for Ghidra";
homepage = "https://github.com/CERTCC/kaiju"; homepage = "https://github.com/CERTCC/kaiju";
downloadPage = "https://github.com/CERTCC/kaiju/releases/tag/${version}"; downloadPage = "https://github.com/CERTCC/kaiju/releases/tag/${finalAttrs.version}";
license = lib.licenses.bsd3; license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.ivyfanchiang ]; maintainers = [ lib.maintainers.ivyfanchiang ];
platforms = [ platforms = [
@ -68,6 +68,6 @@ let
"aarch64-darwin" "aarch64-darwin"
]; ];
}; };
}; });
in in
self self

View File

@ -3,22 +3,22 @@
fetchFromGitHub, fetchFromGitHub,
buildGhidraExtension, buildGhidraExtension,
}: }:
buildGhidraExtension rec { buildGhidraExtension (finalAttrs: {
pname = "lightkeeper"; pname = "lightkeeper";
version = "1.2.4"; version = "1.2.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "WorksButNotTested"; owner = "WorksButNotTested";
repo = "lightkeeper"; repo = "lightkeeper";
rev = version; rev = finalAttrs.version;
hash = "sha256-aGMWg6VQleKH/txlxpSw19QOotWZSqeW5Ve2SpWGhgA="; hash = "sha256-aGMWg6VQleKH/txlxpSw19QOotWZSqeW5Ve2SpWGhgA=";
}; };
preConfigure = '' preConfigure = ''
cd lightkeeper cd lightkeeper
''; '';
meta = { meta = {
description = "A port of the Lighthouse plugin to GHIDRA."; description = "Port of the Lighthouse plugin to GHIDRA";
homepage = "https://github.com/WorksButNotTested/lightkeeper"; homepage = "https://github.com/WorksButNotTested/lightkeeper";
license = lib.licenses.asl20; license = lib.licenses.asl20;
}; };
} })

View File

@ -5,18 +5,15 @@
ghidra, ghidra,
ant, ant,
}: }:
let buildGhidraExtension (finalAttrs: {
version = "2.3.1";
in
buildGhidraExtension {
pname = "wasm"; pname = "wasm";
inherit version; version = "2.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nneonneo"; owner = "nneonneo";
repo = "ghidra-wasm-plugin"; repo = "ghidra-wasm-plugin";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-aoSMNzv+TgydiXM4CbvAyu/YsxmdZPvpkZkYEE3C+V4="; hash = "sha256-JFUPhh4WUcfxYow3kLMyva1Ni/cQBIit983o/KbbKps=";
}; };
nativeBuildInputs = [ ant ]; nativeBuildInputs = [ ant ];
@ -35,9 +32,9 @@ buildGhidraExtension {
meta = { meta = {
description = "Ghidra Wasm plugin with disassembly and decompilation support"; description = "Ghidra Wasm plugin with disassembly and decompilation support";
homepage = "https://github.com/nneonneo/ghidra-wasm-plugin"; homepage = "https://github.com/nneonneo/ghidra-wasm-plugin";
downloadPage = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${version}"; downloadPage = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${finalAttrs.version}";
changelog = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${version}"; changelog = "https://github.com/nneonneo/ghidra-wasm-plugin/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3; license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.BonusPlay ]; maintainers = [ lib.maintainers.BonusPlay ];
}; };
} })