diff options
author | Tom Dohrmann <erbse.13@gmx.de> | 2022-03-20 16:24:09 +0100 |
---|---|---|
committer | Tom Dohrmann <erbse.13@gmx.de> | 2022-03-20 18:54:27 +0100 |
commit | 2cd15bbbedba8fb1ae2b008331aefe6804d4075c (patch) | |
tree | 57df930c87248760057ac17775d4e0b8b44324eb | |
parent | 7505d91783e4544551f84ac12ffe61032750eb4e (diff) |
gef: init at 2022.01
-rw-r--r-- | pkgs/development/tools/misc/gef/default.nix | 77 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/gef/default.nix b/pkgs/development/tools/misc/gef/default.nix new file mode 100644 index 0000000000000..0352ebc7cf327 --- /dev/null +++ b/pkgs/development/tools/misc/gef/default.nix @@ -0,0 +1,77 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, gdb +, python3 +, file +, ps +, git +, coreutils +}: + +let + pythonPath = with python3.pkgs; makePythonPath [ + keystone-engine + unicorn + capstone + ropper + ]; + +in stdenv.mkDerivation rec { + pname = "gef"; + version = "2022.01"; + + src = fetchFromGitHub { + owner = "hugsy"; + repo = "gef"; + rev = version; + sha256 = "sha256-Ot0OYMbXFGCzJdmDHD+LoZRDShCbYJ+IGzLTcU2Rfd4="; + }; + + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/share/gef + cp gef.py $out/share/gef + makeWrapper ${gdb}/bin/gdb $out/bin/gef \ + --add-flags "-q -x $out/share/gef/gef.py" \ + --set NIX_PYTHONPATH ${pythonPath} \ + --prefix PATH : ${lib.makeBinPath [ python3 file ps ]} + ''; + + checkInputs = [ + gdb + file + ps + git + python3 + python3.pkgs.pytest + python3.pkgs.pytest-xdist + python3.pkgs.keystone-engine + python3.pkgs.unicorn + python3.pkgs.capstone + python3.pkgs.ropper + ]; + checkPhase = '' + # Skip some tests that require network access. + sed -i '/def test_cmd_shellcode_get(self):/i \ \ \ \ @unittest.skip(reason="not available in sandbox")' tests/runtests.py + sed -i '/def test_cmd_shellcode_search(self):/i \ \ \ \ @unittest.skip(reason="not available in sandbox")' tests/runtests.py + + # Patch the path to /bin/ls. + sed -i 's+/bin/ls+${coreutils}/bin/ls+g' tests/runtests.py + + # Run the tests. + make test + ''; + + meta = with lib; { + description = "A modern experience for GDB with advanced debugging features for exploit developers & reverse engineers"; + homepage = "https://github.com/hugsy/gef"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ freax13 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dc128b10112e3..eff1b05810493 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5765,6 +5765,8 @@ with pkgs; gdmap = callPackage ../tools/system/gdmap { }; + gef = callPackage ../development/tools/misc/gef { }; + gelasio = callPackage ../data/fonts/gelasio { }; gemget = callPackage ../tools/networking/gemget {}; |