diff --git a/pkgs/by-name/gh/ghost/package.nix b/pkgs/by-name/gh/ghost/package.nix index 1ee042d1cd63..459194c3816b 100644 --- a/pkgs/by-name/gh/ghost/package.nix +++ b/pkgs/by-name/gh/ghost/package.nix @@ -4,26 +4,25 @@ python3, }: -python3.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication (finalAttrs: { pname = "ghost"; - version = "8.0.0"; + version = "8.0.0-unstable-2025-11-01"; pyproject = true; - disabled = python3.pythonOlder "3.7"; - src = fetchFromGitHub { owner = "EntySec"; repo = "Ghost"; - rev = version; - sha256 = "13p3inw7v55na8438awr692v9vb7zgf5ggxpha9r3m8vfm3sb4iz"; + rev = "bf38c7e62e510caa1229e797ca3276e426235b03"; + hash = "sha256-c1mcx5mG45Rm/oJ+XFCo5uJqcqPQGgZnxRs7OcU8q+0="; }; - build-system = with python3.pkgs; [ - setuptools - ]; + build-system = with python3.pkgs; [ setuptools ]; dependencies = with python3.pkgs; [ adb-shell + badges + colorscript + pex-entysec ]; # Project has no tests @@ -33,9 +32,9 @@ python3.pkgs.buildPythonApplication rec { meta = { description = "Android post-exploitation framework"; - mainProgram = "ghost"; homepage = "https://github.com/EntySec/ghost"; - license = with lib.licenses; [ mit ]; + license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; + mainProgram = "ghost"; }; -} +}) diff --git a/pkgs/development/python-modules/badges/default.nix b/pkgs/development/python-modules/badges/default.nix new file mode 100644 index 000000000000..9b2214ac826d --- /dev/null +++ b/pkgs/development/python-modules/badges/default.nix @@ -0,0 +1,43 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + colorscript, + getch, + prompt-toolkit, +}: + +buildPythonPackage (finalAttrs: { + pname = "badges"; + version = "1.0.0-unstable-2026-01-05"; + pyproject = true; + + src = fetchFromGitHub { + owner = "EntySec"; + repo = "Badges"; + # https://github.com/EntySec/Badges/issues/6 + rev = "5fdc197864ee9488281cd8d9a64170671ec88dba"; + hash = "sha256-oiG2nx3hZqwMDjCUQYFu6SH9C1ocrZrjOIn2hC8gsVQ="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + colorscript + getch + prompt-toolkit + ]; + + pythonImportsCheck = [ "badges" ]; + + # Module has no tests + doCheck = false; + + meta = { + description = "Helpers for terminal output, interactive prompts, structured tables and ASCII world map"; + homepage = "https://github.com/EntySec/Badges"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/colorscript/default.nix b/pkgs/development/python-modules/colorscript/default.nix new file mode 100644 index 000000000000..826e54480b0a --- /dev/null +++ b/pkgs/development/python-modules/colorscript/default.nix @@ -0,0 +1,34 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "colorscript"; + version = "1.0.0-unstable-2024-09-20"; + pyproject = true; + + src = fetchFromGitHub { + owner = "EntySec"; + repo = "ColorScript"; + # https://github.com/EntySec/ColorScript/issues/4 + rev = "b98ec077fd2faa700ac5c6dafa0cdd17f649ffbc"; + hash = "sha256-xiN9wln0HU/gs6+L8QN4rmp72KUCAPWO/l2A7te64L0="; + }; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "colorscript" ]; + + # Module has no tests + doCheck = false; + + meta = { + description = "Module for functionality with text, escape codes, octal and hexadecimal codes, and other data"; + homepage = "https://github.com/EntySec/ColorScript"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/getch/default.nix b/pkgs/development/python-modules/getch/default.nix new file mode 100644 index 000000000000..09bc33523fd1 --- /dev/null +++ b/pkgs/development/python-modules/getch/default.nix @@ -0,0 +1,31 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "getch"; + version = "1.0"; + pyproject = true; + + src = fetchPypi { + inherit (finalAttrs) pname version; + hash = "sha256-psInF8EAUc5luPt73bFxr3BbEXXmlKc76VaZD2CJ2LE="; + }; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "getch" ]; + + # Module has no tests + doCheck = false; + + meta = { + description = "Does single char input, like C getch/getche"; + homepage = "https://pypi.org/project/getch/"; + license = lib.licenses.publicDomain; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/hatasm/default.nix b/pkgs/development/python-modules/hatasm/default.nix new file mode 100644 index 000000000000..105328a91cd4 --- /dev/null +++ b/pkgs/development/python-modules/hatasm/default.nix @@ -0,0 +1,47 @@ +{ + lib, + badges, + buildPythonPackage, + capstone, + fetchFromGitHub, + keystone-engine, + lief, + pyelftools, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "hatasm"; + version = "1.0.0-unstable-2026-01-05"; + pyproject = true; + + src = fetchFromGitHub { + owner = "EntySec"; + repo = "HatAsm"; + # https://github.com/EntySec/HatAsm/issues/2 + rev = "c8ec79e533a2dd489de86cefc168fce576f21f1a"; + hash = "sha256-PqQRe01cZMEOBjkbBqnb9jXcdSQ3LSSJtwwaP0ITgKg="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + badges + capstone + keystone-engine + lief + pyelftools + ]; + + pythonImportsCheck = [ "hatasm" ]; + + # Module has no tests + doCheck = false; + + meta = { + description = "Assembler and disassembler that provides support for all common architectures"; + homepage = "https://github.com/EntySec/HatAsm"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/pex-entysec/default.nix b/pkgs/development/python-modules/pex-entysec/default.nix new file mode 100644 index 000000000000..be99de21a735 --- /dev/null +++ b/pkgs/development/python-modules/pex-entysec/default.nix @@ -0,0 +1,67 @@ +{ + lib, + adb-shell, + alive-progress, + buildPythonPackage, + fetchFromGitHub, + hatasm, + manuf, + netaddr, + netifaces, + paramiko, + pefile, + pyasyncore, + pychromecast, + pydantic, + pyopenssl, + pysnmp, + requests, + scapy, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "pex-entysec"; + version = "1.0.0-unstable-2024-10-13"; + pyproject = true; + + src = fetchFromGitHub { + owner = "EntySec"; + repo = "Pex"; + # https://github.com/EntySec/Pex/issues/11 + rev = "0a776da9afc1a88fcb74fac96648666748b3d965"; + hash = "sha256-37NoQL/BieMoZbaRiIu9QVAO2SEt7QQFPZ+KHzv3dRk="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + adb-shell + alive-progress + hatasm + manuf + netaddr + netifaces + paramiko + pefile + pyasyncore + pychromecast + pydantic + pyopenssl + pysnmp + requests + scapy + ]; + + pythonImportsCheck = [ "pex" ]; + + # Module has no tests + doCheck = false; + + meta = { + description = "Collection of special tools for providing high quality penetration testing using pure python programming language"; + homepage = "https://github.com/EntySec/Pex"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 0577d750f7fa..56376101a6cb 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1750,6 +1750,8 @@ self: super: with self; { badauth = callPackage ../development/python-modules/badauth { }; + badges = callPackage ../development/python-modules/badges { }; + badldap = callPackage ../development/python-modules/badldap { }; badsecrets = callPackage ../development/python-modules/badsecrets { }; @@ -2994,6 +2996,8 @@ self: super: with self; { colormath2 = callPackage ../development/python-modules/colormath2 { }; + colorscript = callPackage ../development/python-modules/colorscript { }; + colorspacious = callPackage ../development/python-modules/colorspacious { }; colorthief = callPackage ../development/python-modules/colorthief { }; @@ -6077,6 +6081,8 @@ self: super: with self; { get-video-properties = callPackage ../development/python-modules/get-video-properties { }; + getch = callPackage ../development/python-modules/getch { }; + getjump = callPackage ../development/python-modules/getjump { }; getkey = callPackage ../development/python-modules/getkey { }; @@ -6753,6 +6759,8 @@ self: super: with self; { hassil = callPackage ../development/python-modules/hassil { }; + hatasm = callPackage ../development/python-modules/hatasm { }; + hatasmota = callPackage ../development/python-modules/hatasmota { }; hatch-autorun = callPackage ../development/python-modules/hatch-autorun { }; @@ -12053,6 +12061,8 @@ self: super: with self; { pex = callPackage ../development/python-modules/pex { }; + pex-entysec = callPackage ../development/python-modules/pex-entysec { }; + pexif = callPackage ../development/python-modules/pexif { }; pexpect = callPackage ../development/python-modules/pexpect { };