aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 c4droid <c4droid@foxmail.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages cybersecurity)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix packages)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix build-system cmake)
  #:use-module (guix build-system python)
  #:use-module (gnu packages cpp)
  #:use-module (gnu packages engineering)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python)
  #:use-module (gnu packages python-xyz)
  #:use-module (gnu packages python-crypto)
  #:use-module (gnu packages python-web)
  #:use-module (gnu packages time)
  #:use-module (gnu packages bioinformatics)      ;python-intervaltree
  #:use-module (gnu packages emulators))

(define-public blacksmith
  (package
    (name "blacksmith")
    (version "0.0.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/comsec-group/blacksmith")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
              (modules '((guix build utils)))
              (snippet `(begin
                          (delete-file-recursively "external")
                          (substitute* "CMakeLists.txt"
                            (("add_subdirectory\\(external\\)") "")
                            (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
                             (string-append
                              "find_package(asmjit)\n"
                              "find_package(nlohmann_json)")))))))
    (build-system cmake-build-system)
    (arguments
     `(#:tests? #f                      ;no test-suite
       #:imported-modules
       ((guix build copy-build-system)
        ,@%cmake-build-system-modules)
       #:modules
       (((guix build copy-build-system) #:prefix copy:)
        (guix build cmake-build-system)
        (guix build utils))
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'fix-build
           (lambda _
             (substitute* "CMakeLists.txt"
               ;; Use default C++ standard instead.
               (("cxx_std_17") "")
               ;; This project tries to link argagg library, which doesn't
               ;; exist, as argagg project is a single header file.
               (("argagg") ""))))
         (replace 'install
           (lambda args
             (apply (assoc-ref copy:%standard-phases 'install)
                    #:install-plan
                    '(("." "bin" #:include ("blacksmith"))
                      ("." "lib" #:include-regexp ("\\.a$")))
                    args))))))
    (native-inputs
     (list pkg-config))
    (inputs
     (list argagg asmjit nlohmann-json))
    (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
    (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
    (description
     "Blacksmith is an implementation of Rowhammer fuzzer that crafts novel
non-uniform Rowhammer access patterns based on the concepts of frequency,
phase, and amplitude.  It is able to bypass recent @acronym{TRR, Target Row
Refresh}in-DRAM mitigations effectively and as such can trigger bit flips.")
    (license license:expat)))

(define-public ropgadget
  (package
    (name "ropgadget")
    (version "6.6")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "ROPGadget" version))
       (sha256
        (base32 "08ms7x4af07970ij9899l75sghnxsa7xyx73gkn6gv0l05p1hqfw"))))
    (build-system python-build-system)
    (propagated-inputs
     (list python-capstone))
    (home-page "https://shell-storm.org/project/ROPgadget/")
    (synopsis "Semiautomatic return oriented programming")
    (description
     "This tool lets you search for @acronym{ROP, Return Oriented Programming}
gadgets in binaries.  Some facilities are included for automatically generating
chains of gadgets to execute system calls.")
    (license license:bsd-3)))

(define-public pwntools
  (package
    (name "pwntools")
    (version "4.4.0")
    (source
     (origin
       (method url-fetch)
       (uri (pypi-uri "pwntools" version))
       (sha256
        (base32
         "1qw7j0wwm1878aia08gyw5xljjr26qsbp45w65n4qff672sha5n5"))))
    (build-system python-build-system)
    (arguments
     '(#:tests? #f))                 ;XXX: needs a specific version of unicorn
    (propagated-inputs
     (list capstone
           python-dateutil
           python-intervaltree
           python-mako
           python-packaging
           python-paramiko
           python-psutil
           python-pyelftools
           python-pygments
           python-pyserial
           python-pysocks
           python-requests
           ropgadget
           python-six
           python-sortedcontainers
           unicorn))
    (home-page "https://github.com/Gallopsled/pwntools")
    (synopsis
     "Capture-the-flag (CTF) framework and exploit development library")
    (description
     "Pwntools is a capture-the-flag (CTF) framework and exploit development library.
Written in Python, it is designed for rapid prototyping and development, and
intended to make exploit writing as simple as possible.")
    (license license:expat)))
c'>gnu: lynx: Update to 2.9.1....* gnu/packages/web-browsers.scm (lynx): Update to 2.9.1. Change-Id: I855e1ead2ab04fa129c3a8bc1ee68d158d3a022c Eric Bavier 2024-04-15gnu: telescope: Update to 0.9....* gnu/packages/web-browsers.scm (telescope): Update to 0.9. [inputs]: Replace libevent with libgrapheme. Change-Id: I1eb6567ddc5047d4d36f588086f14f69136588c4 Signed-off-by: Christopher Baines <mail@cbaines.net> cage-dev@twistfold.it 2024-04-09gnu: nyxt: Update to 3.11.6....* gnu/packages/web-browsers.scm (nyxt): Update to 3.11.6. Signed-off-by: Christopher Baines <mail@cbaines.net> Andre A. Gomes 2024-04-05gnu: Add edbrowse....* gnu/packages/web-browsers.scm (edbrowse): New variable. Co-authored-by: Christina O'Donnell <cdo@mutix.org> Signed-off-by: Christopher Baines <mail@cbaines.net> Change-Id: I6f65ab132eaae6e439df363b22868eb52f297e4e B. Wilson 2024-03-20Merge remote-tracking branch 'savannah/master' into gnome-team...Change-Id: Iec8e15b79c6fde516294c2bfcaf8ee3575b1f745 Christopher Baines 2024-03-20gnu: nyxt: Update to 3.11.5....* gnu/packages/web-browsers.scm (nyxt): Update to 3.11.5. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2024-03-17gnu: lagrange: Update to 1.17.6....* gnu/packages/web-browsers.scm (lagrange): Update to 1.17.6. Change-Id: I3c8062027cdc113ed918e7f4f620f112fdc35a75 Nicolas Goaziou 2024-03-16Merge remote-tracking branch 'savannah/master' into gnome-team...Change-Id: I775274c2693536e2efa36c9abca4c54c5c458e26 Christopher Baines 2024-03-14gnu: tinmop: Update to 0.9.9.141421356....* gnu/packages/web-browsers.scm (tinmop): Update to 0.9.9.141421356. Change-Id: Ibf43c33b2581a78d5a4050493049db73f77c896b Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> cage 2024-03-11gnu: nyxt: Update to 3.11.4....* gnu/packages/web-browsers.scm (nyxt): Update to 3.11.4. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2024-02-25Merge branch 'master' into gnome-teamLiliana Marie Prikler 2024-02-21gnu: nyxt: Update to 3.11.3....* gnu/packages/web-browsers.scm (nyxt): Update to 3.11.3. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2024-02-13Merge branch 'master' into gnome-teamLiliana Marie Prikler 2024-02-05gnu: nyxt: Update to 3.11.2....* gnu/packages/web-browsers.scm (nyxt): Update to 3.11.2. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2024-02-03Merge branch 'master' into gnome-teamLiliana Marie Prikler 2024-01-24gnu: nyxt: Update to 3.11.1....* gnu/packages/web-browsers.scm (nyxt): Update to 3.11.1. [inputs]: Remove sbcl-fset and sbcl-mk-string-metrics. Add gst-libav, gst-plugins-bad, gst-plugins-base, gst-plugins-good, gst-plugins-ugly. [arguments]: Update 'configure-tests' phase. [home-page]: Update URL. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Change-Id: If35d6f0153339b311057bea05562fefb215c3f0d Andre A. Gomes 2024-01-14gnu: qutebrowser: Update to 3.1.0....* gnu/packages/web-browsers (qutebrowser): Update to 3.1.0. [inputs]: Use PyQt6, placed before PyQtWebengine. [arguments]: Replace qt5 path with qt6 path and wrap program with QTWEBENGINE_RESOURCES_PATH. [description]: Replace PyQt5 with PyQt6. Signed-off-by: Clément Lassieur <clement@lassieur.org> Herman Rimm 2024-01-14Merge branch 'master' into gnome-teamLiliana Marie Prikler 2024-01-10gnu: nyxt: Update to 3.11.0....* gnu/packages/web-browsers.scm (nyxt): Update to 3.11.0. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2024-01-01Merge branch 'master' into gnome-teamLiliana Marie Prikler 2023-12-25gnu: Adjust to removing ed.scm and nano.scm...This is a follow-up to f6817e71dff7d0d9fdb55db8b85a1d3d04e2bf5a and e11e65a9ad08e18ea2faac3c9f4639a7b189bf76. * gnu/installer.scm, gnu/packages/algebra.scm, gnu/packages/base.scm, gnu/packages/cook.scm, gnu/packages/lisp.scm, gnu/packages/patchutils.scm, gnu/packages/version-control.scm, gnu/packages/web-browsers.scm, gnu/system.scm: Adjust module imports. Change-Id: I25e5519fa003c35a14b81c3dda37b24527858634 Efraim Flashner 2023-12-20Merge branch 'master' into gnome-teamLiliana Marie Prikler 2023-12-18Merge branch 'master' into wip-webkitLiliana Marie Prikler 2023-12-08gnu: Make webkitgtk-next the new webkitgtk....As of version 2.42.0, the WebKit 6.0 typelib is considered stable. With GNOME itself moving to GTK4 as time marches on, we should reflect the fact that this is the preferred Webkit for future applications. * gnu/packages/webkit.scm (webkitgtk-next): Remove variable. Inline logic… (webkitgtk): … here. Move old value … (webkitgtk-for-gtk3): … here. (webkitgtk-with-libsoup2): Inherit from webkitgtk-for-gtk3. * gnu/packages/geo.scm (gnome-maps): Adjust accordingly. * gnu/packages/gnome.scm (gnome-initial-setup, sushi) (cambalache, devhelp, devhelp-with-libsoup2, gnome-online-accounts) (gnome-online-accounts-3.44, evolution-data-server, evolution-data-server-3.44) (lollypop, evolution, gnome-boxes, geary, komikku): Likewise. * gnu/packages/guile-xyz.scm (guile-gi, nomad): Likewise. * gnu/packages/lisp-xyz.scm (sbcl-cl-webkit): Likewise. * gnu/packages/mail.scm (balsa): Likewise. * gnu/packages/mate.scm (atril): Likewise. * gnu/packages/music.scm (ctrlr): Likewise. * gnu/packages/rednotebook.scm (rednotebook): Likewise. * gnu/packages/syndication.scm (gfeeds): Likewise. * gnu/packages/telegram.scm (telegram-desktop): Likewise. * gnu/packages/vnc.scm (remmina): Likewise. * gnu/packages/web-browsers.scm (nyxt): Likewise. Liliana Marie Prikler 2023-12-03Merge branch 'master' into HEAD...Change-Id: I3f5d121162d98ef2ae61a62c4da3b0fd19d864e8 Liliana Marie Prikler 2023-11-19Merge branch 'master' into gnome-team...Change-Id: I62da840b7600f2d3d8541e666d09e2f2a1b7d8c4 Liliana Marie Prikler 2023-11-15gnu: nyxt: Update to 3.9.2....* gnu/packages/web-browsers.scm (nyxt): Update to 3.9.2. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2023-11-04Merge branch 'master' into gnome-team...Change-Id: I88d3789460d1a89917451d80405d89a2824006ac Liliana Marie Prikler 2023-10-23Merge branch 'master' into gnome-team...Change-Id: Ib6f55bebef2fb235fa59fd5442102a3e0ace3191 Liliana Marie Prikler 2023-10-23gnu: Make webkitgtk-next the new webkitgtk....As of version 2.42.0, the WebKit 6.0 typelib is considered stable. With GNOME itself moving to GTK4 as time marches on, we should reflect the fact that this is the preferred Webkit for future applications. * gnu/packages/webkit.scm (webkitgtk-next): Remove variable. Inline logic… (webkitgtk): … here. Move old value … (webkitgtk-for-gtk3): … here. (webkitgtk-with-libsoup2): Inherit from webkitgtk-for-gtk3. * gnu/packages/geo.scm (gnome-maps): Adjust accordingly. * gnu/packages/gnome.scm (gnome-initial-setup, sushi) (cambalache, devhelp, devhelp-with-libsoup2, gnome-online-accounts) (gnome-online-accounts-3.44, evolution-data-server, evolution-data-server-3.44) (lollypop, evolution, gnome-boxes, geary, komikku): Likewise. * gnu/packages/guile-xyz.scm (guile-gi, nomad): Likewise. * gnu/packages/lisp-xyz.scm (sbcl-cl-webkit): Likewise. * gnu/packages/mail.scm (balsa): Likewise. * gnu/packages/mate.scm (atril): Likewise. * gnu/packages/music.scm (ctrlr): Likewise. * gnu/packages/rednotebook.scm (rednotebook): Likewise. * gnu/packages/syndication.scm (gfeeds): Likewise. * gnu/packages/telegram.scm (telegram-desktop): Likewise. * gnu/packages/vnc.scm (remmina): Likewise. * gnu/packages/web-browsers.scm (nyxt): Likewise. Liliana Marie Prikler 2023-09-15Merge branch 'master' into gnome-team.Liliana Marie Prikler 2023-09-13gnu: nyxt: Update to 3.7.0....* gnu/packages/web-browsers.scm (nyxt): Update to 3.7.0. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2023-09-07Merge branch 'master' into gnome-teamLiliana Marie Prikler 2023-09-06gnu: gcr: Update to 4.0.0....* gnu/packages/gnome.scm (gcr): Update to 4.0.0. (gcr-3): New variable for current version. (libgdata)[propagated-inputs]: Replace gcr with gcr-3. (gnome-keyring)[inputs]: Likewise. (seahorse)[inputs]: Likewise. (gnome-settings-daemon)[inputs]: Likewise. (gvfs)[inputs]: Likewise. (epiphany)[inputs]: Likewise. (gexiv2)[inputs]: Likewise. (shotwell)[inputs]: Likewise. (gnome-online-accounts)[inputs]: Likewise. (evolution-data-server)[inputs]: Likewise. (network-manager-openconnect)[inputs]: Likewise. (network-manager-applet)[inputs]: Likewise. (gnome-shell)[inputs]: Likewise. (evolution)[inputs]: Likewise. (geary)[inputs]: Likewise. * gnu/packages/gnome-xyz.scm (gpaste)[native-inputs]: Likewise. * gnu/packages/gnupg.scm (pinentry-gnome3)[inputs]: Likewise. * gnu/packages/suckless.scm (surf)[inputs]: Likewise. * gnu/packages/web-browsers.scm (midori)[inputs]: Likewise. Liliana Marie Prikler 2023-08-18gnu: nyxt: Update to 3.6.0....* gnu/packages/web-browsers.scm (nyxt): Update to 3.6.0. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Andre A. Gomes 2023-08-13gnu: lagrange: Update to 1.16.7....* gnu/packages/web-browsers.scm (lagrange): Update to 1.16.7. Tobias Geerinckx-Rice