grap: init at 1.3.1 (#114129)

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: s1341 <s1341@github.com>

s1341 db01e7b2 8d2669cb

Changed files
+53
pkgs
tools
security
top-level
+51
pkgs/tools/security/grap/default.nix
···
+
{ lib, stdenv, fetchFromGitHub, boost, libseccomp, flex, python3Packages, swig4, bison, cmake, python3 }:
+
+
stdenv.mkDerivation rec {
+
pname = "grap";
+
version = "1.3.1";
+
+
src = fetchFromGitHub {
+
owner = "QuoSecGmbH";
+
repo = "grap";
+
rev = "v${version}";
+
sha256 = "1fkdi7adfffxg1k4h6r9i69i3wi93s44c1j4cvr69blxsfh0mcnc";
+
};
+
+
nativeBuildInputs = [
+
bison
+
cmake
+
flex
+
python3
+
];
+
+
buildInputs = [
+
boost.all
+
libseccomp
+
swig4
+
];
+
+
strictDeps = true;
+
+
cmakeFlags = [
+
"-DPYTHON_SITE_DIR=$out/${python3.sitePackages}"
+
"../src"
+
];
+
+
postPatch = ''
+
substituteInPlace src/tools/grap-match/CMakeLists.txt --replace "/usr/local/bin" "$out/bin"
+
substituteInPlace src/tools/grap/CMakeLists.txt --replace "/usr/local/bin" "$out/bin"
+
'';
+
+
meta = with lib; {
+
description = "Define and match graph patterns within binaries";
+
longDescription = ''
+
grap takes patterns and binary files, uses a Casptone-based disassembler to obtain the control flow graphs from the binaries, then matches the patterns against them.
+
+
Patterns are user-defined graphs with instruction conditions ("opcode is xor and arg1 is eax") and repetition conditions (3 identical instructions, basic blocks...).
+
'';
+
homepage = "https://github.com/QuoSecGmbH/grap/";
+
license = licenses.mit;
+
maintainers = [ maintainers.s1341 ];
+
platforms = platforms.linux;
+
};
+
}
+2
pkgs/top-level/all-packages.nix
···
python3 = python39;
+
grap = callPackage ../tools/security/grap { };
+
gravit = callPackage ../applications/science/astronomy/gravit { };
golly = callPackage ../applications/science/misc/golly {