Compare commits

..

48 Commits

Author SHA1 Message Date
xenia 3a44be91fc satisfactory: move Intermediate to /var/cache 2025-09-15 15:59:43 -04:00
xenia 061827e9ed update nixpkgs 2025-09-15 15:01:14 -04:00
xenia 6d197a9919 fix kaiju 2025-09-14 01:46:24 -04:00
xenia 9d42d525a8 fix extension build 2025-09-13 23:45:17 -04:00
xenia 26d03f13e2 oops 2025-09-13 23:38:05 -04:00
xenia 5fb85e43b3 fix ghidra extensions 2025-09-13 23:36:41 -04:00
xenia bce039f350 fix ghidra extensions 2025-09-13 23:34:19 -04:00
xenia b1cdaa01d5 fix binsync metadata 2025-09-13 23:29:43 -04:00
xenia aa8b70931c ghidra: fix extension build issues 2025-09-13 22:57:57 -04:00
xenia e713eac6e6 update todo 2025-09-12 02:42:42 -04:00
xenia 0aa0881377 add programs.idapro 2025-09-12 02:38:13 -04:00
xenia b7dc1853a5 add ghidra binsync extension 2025-09-12 02:00:43 -04:00
xenia 280bc961ac fix python overrides 2025-09-12 01:00:11 -04:00
xenia 9ba5dff3bc add binsync 2025-09-12 00:47:37 -04:00
xenia cedb775069 update readme 2025-09-12 00:35:46 -04:00
xenia 3f470a0965 add patdiff-bin 2025-09-12 00:34:22 -04:00
xenia 47b498ae18 update todo 2025-09-12 00:30:31 -04:00
xenia 632f39f8a7 add idapro packaging 2025-09-12 00:30:23 -04:00
xenia 4e666a5da8 ghidra: update extensions 2025-09-11 18:57:11 -04:00
xenia 08ca2a385e move ghidra location 2025-09-11 18:51:50 -04:00
xenia b9ca97e9d4 meow 2025-09-11 18:10:34 -04:00
xenia aea392119f add dragnpkgs version of programs.ghidra 2025-09-11 18:05:53 -04:00
xenia 452713ca55 update readme 2025-09-11 16:01:23 -04:00
xenia 8560bebc33 fix docs 2025-09-11 15:47:25 -04:00
xenia 988ab7b6aa cleanup + docs 2025-09-11 15:45:44 -04:00
xenia 50a9bd8c9c satisfactory dedi: virtualize additional dir 2025-09-11 14:38:42 -04:00
xenia 38d97f6325 update satisfactory dedi 2025-09-11 14:16:00 -04:00
xenia f090b5ba0a ghidra 11.3.2 -> 11.4.2 2025-09-06 20:26:27 -04:00
xenia 83f7f964d1 remove kicad-xenia 2025-09-06 20:03:20 -04:00
xenia 86118da49d dual license ppx_unicode 2025-09-06 19:55:08 -04:00
xenia 5364802b05 fix ocaml pacakges 2025-09-06 19:47:41 -04:00
xenia e13deba11f add new module for satisfactory server 1.0 2025-09-01 22:56:30 -04:00
xenia d9acff1fa1 update nixpkgs/lix 2025-08-31 17:41:59 -04:00
xenia 2772028078 update nixpkgs 2025-08-03 16:21:47 -04:00
xenia 113bc45dd7 oops 2025-07-07 21:36:51 -04:00
xenia a66cf9784a update nixpkgs and lix 2025-07-07 21:31:25 -04:00
xenia 8a7924eec1 update to lix 2.92.2 2025-06-24 22:27:10 -04:00
xenia 6b4734f62a whoops 2025-06-22 18:21:51 -04:00
xenia 8cc37b204b pkgs: fix zbasefind 2025-06-18 23:35:09 -04:00
xenia 5b50a91cb5 pkgs: add moloch(-dragon) 2025-06-11 01:12:19 -04:00
xenia 0a6e9704e6 templates: beamer: use new style texlive syntax 2025-06-10 00:09:21 -04:00
xenia a00041da5f templates: update gitignore 2025-06-09 23:03:57 -04:00
xenia a81c912fef templates: update beamer 2025-06-09 22:16:59 -04:00
xenia 93e5969f57 templates: update beamer template 2025-06-09 22:16:25 -04:00
xenia 25abcac448 templates: update beamer template 2025-06-09 22:04:16 -04:00
xenia 50d9159ec9 templates: add beamer template 2025-06-09 21:19:54 -04:00
xenia 3e8347b65d flake: add `apps` to mkFlake transformed keys 2025-06-09 21:19:47 -04:00
xenia dfcb303eef flake: rework the nixpkgs init code 2025-06-06 00:24:26 -04:00
24 changed files with 244 additions and 484 deletions

View File

@ -16,16 +16,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1756617294, "lastModified": 1757745802,
"narHash": "sha256-aGnd4AHIYCWQKChAkHPpX+YYCt7pA6y2LFFA/s8q0wQ=", "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b4c2c57c31e68544982226d07e4719a2d86302a8", "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-25.05", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }

View File

@ -2,7 +2,7 @@
description = "dragnpkgs together with nixpkgs and lix"; description = "dragnpkgs together with nixpkgs and lix";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
lix-module = { lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-2.tar.gz"; url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-2.tar.gz";
@ -28,18 +28,18 @@
# self reference in the registry to be downloadable by URL in case it makes it into a # self reference in the registry to be downloadable by URL in case it makes it into a
# flake.lock # flake.lock
meta.registry-entry = { meta.registry-entry = {
from = { id = "dragnpkgs"; type = "indirect"; }; from = { id = "dragnpkgs-unstable"; type = "indirect"; };
to = { to = {
type = "git"; type = "git";
url = "https://git.lain.faith/haskal/dragnpkgs.git"; url = "https://git.lain.faith/haskal/dragnpkgs.git";
ref = "nixos-25.05"; ref = "main";
} // self.lib.filterAttrs } // self.lib.filterAttrs
(n: _: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash") (n: _: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash")
self; self;
}; };
# the nix path entry for self # the nix path entry for self
meta.path-entry = "dragnpkgs=flake:dragnpkgs"; meta.path-entry = "dragnpkgs-unstable=flake:dragnpkgs-unstable";
lib = (lib-base.extend (import ./lib/overlay.nix)).extend (final: prev: { lib = (lib-base.extend (import ./lib/overlay.nix)).extend (final: prev: {
# initializes regular upstream nixpkgs with the given arguments # initializes regular upstream nixpkgs with the given arguments
@ -154,17 +154,17 @@
}; };
}; };
config.nix.registry.dragnpkgs = config.nix.registry.dragnpkgs-unstable =
lib.mkIf config.dragnpkgs.setFlakeRegistry self.meta.registry-entry; lib.mkIf config.dragnpkgs.setFlakeRegistry self.meta.registry-entry;
config.nix.registry.nixpkgs = lib.mkIf config.dragnpkgs.setNixpkgsFlakeAlias { config.nix.registry.nixpkgs = lib.mkIf config.dragnpkgs.setNixpkgsFlakeAlias {
from = { id = "nixpkgs"; type = "indirect"; }; from = { id = "nixpkgs"; type = "indirect"; };
to = { id = "dragnpkgs"; type = "indirect"; }; to = { id = "dragnpkgs-unstable"; type = "indirect"; };
}; };
config.nix.registry.templates = lib.mkIf config.dragnpkgs.setTemplatesFlakeAlias { config.nix.registry.templates = lib.mkIf config.dragnpkgs.setTemplatesFlakeAlias {
from = { id = "templates"; type = "indirect"; }; from = { id = "templates"; type = "indirect"; };
to = { id = "dragnpkgs"; type = "indirect"; }; to = { id = "dragnpkgs-unstable"; type = "indirect"; };
}; };
config.nix.nixPath = lib.mkIf config.dragnpkgs.setNixPath [ config.nix.nixPath = lib.mkIf config.dragnpkgs.setNixPath [

View File

@ -259,6 +259,7 @@ in {
# game state # game state
PrivateTmp = true; PrivateTmp = true;
CacheDirectory = "satisfactory";
TemporaryFileSystem = [ TemporaryFileSystem = [
"${cfg.directory}:ro" "${cfg.directory}:ro"
@ -268,7 +269,7 @@ in {
]; ];
BindPaths = [ BindPaths = [
"${cfg.directory}/saves:${cfg.directory}/.config/Epic" "${cfg.directory}/saves:${cfg.directory}/.config/Epic"
"/var/tmp:${cfg.directory}/server/FactoryGame/Intermediate" "/var/cache/satisfactory:${cfg.directory}/server/FactoryGame/Intermediate"
"${cfg.directory}/settings/game:${cfg.directory}/server/FactoryGame/Saved" "${cfg.directory}/settings/game:${cfg.directory}/server/FactoryGame/Saved"
"${cfg.directory}/settings/engine:${cfg.directory}/server/Engine/Saved" "${cfg.directory}/settings/engine:${cfg.directory}/server/Engine/Saved"
] ++ lib.optionals (cfg.useACMEHost != null) [ ] ++ lib.optionals (cfg.useACMEHost != null) [

View File

@ -46,8 +46,6 @@ final: prev: {
}; };
}; };
# temporary upgrade so we can actually download satisfactory
depotdownloader = prev.callPackage ./pkgs/temp/depotdownloader {};
outer-wilds-text-adventure = prev.callPackage ./pkgs/games/outer-wilds-text-adventure {}; outer-wilds-text-adventure = prev.callPackage ./pkgs/games/outer-wilds-text-adventure {};
satisfactory-dedicated-server = prev.callPackage ./pkgs/games/satisfactory-dedicated-server {}; satisfactory-dedicated-server = prev.callPackage ./pkgs/games/satisfactory-dedicated-server {};

View File

@ -1,18 +1,5 @@
From be4c852769e260e3a9b516bb5626a6a6a68a2cd3 Mon Sep 17 00:00:00 2001
From: roblabla <unfiltered@roblab.la>
Date: Wed, 31 Jan 2024 13:19:55 +0100
Subject: [PATCH] Use com.google.protobuf:protobuf-gradle-plugin
---
Ghidra/Debug/Debugger-isf/build.gradle | 8 +-
Ghidra/Debug/Debugger-rmi-trace/build.gradle | 16 ++--
build.gradle | 6 ++
gradle/hasProtobuf.gradle | 94 --------------------
4 files changed, 22 insertions(+), 102 deletions(-)
delete mode 100644 gradle/hasProtobuf.gradle
diff --git a/Ghidra/Debug/Debugger-isf/build.gradle b/Ghidra/Debug/Debugger-isf/build.gradle diff --git a/Ghidra/Debug/Debugger-isf/build.gradle b/Ghidra/Debug/Debugger-isf/build.gradle
index f6c8464405..396b52d188 100644 index 2db94ed67e..925f394cf0 100644
--- a/Ghidra/Debug/Debugger-isf/build.gradle --- a/Ghidra/Debug/Debugger-isf/build.gradle
+++ b/Ghidra/Debug/Debugger-isf/build.gradle +++ b/Ghidra/Debug/Debugger-isf/build.gradle
@@ -18,11 +18,17 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle" @@ -18,11 +18,17 @@ apply from: "${rootProject.projectDir}/gradle/javaProject.gradle"
@ -32,10 +19,10 @@ index f6c8464405..396b52d188 100644
+} +}
+ +
dependencies { dependencies {
api project(':Framework-AsyncComm')
api project(':ProposedUtils') api project(':ProposedUtils')
}
diff --git a/Ghidra/Debug/Debugger-rmi-trace/build.gradle b/Ghidra/Debug/Debugger-rmi-trace/build.gradle diff --git a/Ghidra/Debug/Debugger-rmi-trace/build.gradle b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
index 8b6589f035..05da5a7a7e 100644 index 4fa3b9a539..2663aeaeb0 100644
--- a/Ghidra/Debug/Debugger-rmi-trace/build.gradle --- a/Ghidra/Debug/Debugger-rmi-trace/build.gradle
+++ b/Ghidra/Debug/Debugger-rmi-trace/build.gradle +++ b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
@@ -19,12 +19,17 @@ apply from: "${rootProject.projectDir}/gradle/helpProject.gradle" @@ -19,12 +19,17 @@ apply from: "${rootProject.projectDir}/gradle/helpProject.gradle"
@ -56,25 +43,27 @@ index 8b6589f035..05da5a7a7e 100644
+} +}
+ +
dependencies { dependencies {
api project(':ProposedUtils')
api project(':Pty') api project(':Pty')
api project(':Debugger') @@ -37,13 +42,10 @@ dependencies {
@@ -44,12 +49,9 @@ task generateProtoPy { }
ext.outdir = file("build/generated/source/proto/main/py")
outputs.dir(outdir) task configureGenerateProtoPy {
inputs.files(src)
- dependsOn(configurations.protocArtifact) - dependsOn(configurations.protocArtifact)
+ dependsOn(protobuf.generateProtoTasks.all()) + dependsOn(protobuf.generateProtoTasks.all())
doLast {
- doLast {
- def exe = configurations.protocArtifact.first() - def exe = configurations.protocArtifact.first()
- if (!isCurrentWindows()) { - if (!isCurrentWindows()) {
- exe.setExecutable(true) - exe.setExecutable(true)
- } - }
+ doLast {
+ def exe = protobuf.tools.protoc.path + def exe = protobuf.tools.protoc.path
exec { generateProtoPy.commandLine exe
commandLine exe, "--python_out=$outdir", "-I$srcdir" generateProtoPy.args "--python_out=${generateProtoPy.outdir}"
args src generateProtoPy.args "--pyi_out=${generateProtoPy.stubsOutdir}"
diff --git a/build.gradle b/build.gradle diff --git a/build.gradle b/build.gradle
index 2d75307a08..aa8f1d7604 100644 index 159eb7dd7b..ef4add1ad8 100644
--- a/build.gradle --- a/build.gradle
+++ b/build.gradle +++ b/build.gradle
@@ -80,6 +80,12 @@ if (flatRepo.isDirectory()) { @@ -80,6 +80,12 @@ if (flatRepo.isDirectory()) {
@ -92,10 +81,10 @@ index 2d75307a08..aa8f1d7604 100644
else { else {
diff --git a/gradle/hasProtobuf.gradle b/gradle/hasProtobuf.gradle diff --git a/gradle/hasProtobuf.gradle b/gradle/hasProtobuf.gradle
deleted file mode 100644 deleted file mode 100644
index 23b4ce74bb..0000000000 index a8c176bcbe..0000000000
--- a/gradle/hasProtobuf.gradle --- a/gradle/hasProtobuf.gradle
+++ /dev/null +++ /dev/null
@@ -1,94 +0,0 @@ @@ -1,98 +0,0 @@
-/* ### -/* ###
- * IP: GHIDRA - * IP: GHIDRA
- * - *
@ -157,7 +146,22 @@ index 23b4ce74bb..0000000000
- } - }
-}*/ -}*/
- -
-task generateProto { -task configureGenerateProto {
- dependsOn(configurations.protocArtifact)
-
- doLast {
- def exe = configurations.protocArtifact.first()
- if (!isCurrentWindows()) {
- exe.setExecutable(true)
- }
- generateProto.commandLine exe, "--java_out=${generateProto.outdir}", "-I${generateProto.srcdir}"
- generateProto.args generateProto.src
- }
-}
-
-// Can't use providers.exec, or else we see no output
-task generateProto(type:Exec) {
- dependsOn(configureGenerateProto)
- ext.srcdir = file("src/main/proto") - ext.srcdir = file("src/main/proto")
- ext.src = fileTree(srcdir) { - ext.src = fileTree(srcdir) {
- include "**/*.proto" - include "**/*.proto"
@ -165,17 +169,6 @@ index 23b4ce74bb..0000000000
- ext.outdir = file("build/generated/source/proto/main/java") - ext.outdir = file("build/generated/source/proto/main/java")
- outputs.dir(outdir) - outputs.dir(outdir)
- inputs.files(src) - inputs.files(src)
- dependsOn(configurations.protocArtifact)
- doLast {
- def exe = configurations.protocArtifact.first()
- if (!isCurrentWindows()) {
- exe.setExecutable(true)
- }
- exec {
- commandLine exe, "--java_out=$outdir", "-I$srcdir"
- args src
- }
- }
-} -}
- -
-tasks.compileJava.dependsOn(tasks.generateProto) -tasks.compileJava.dependsOn(tasks.generateProto)
@ -190,6 +183,3 @@ index 23b4ce74bb..0000000000
- } - }
-} -}
-zipSourceSubproject.dependsOn generateProto -zipSourceSubproject.dependsOn generateProto
--
2.47.0

View File

@ -21,16 +21,17 @@ let
platforms = oldMeta.platforms or ghidra.meta.platforms; platforms = oldMeta.platforms or ghidra.meta.platforms;
}; };
buildGhidraExtension = buildGhidraExtension = lib.extendMkDerivation {
constructDrv = stdenv.mkDerivation;
extendDrvArgs =
finalAttrs:
{ {
pname, pname,
nativeBuildInputs ? [ ], nativeBuildInputs ? [ ],
meta ? { }, meta ? { },
... ...
}@args: }@args:
stdenv.mkDerivation ( {
args
// {
nativeBuildInputs = nativeBuildInputs ++ [ nativeBuildInputs = nativeBuildInputs ++ [
unzip unzip
jdk jdk
@ -58,22 +59,28 @@ let
mkdir -p $out/lib/ghidra/Ghidra/Extensions mkdir -p $out/lib/ghidra/Ghidra/Extensions
unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip 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 runHook postInstall
''; '';
meta = metaCommon meta; meta = metaCommon meta;
} };
); };
buildGhidraScripts = buildGhidraScripts = lib.extendMkDerivation {
constructDrv = stdenv.mkDerivation;
extendDrvArgs =
finalAttrs:
{ {
pname, pname,
meta ? { }, meta ? { },
... ...
}@args: }@args:
stdenv.mkDerivation ( {
args
// {
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
@ -95,8 +102,8 @@ let
''; '';
meta = metaCommon meta; meta = metaCommon meta;
} };
); };
in in
{ {
inherit buildGhidraExtension buildGhidraScripts; inherit buildGhidraExtension buildGhidraScripts;

View File

@ -19,7 +19,7 @@
let let
pname = "ghidra"; pname = "ghidra";
version = "11.3.2"; version = "11.4.2";
isMacArm64 = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64; isMacArm64 = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
@ -29,7 +29,7 @@ let
owner = "NationalSecurityAgency"; owner = "NationalSecurityAgency";
repo = "Ghidra"; repo = "Ghidra";
rev = "Ghidra_${version}_build"; rev = "Ghidra_${version}_build";
hash = "sha256-EvIOC/VIUaEl7eneVzgEt2fhLSP9DaawMAutk4ouFp8="; hash = "sha256-/veSp2WuGOF0cYwUC4QFJD6kaMae5NuKrQ5Au4LjDe8=";
# populate values that require us to use git. By doing this in postFetch we # 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. # can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true; leaveDotGit = true;
@ -251,23 +251,6 @@ stdenv.mkDerivation (finalAttrs: {
; ;
withExtensions = callPackage ./with-extensions.nix { ghidra = finalAttrs.finalPackage; }; withExtensions = callPackage ./with-extensions.nix { ghidra = finalAttrs.finalPackage; };
pythonPackages = rec {
ghidratrace = python3Packages.callPackage ./python/ghidratrace.nix {
ghidra = finalAttrs.finalPackage;
};
ghidragdb = python3Packages.callPackage ./python/ghidragdb.nix {
ghidra = finalAttrs.finalPackage;
inherit ghidratrace;
};
ghidralldb = python3Packages.callPackage ./python/ghidralldb.nix {
ghidra = finalAttrs.finalPackage;
inherit ghidratrace;
};
pyghidra = python3Packages.callPackage ./python/pyghidra.nix {
ghidra = finalAttrs.finalPackage;
};
};
}; };
meta = with lib; { meta = with lib; {
@ -286,6 +269,10 @@ stdenv.mkDerivation (finalAttrs: {
binaryBytecode # deps binaryBytecode # deps
]; ];
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [
roblabla
vringar
];
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64; broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
}; };
}) })

View File

@ -99,11 +99,14 @@
} }
}, },
"https://ftp.postgresql.org": { "https://ftp.postgresql.org": {
"pub/source/v15.10/postgresql-15.10": { "pub/source/v15.13/postgresql-15.13": {
"tar.gz": "sha256-FzNmYFJZqD3BicQyf/TDclSv7WW0+GbL2KXvLqRJ6PM=" "tar.gz": "sha256-r9wisKblvse2VyN1a5DUTqkR5hsvewHE3FUkq4E7TYk="
} }
}, },
"https://github.com/NationalSecurityAgency/ghidra-data/raw/Ghidra_11.3.2": { "https://github.com/NationalSecurityAgency/ghidra-data/raw/Ghidra_11.4.2": {
"Debugger/dbgmodel": {
"tlb": "sha256-jPXzouuBFgqjSQVqXKTCxyaxtumL8wl81BNRRxYzQ8c="
},
"FunctionID/vs2012_x64": { "FunctionID/vs2012_x64": {
"fidb": "sha256-1OmKs/eQuDF5MhhDC7oNiySl+/TaZbDB/6jLDPvrDNw=" "fidb": "sha256-1OmKs/eQuDF5MhhDC7oNiySl+/TaZbDB/6jLDPvrDNw="
}, },
@ -283,6 +286,10 @@
"jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=", "jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
"pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA=" "pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
}, },
"commons-codec#commons-codec/1.18.0": {
"jar": "sha256-ugBfMEzvkqPe3iSjitWsm4r8zw2PdYOdbBM4Y0z39uQ=",
"pom": "sha256-dLkW2ksDhMYZ5t1MGN7+iqQ4f3lSBSU8+0u7L0WM3c4="
},
"commons-collections#commons-collections/3.2.2": { "commons-collections#commons-collections/3.2.2": {
"jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=", "jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
"pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws=" "pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
@ -291,6 +298,10 @@
"jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=", "jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=",
"pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k=" "pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k="
}, },
"commons-io#commons-io/2.19.0": {
"jar": "sha256-gkJokZtLYvn0DwjFQ4HeWZOwePWGZ+My0XNIrgGdcrk=",
"pom": "sha256-VCt6UC7WGVDRuDEStRsWF9NAfjpN9atWqY12Dg+MWVA="
},
"commons-lang#commons-lang/2.6": { "commons-lang#commons-lang/2.6": {
"jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=", "jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=",
"pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE=" "pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE="
@ -332,9 +343,9 @@
"jar": "sha256-/PSSLTj/hRhPHSMoMXu2CCbhTalIq9YG7j1bjGpw3r0=", "jar": "sha256-/PSSLTj/hRhPHSMoMXu2CCbhTalIq9YG7j1bjGpw3r0=",
"pom": "sha256-uIEr4lGsoTl/S2pCO/Tt06KERONFOyIDtTSTNrmVgik=" "pom": "sha256-uIEr4lGsoTl/S2pCO/Tt06KERONFOyIDtTSTNrmVgik="
}, },
"junit#junit/4.12": { "junit#junit/4.13.2": {
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=", "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
}, },
"kr/motd/maven#os-maven-plugin/1.7.0": { "kr/motd/maven#os-maven-plugin/1.7.0": {
"jar": "sha256-lDBTUBpCnlPRxNYhUu7BJfo2Yg4NxmtzkKiVCXz96s4=", "jar": "sha256-lDBTUBpCnlPRxNYhUu7BJfo2Yg4NxmtzkKiVCXz96s4=",
@ -432,6 +443,9 @@
"org/apache#apache/27": { "org/apache#apache/27": {
"pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk=" "pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk="
}, },
"org/apache#apache/33": {
"pom": "sha256-14vYUkxfg4ChkKZSVoZimpXf5RLfIRETg6bYwJI6RBU="
},
"org/apache#apache/7": { "org/apache#apache/7": {
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU=" "pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
}, },
@ -443,9 +457,9 @@
"jar": "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=", "jar": "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=",
"pom": "sha256-JxvWc4Oa9G5zr/lX4pGNS/lvWsT2xs9NW+k/0fEnHE0=" "pom": "sha256-JxvWc4Oa9G5zr/lX4pGNS/lvWsT2xs9NW+k/0fEnHE0="
}, },
"org/apache/commons#commons-compress/1.21": { "org/apache/commons#commons-compress/1.27.1": {
"jar": "sha256-auz9VFlyillWAc+gcljRMZcv/Dm0kutIvdWWV3ovJEo=", "jar": "sha256-KT2A9UtTa3QJXc1+o88KKbv8NAJRkoEzJJX0Qg03DRY=",
"pom": "sha256-Z1uwI8m+7d4yMpSZebl0Kl/qlGKApVobRi1Mp4AQiM0=" "pom": "sha256-34zBqDh9TOhCNjtyCf3G0135djg5/T/KtVig+D+dhBw="
}, },
"org/apache/commons#commons-dbcp2/2.9.0": { "org/apache/commons#commons-dbcp2/2.9.0": {
"jar": "sha256-iHcgkSxcu83/bg4h1QNJN1Vfj/xZc4Hv+Pp38zzm1k4=", "jar": "sha256-iHcgkSxcu83/bg4h1QNJN1Vfj/xZc4Hv+Pp38zzm1k4=",
@ -454,9 +468,9 @@
"org/apache/commons#commons-lang3/3.11": { "org/apache/commons#commons-lang3/3.11": {
"pom": "sha256-mA1mXYP+0EZlE08FeOUHRCoOdQaRBzeEORsKeYhySnU=" "pom": "sha256-mA1mXYP+0EZlE08FeOUHRCoOdQaRBzeEORsKeYhySnU="
}, },
"org/apache/commons#commons-lang3/3.12.0": { "org/apache/commons#commons-lang3/3.17.0": {
"jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=", "jar": "sha256-bucx31yOWil2ocoCO2uzIOqNNTn75kyKHVy3ZRJ8M7Q=",
"pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo=" "pom": "sha256-NRxuSUDpObHzMN9H9g8Tujg9uB7gCBga9UHzoqbSpWw="
}, },
"org/apache/commons#commons-lang3/3.9": { "org/apache/commons#commons-lang3/3.9": {
"pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU=" "pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU="
@ -488,6 +502,18 @@
"org/apache/commons#commons-parent/54": { "org/apache/commons#commons-parent/54": {
"pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M=" "pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M="
}, },
"org/apache/commons#commons-parent/72": {
"pom": "sha256-Q0Xev8dnsa6saKvdcvxn0YtSHUs5A3KhG2P/DFhrIyA="
},
"org/apache/commons#commons-parent/73": {
"pom": "sha256-TtRFYLB/hEhHnf0eg6Qiuk6D5gs25RsocaxQKm1cG+o="
},
"org/apache/commons#commons-parent/79": {
"pom": "sha256-Yo3zAUis08SRz8trc8euS1mJ5VJqsTovQo3qXUrRDXo="
},
"org/apache/commons#commons-parent/81": {
"pom": "sha256-NI1OfBMb5hFMhUpxnOekQwenw5vTZghJd7JP0prQ7bQ="
},
"org/apache/commons#commons-pool2/2.11.1": { "org/apache/commons#commons-pool2/2.11.1": {
"jar": "sha256-6gUF7nUV5YsawOaG5NGl2ffYCOJRphvDcaoFlbmWP4M=", "jar": "sha256-6gUF7nUV5YsawOaG5NGl2ffYCOJRphvDcaoFlbmWP4M=",
"pom": "sha256-wbsCmUpK34loDfepitujPFUnaDAUJy1liFuzA27NSMM=" "pom": "sha256-wbsCmUpK34loDfepitujPFUnaDAUJy1liFuzA27NSMM="
@ -523,17 +549,17 @@
"org/apache/logging/log4j#log4j/2.17.1": { "org/apache/logging/log4j#log4j/2.17.1": {
"pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk=" "pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk="
}, },
"org/bouncycastle#bcpkix-jdk15on/1.69": { "org/bouncycastle#bcpkix-jdk18on/1.80": {
"jar": "sha256-QIN20Xqqh4nnrNBV/kBCiaEfozX9fGinUykEn7fSjtI=", "jar": "sha256-T0umqSYX6hncGD8PpdtJLu5Cb93ioKLWyUd3/9GvZBM=",
"pom": "sha256-WrvkytLCMJR0ZvsgmiJn48xqDTgKajGRWVnTqtm4F2w=" "pom": "sha256-pKEiETRntyjhjyb7DP1X8LGg18SlO4Zxis5wv4uG7Uc="
}, },
"org/bouncycastle#bcprov-jdk15on/1.69": { "org/bouncycastle#bcprov-jdk18on/1.80": {
"jar": "sha256-5Gm9Ofk2mZ8lYAJjEAP/AioilR2p1b2Xicer+pdjopI=", "jar": "sha256-6K0gn4xY0pGjfKl1Dp6frGBZaVbJg+Sd2Cgjgd2LMkk=",
"pom": "sha256-/YHicUSVvOeeauazAp2s0kzyz/NAJB2lgQVYlae6eN4=" "pom": "sha256-oKdcdtkcQh7qVtD2Bi+49j7ff6x+xyT9QgzNytcYHUM="
}, },
"org/bouncycastle#bcutil-jdk15on/1.69": { "org/bouncycastle#bcutil-jdk18on/1.80": {
"jar": "sha256-KeQOJGbQQNgqbw6ZY10LwrujqUJRz3k5zwtpMhyu/Ak=", "jar": "sha256-Iuymh/eVVBH0Vq8z5uqOaPxzzYDLizKqX3qLGCfXxng=",
"pom": "sha256-p2e8fzQtGTKJfso8i6zHAEygOAv6dSnyOpc0VJZcffw=" "pom": "sha256-Qhp95L/rnFs4sfxHxCagh9kIeJVdQQf1t6gusde3R7Y="
}, },
"org/checkerframework#checker-compat-qual/2.5.2": { "org/checkerframework#checker-compat-qual/2.5.2": {
"pom": "sha256-da9ztewybj29yUayH9RoAtXafGEsO/Hlh1N0yY1+pP0=" "pom": "sha256-da9ztewybj29yUayH9RoAtXafGEsO/Hlh1N0yY1+pP0="
@ -547,10 +573,10 @@
"module": "sha256-clinadyqJrmBVNIp2FzHLls2ZrC8tjfS2vFuxJiVZjg=", "module": "sha256-clinadyqJrmBVNIp2FzHLls2ZrC8tjfS2vFuxJiVZjg=",
"pom": "sha256-AjkvvUziGQH5RWFUcrHU1NNZGzqr3wExBfXJLsMstPA=" "pom": "sha256-AjkvvUziGQH5RWFUcrHU1NNZGzqr3wExBfXJLsMstPA="
}, },
"org/checkerframework#checker-qual/3.42.0": { "org/checkerframework#checker-qual/3.49.3": {
"jar": "sha256-zK7dM68LeJTZ8vO2RPTRnkOSjjKQLmGsTRB3eDD1qsc=", "jar": "sha256-Nn7b8v6fYGwf21qLpuHJwnYlmT4f+VTjho3nC8xkFrc=",
"module": "sha256-4PpiK33mPq4RBH726RtMKtDx8OE8uQP/UggKR/V6V0Y=", "module": "sha256-dv9CWNsfoaC8bOeur0coPfEGD9Q3oJvm7zxcMmnqWtM=",
"pom": "sha256-v1/KqycvVMvPG753w72WPIIcmrrSBYcIvwvtPIdUlMo=" "pom": "sha256-i+QBdkYoXZFCx/sibPuARFwXfcfBNjsj2UH6bJuwXc8="
}, },
"org/codehaus#codehaus-parent/3": { "org/codehaus#codehaus-parent/3": {
"pom": "sha256-UOslOs0LbuBI9DLZ/Do7NiZO+z2h/6f7B/bE1LeoyjE=" "pom": "sha256-UOslOs0LbuBI9DLZ/Do7NiZO+z2h/6f7B/bE1LeoyjE="
@ -579,6 +605,10 @@
"jar": "sha256-YwKKfV6V7sjibuBCSxQfh+nalccYTypaSbtD371TsQQ=", "jar": "sha256-YwKKfV6V7sjibuBCSxQfh+nalccYTypaSbtD371TsQQ=",
"pom": "sha256-zMoEy/7Z60gzSM+6aexh9gvdyfPjwJJLZLsZ0cqy4s0=" "pom": "sha256-zMoEy/7Z60gzSM+6aexh9gvdyfPjwJJLZLsZ0cqy4s0="
}, },
"org/commonmark#commonmark-ext-gfm-tables/0.23.0": {
"jar": "sha256-WfO2Gthywhg7guygUn14GspFThF31xmMl5WydH0XC3s=",
"pom": "sha256-x6/bJCGgs9hFDewHWaPrfBHEqZfTlLd8VR3Bgi3S2Uk="
},
"org/commonmark#commonmark-ext-heading-anchor/0.23.0": { "org/commonmark#commonmark-ext-heading-anchor/0.23.0": {
"jar": "sha256-7O27O1jbcgxhNXwb4boTKlweeczr4B8NPZo25VJCDL0=", "jar": "sha256-7O27O1jbcgxhNXwb4boTKlweeczr4B8NPZo25VJCDL0=",
"pom": "sha256-95zHry5Zpgc70UwPNKezU0JDO5FxqhdLYzeHRaVuASw=" "pom": "sha256-95zHry5Zpgc70UwPNKezU0JDO5FxqhdLYzeHRaVuASw="
@ -669,9 +699,17 @@
"jar": "sha256-EhJRcOeVUZum3IAQwHC1PHaq6StIXB43Uw5Uq13QjUM=", "jar": "sha256-EhJRcOeVUZum3IAQwHC1PHaq6StIXB43Uw5Uq13QjUM=",
"pom": "sha256-EMo7z1F48YUH8hCmOtljeJaFM0OtHBKRoBmhFvIWpUg=" "pom": "sha256-EMo7z1F48YUH8hCmOtljeJaFM0OtHBKRoBmhFvIWpUg="
}, },
"org/junit#junit-bom/5.7.1": { "org/junit#junit-bom/5.11.0": {
"module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=", "module": "sha256-9+2+Z/IgQnCMQQq8VHQI5cR29An1ViNqEXkiEnSi7S0=",
"pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q=" "pom": "sha256-5nRZ1IgkJKxjdPQNscj0ouiJRrNAugcsgL6TKivkZE0="
},
"org/junit#junit-bom/5.11.0-M2": {
"module": "sha256-hkd6vPSQ1soFmqmXPLEI0ipQb0nRpVabsyzGy/Q8LM4=",
"pom": "sha256-Sj/8Sk7c/sLLXWGZInBqlAcWF5hXGTn4VN/ac+ThfMg="
},
"org/junit#junit-bom/5.11.4": {
"module": "sha256-qaTye+lOmbnVcBYtJGqA9obSd9XTGutUgQR89R2vRuQ=",
"pom": "sha256-GdS3R7IEgFMltjNFUylvmGViJ3pKwcteWTpeTE9eQRU="
}, },
"org/junit#junit-bom/5.7.2": { "org/junit#junit-bom/5.7.2": {
"module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=", "module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=",
@ -735,9 +773,9 @@
"jar": "sha256-jK3UOsXrbQneBfrsyji5F6BAu5E5x+3rTMgcdAtxMoE=", "jar": "sha256-jK3UOsXrbQneBfrsyji5F6BAu5E5x+3rTMgcdAtxMoE=",
"pom": "sha256-cimwOzCnPukQCActnkVppR2FR/roxQ9SeEGu9MGwuqg=" "pom": "sha256-cimwOzCnPukQCActnkVppR2FR/roxQ9SeEGu9MGwuqg="
}, },
"org/postgresql#postgresql/42.7.3": { "org/postgresql#postgresql/42.7.6": {
"jar": "sha256-omRMv7obqhRf9+jI71gqbu16fsTKeS9/BUEivex1Ymg=", "jar": "sha256-8qHMA1LdXlxvZdut/ye+4Awy5DLGrQMNB0R/ilmDxCo=",
"pom": "sha256-wqy2hFfZlqjkntB3flklW3RlCXZSOVHxAa25QHXhWIU=" "pom": "sha256-SfNzCJO2khPK99foymodjHaf9mhCHVJS3gBSvFVGp8c="
}, },
"org/python#jython-standalone/2.7.4": { "org/python#jython-standalone/2.7.4": {
"jar": "sha256-H7oXae/8yLGfXhBDa8gnShWM6YhVnyV5J8JMc7sTfzw=", "jar": "sha256-H7oXae/8yLGfXhBDa8gnShWM6YhVnyV5J8JMc7sTfzw=",

View File

@ -17,6 +17,8 @@ lib.makeScope newScope (self: {
ghidra-delinker-extension = self.callPackage ./extensions/ghidra-delinker-extension { }; 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 { }; ghidra-golanganalyzerextension = self.callPackage ./extensions/ghidra-golanganalyzerextension { };
ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { }; ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { };

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 buildGhidraExtension (finalAttrs: {
version = "0.5.1";
self = 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 = [
@ -65,9 +65,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 = [
@ -77,6 +77,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 ];
}; };
} })

View File

@ -1,40 +0,0 @@
{
lib,
python,
buildPythonPackage,
ghidra,
setuptools,
psutil,
ghidratrace,
}: buildPythonPackage {
pname = "ghidragdb";
version = "11.3";
pyproject = true;
src = "${ghidra.lib}/lib/ghidra/Ghidra/Debug/Debugger-agent-gdb/pypkg";
postPatch = ''
rm -rf dist
'';
build-system = [
setuptools
];
dependencies = [
ghidratrace
psutil
];
# can't import because gdb is missing
# pythonImportsCheck = [
# "ghidragdb"
# ];
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
description = "Ghidra's Plugin for gdb";
};
}

View File

@ -1,40 +0,0 @@
{
lib,
python,
buildPythonPackage,
ghidra,
setuptools,
psutil,
ghidratrace,
}: buildPythonPackage {
pname = "ghidralldb";
version = "11.3";
pyproject = true;
src = "${ghidra.lib}/lib/ghidra/Ghidra/Debug/Debugger-agent-lldb/pypkg";
postPatch = ''
rm -rf dist
'';
build-system = [
setuptools
];
dependencies = [
ghidratrace
psutil
];
# can't import because lldb is missing
# pythonImportsCheck = [
# "ghidralldb"
# ];
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
description = "Ghidra's Plugin for lldb";
};
}

View File

@ -1,46 +0,0 @@
{
lib,
python,
buildPythonPackage,
pythonRelaxDepsHook,
ghidra,
setuptools,
protobuf,
}: buildPythonPackage {
pname = "ghidratrace";
version = "11.3";
pyproject = true;
src = "${ghidra.lib}/lib/ghidra/Ghidra/Debug/Debugger-rmi-trace/pypkg";
postPatch = ''
rm -rf dist
'';
build-system = [
setuptools
];
dependencies = [
protobuf
];
nativeBuildInputs = [
pythonRelaxDepsHook
];
pythonRelaxDeps = [
"protobuf"
];
pythonImportsCheck = [
"ghidratrace"
];
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
description = "Ghidra's TraceRmi for Python3";
};
}

View File

@ -1,43 +0,0 @@
{
lib,
python,
buildPythonPackage,
ghidra,
setuptools,
jpype1,
}: buildPythonPackage {
pname = "pyghidra";
version = "2.1.0";
pyproject = true;
src = "${ghidra.lib}/lib/ghidra/Ghidra/Features/PyGhidra/pypkg";
# TODO: make a more involved wrapper or patch this package to change the launch system
# TODO: support launching a ghidra-with-extensions package
makeWrapperArgs = [
"--set" "GHIDRA_INSTALL_DIR" "${ghidra.lib}/lib/ghidra"
];
postPatch = ''
rm -rf dist
'';
build-system = [
setuptools
];
dependencies = [
jpype1
];
pythonImportsCheck = [
"pyghidra"
];
meta = (lib.removeAttrs ghidra.meta ["description" "mainProgram"]) // {
description = "Native CPython for Ghidra";
};
}

View File

@ -29,8 +29,10 @@ let
nativeBuildInputs = [ nativeBuildInputs = [
makeBinaryWrapper makeBinaryWrapper
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; ] ++ 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" \ makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
--set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra" --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \ makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \

View File

@ -1,39 +0,0 @@
{
lib,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
}:
buildDotnetModule rec {
pname = "depotdownloader";
version = "3.4.0";
src = fetchFromGitHub {
owner = "SteamRE";
repo = "DepotDownloader";
rev = "DepotDownloader_${version}";
hash = "sha256-zduNWIQi+ItNSh9RfRfY0giIw/tMQIMRh9woUzQ5pJw=";
};
projectFile = "DepotDownloader.sln";
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_9_0;
dotnet-runtime = dotnetCorePackages.runtime_9_0;
passthru.updateScript = ./update.sh;
meta = {
description = "Steam depot downloader utilizing the SteamKit2 library";
changelog = "https://github.com/SteamRE/DepotDownloader/releases/tag/DepotDownloader_${version}";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.babbaj ];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
mainProgram = "DepotDownloader";
};
}

View File

@ -1,72 +0,0 @@
[
{
"pname": "Microsoft.NETCore.Platforms",
"version": "5.0.0",
"hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="
},
{
"pname": "Microsoft.Win32.Registry",
"version": "5.0.0",
"hash": "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="
},
{
"pname": "Microsoft.Windows.CsWin32",
"version": "0.3.183",
"hash": "sha256-bn0rHYoVLRTqiZqkkp6u3PMKtg0NNxA2F++1e/+3Jhw="
},
{
"pname": "Microsoft.Windows.SDK.Win32Docs",
"version": "0.1.42-alpha",
"hash": "sha256-6DvzmNzrGVfWmNJNqooj+Ya+7bAQlyeg7pmyKaUlIws="
},
{
"pname": "Microsoft.Windows.SDK.Win32Metadata",
"version": "61.0.15-preview",
"hash": "sha256-OB60ThIv8e7AMGaRRzJ8dWme5HjN+Q0HoUDquP2ejTg="
},
{
"pname": "Microsoft.Windows.WDK.Win32Metadata",
"version": "0.12.8-experimental",
"hash": "sha256-YaN6JlgnpIooLYu3NdFVHwoqFwZYTeePtekXCfTiLTo="
},
{
"pname": "protobuf-net",
"version": "3.2.52",
"hash": "sha256-phXeroBt5KbHYkApkkMa0mRCVkDY+dtOOXXNY+i50Ek="
},
{
"pname": "protobuf-net.Core",
"version": "3.2.52",
"hash": "sha256-/9Jj26tuSKeYJb9udwew5i5EVvaoeNu/vBCKS0VhSQQ="
},
{
"pname": "QRCoder",
"version": "1.6.0",
"hash": "sha256-2Ev/6d7PH6K4dVYQQHlZ+ZggkCnDtrlaGygs65mDo28="
},
{
"pname": "SteamKit2",
"version": "3.2.0",
"hash": "sha256-hB/36fP9kf+1mIx+hTELUMHe8ZkmSKxOK41ZzOaBa3E="
},
{
"pname": "System.IO.Hashing",
"version": "9.0.4",
"hash": "sha256-rbcQzEncB3VuUZIcsE1tq30suf5rvRE4HkE+0lR/skU="
},
{
"pname": "System.Security.AccessControl",
"version": "5.0.0",
"hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54="
},
{
"pname": "System.Security.Principal.Windows",
"version": "5.0.0",
"hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="
},
{
"pname": "ZstdSharp.Port",
"version": "0.8.5",
"hash": "sha256-+UQFeU64md0LlSf9nMXif6hHnfYEKm+WRyYd0Vo2QvI="
}
]