Round 295: Nmap ext, Masscan ext, Zmap ext, Netcat ext, Socat ext (20 commands)

ober

b4448927ae71f3fa57e5ea6c4fbbd8a1f034141c

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 23adc6a..3b2a484 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 295 — Nmap ext, Masscan ext, Zmap ext, Netcat ext, Socat ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| nmap-scan | :orange_circle: | Nmap port scan |
+| nmap-service | :orange_circle: | Nmap service detection |
+| nmap-os | :orange_circle: | Nmap OS detection |
+| nmap-vuln | :orange_circle: | Nmap vulnerability scan |
+| masscan-scan | :orange_circle: | Masscan scan |
+| masscan-rate | :orange_circle: | Set Masscan rate |
+| masscan-ports | :orange_circle: | Set Masscan ports |
+| masscan-output | :orange_circle: | Set Masscan output |
+| zmap-scan | :orange_circle: | Zmap scan |
+| zmap-probe | :orange_circle: | Set Zmap probe |
+| zmap-output | :orange_circle: | Set Zmap output |
+| zmap-bandwidth | :orange_circle: | Set Zmap bandwidth |
+| netcat-listen | :orange_circle: | Netcat listen |
+| netcat-connect | :orange_circle: | Netcat connect |
+| netcat-scan | :orange_circle: | Netcat port scan |
+| netcat-transfer | :orange_circle: | Netcat file transfer |
+| socat-listen | :orange_circle: | Socat listen |
+| socat-connect | :orange_circle: | Socat connect |
+| socat-proxy | :orange_circle: | Socat proxy |
+| socat-relay | :orange_circle: | Socat relay |
+
 ### Round 294 — OpenVPN ext, StrongSwan ext, IPsec ext, PPTP ext, L2TP ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 1c3123a..30575fb 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -22639,4 +22639,62 @@
 
 (def (cmd-l2tp-session-list app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "L2TP: listing sessions")))
\ No newline at end of file
+    (echo-message! echo "L2TP: listing sessions")))
+
+;;; Round 295 — Zmap ext, Netcat ext, Socat ext (batch 2)
+
+(def (cmd-zmap-output app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Output file: "
+      (lambda (file)
+        (echo-message! echo (str "Zmap: output to " file))))))
+
+(def (cmd-zmap-bandwidth app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Bandwidth: "
+      (lambda (bw)
+        (echo-message! echo (str "Zmap: bandwidth " bw))))))
+
+(def (cmd-netcat-listen app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Port: "
+      (lambda (port)
+        (echo-message! echo (str "Netcat: listening on " port))))))
+
+(def (cmd-netcat-connect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Host:port: "
+      (lambda (hp)
+        (echo-message! echo (str "Netcat: connecting to " hp))))))
+
+(def (cmd-netcat-scan app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Host: "
+      (lambda (host)
+        (echo-message! echo (str "Netcat: port scanning " host))))))
+
+(def (cmd-netcat-transfer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "File: "
+      (lambda (file)
+        (echo-message! echo (str "Netcat: transferring " file))))))
+
+(def (cmd-socat-listen app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Address: "
+      (lambda (addr)
+        (echo-message! echo (str "Socat: listening on " addr))))))
+
+(def (cmd-socat-connect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Address: "
+      (lambda (addr)
+        (echo-message! echo (str "Socat: connecting to " addr))))))
+
+(def (cmd-socat-proxy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Socat: starting proxy")))
+
+(def (cmd-socat-relay app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Socat: starting relay")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index feb0c80..f38cb82 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -23334,3 +23334,65 @@
       (lambda (conn)
         (echo-message! echo (str "IPsec: bringing up " conn))))))
 
+;;; Round 295 — Nmap ext, Masscan ext, Zmap ext (batch 1)
+
+(def (cmd-nmap-scan app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Nmap: scanning " target))))))
+
+(def (cmd-nmap-service app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Nmap: service scan " target))))))
+
+(def (cmd-nmap-os app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Nmap: OS detection " target))))))
+
+(def (cmd-nmap-vuln app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Nmap: vuln scan " target))))))
+
+(def (cmd-masscan-scan app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target range: "
+      (lambda (range)
+        (echo-message! echo (str "Masscan: scanning " range))))))
+
+(def (cmd-masscan-rate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Rate (pps): "
+      (lambda (rate)
+        (echo-message! echo (str "Masscan: rate " rate))))))
+
+(def (cmd-masscan-ports app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Ports: "
+      (lambda (ports)
+        (echo-message! echo (str "Masscan: ports " ports))))))
+
+(def (cmd-masscan-output app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Output file: "
+      (lambda (file)
+        (echo-message! echo (str "Masscan: output to " file))))))
+
+(def (cmd-zmap-scan app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target: "
+      (lambda (target)
+        (echo-message! echo (str "Zmap: scanning " target))))))
+
+(def (cmd-zmap-probe app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Probe module: "
+      (lambda (probe)
+        (echo-message! echo (str "Zmap: probe " probe))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 1a8875e..e4a27e9 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7612,4 +7612,25 @@
   (register-command! 'l2tp-status cmd-l2tp-status)
   (register-command! 'l2tp-tunnel-list cmd-l2tp-tunnel-list)
   (register-command! 'l2tp-session-list cmd-l2tp-session-list)
+  ;; Round 295
+  (register-command! 'nmap-scan cmd-nmap-scan)
+  (register-command! 'nmap-service cmd-nmap-service)
+  (register-command! 'nmap-os cmd-nmap-os)
+  (register-command! 'nmap-vuln cmd-nmap-vuln)
+  (register-command! 'masscan-scan cmd-masscan-scan)
+  (register-command! 'masscan-rate cmd-masscan-rate)
+  (register-command! 'masscan-ports cmd-masscan-ports)
+  (register-command! 'masscan-output cmd-masscan-output)
+  (register-command! 'zmap-scan cmd-zmap-scan)
+  (register-command! 'zmap-probe cmd-zmap-probe)
+  (register-command! 'zmap-output cmd-zmap-output)
+  (register-command! 'zmap-bandwidth cmd-zmap-bandwidth)
+  (register-command! 'netcat-listen cmd-netcat-listen)
+  (register-command! 'netcat-connect cmd-netcat-connect)
+  (register-command! 'netcat-scan cmd-netcat-scan)
+  (register-command! 'netcat-transfer cmd-netcat-transfer)
+  (register-command! 'socat-listen cmd-socat-listen)
+  (register-command! 'socat-connect cmd-socat-connect)
+  (register-command! 'socat-proxy cmd-socat-proxy)
+  (register-command! 'socat-relay cmd-socat-relay)
 )