diff --git a/pkgs/development/python-modules/frida-python/default.nix b/pkgs/development/python-modules/frida-python/default.nix new file mode 100644 index 000000000000..11be528b4055 --- /dev/null +++ b/pkgs/development/python-modules/frida-python/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl, fetchPypi, buildPythonPackage, typing-extensions }: +let + version = "16.0.19"; + devkit = fetchurl { + url = "https://github.com/frida/frida/releases/download/${version}/frida-core-devkit-${version}-linux-x86_64.tar.xz"; + hash = "sha256-yNXNqv8eCbpdQKFShpAh6rUCEuItrOSNNLOjESimPdk="; + }; +in buildPythonPackage rec { + pname = "frida-python"; + inherit version; + + src = fetchPypi { + pname = "frida"; + inherit version; + hash = "sha256-rikIjjn9wA8VL/St/2JJTcueimn+q/URbt9lw/+nalY="; + }; + + postPatch = '' + mkdir assets + pushd assets + tar xvf ${devkit} + export FRIDA_CORE_DEVKIT=$PWD + popd + ''; + + propagatedBuildInputs = [ typing-extensions ]; + + pythonImportsCheck = [ "frida" ]; + + passthru = { inherit devkit; }; + + meta = { + description = "Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers (Python bindings)"; + homepage = "https://www.frida.re"; + license = lib.licenses.wxWindows; + maintainers = with lib.maintainers; [ s1341 ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/tools/security/frida-tools/default.nix b/pkgs/tools/security/frida-tools/default.nix new file mode 100644 index 000000000000..dc25d3c23532 --- /dev/null +++ b/pkgs/tools/security/frida-tools/default.nix @@ -0,0 +1,25 @@ +{ lib, python3 }: + +python3.pkgs.buildPythonApplication rec { + pname = "frida-tools"; + version = "12.1.2"; + + src = python3.pkgs.fetchPypi { + inherit pname version; + hash = "sha256-9SlDyp1fLOzLqu6sxVqY2jwEzQjrnbzfQXIRoyviPJY="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + pygments + prompt_toolkit + colorama + frida-python + ]; + + meta = { + description = "Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers (client tools)"; + homepage = "https://www.frida.re/"; + maintainers = with lib.maintainers; [ s1341 ]; + license = lib.licenses.wxWindows; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 420550e60c8b..070397856dc6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -581,6 +581,8 @@ with pkgs; frece = callPackage ../development/tools/frece { }; + frida-tools = callPackage ../tools/security/frida-tools { }; + frink = callPackage ../development/tools/frink { }; frugal = callPackage ../development/tools/frugal { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e3a118624029..c394e42aada2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3845,6 +3845,8 @@ self: super: with self; { freezegun = callPackage ../development/python-modules/freezegun { }; + frida-python = callPackage ../development/python-modules/frida-python { }; + frigidaire = callPackage ../development/python-modules/frigidaire { }; frilouz = callPackage ../development/python-modules/frilouz { };