From 2ed8e7a0f92b738d539b2c9c2ac17fb7a2fb2e13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Fri, 6 Apr 2018 08:21:43 +0100 Subject: [PATCH] pwndbg: init at 2018-04-06 --- .../development/tools/misc/pwndbg/default.nix | 48 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 50 insertions(+) create mode 100644 pkgs/development/tools/misc/pwndbg/default.nix diff --git a/pkgs/development/tools/misc/pwndbg/default.nix b/pkgs/development/tools/misc/pwndbg/default.nix new file mode 100644 index 00000000000..9c6b00cd5be --- /dev/null +++ b/pkgs/development/tools/misc/pwndbg/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, pythonPackages, makeWrapper, gdb }: + +stdenv.mkDerivation rec { + name = "pwndbg-2018-04-06"; + + src = fetchFromGitHub { + owner = "pwndbg"; + repo = "pwndbg"; + rev = "e225ba9f647ab8f7f4871075529c0ec239f43300"; + sha256 = "1s6m93qi3baclgqqii4fnmzjmg0c6ipkscg7xiljaj5z4bs371j4"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + propagatedBuildInputs = with pythonPackages; [ + future + isort + psutil + pycparser + pyelftools + python-ptrace + ROPGadget + six + unicorn + pygments + enum34 + ]; + + installPhase = '' + mkdir -p $out/share/pwndbg + cp -r *.py pwndbg $out/share/pwndbg + makeWrapper ${gdb}/bin/gdb $out/bin/pwndbg \ + --add-flags "-q -x $out/share/pwndbg/gdbinit.py" + ''; + + preFixup = '' + sed -i "/import sys/a import sys; sys.path.insert(0, '$PYTHONPATH'.split(':'))" \ + $out/share/pwndbg/gdbinit.py + ''; + + meta = with stdenv.lib; { + description = "Exploit Development and Reverse Engineering with GDB Made Easy"; + homepage = http://pwndbg.com; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ mic92 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9f6e0755f54..dcc2db72ccd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4437,6 +4437,8 @@ with pkgs; pwnat = callPackage ../tools/networking/pwnat { }; + pwndbg = callPackage ../development/tools/misc/pwndbg { }; + pycangjie = pythonPackages.pycangjie; pydb = callPackage ../development/tools/pydb { };