diff options
Diffstat (limited to 'haunt')
| -rw-r--r-- | haunt/.gitignore | 1 | ||||
| -rw-r--r-- | haunt/haunt.scm | 6 | ||||
| -rw-r--r-- | haunt/jakob/reader/org-mode-prime.scm | 36 | ||||
| -rw-r--r-- | haunt/jakob/reader/org-mode.scm | 12 | ||||
| -rw-r--r-- | haunt/jakob/utils.scm | 22 | ||||
| -rw-r--r-- | haunt/posts-assets/Lisp Kludge.png (renamed from haunt/static/image/Lisp Kludge.png) | bin | 359511 -> 359511 bytes | |||
| -rw-r--r-- | haunt/posts-assets/MyrddinHeap.svg (renamed from haunt/static/image/MyrddinHeap.svg) | 0 | ||||
| -rw-r--r-- | haunt/posts-assets/bad-behavior-debug-prints.png (renamed from haunt/static/image/bad-behavior-debug-prints.png) | bin | 2108 -> 2108 bytes | |||
| -rw-r--r-- | haunt/posts-assets/bad-behavior-vanilla-hexen-vulnerability.png (renamed from haunt/static/image/bad-behavior-vanilla-hexen-vulnerability.png) | bin | 82603 -> 82603 bytes | |||
| -rw-r--r-- | haunt/posts-assets/dollar-bin-reverse-engineering-firmware-mod.jpg (renamed from haunt/static/image/dollar-bin-reverse-engineering-firmware-mod.jpg) | bin | 89507 -> 89507 bytes | |||
| -rw-r--r-- | haunt/posts-assets/dollar-bin-reverse-engineering-m2.jpg (renamed from haunt/static/image/dollar-bin-reverse-engineering-m2.jpg) | bin | 94065 -> 94065 bytes | |||
| -rw-r--r-- | haunt/posts-assets/dollar-bin-reverse-engineering-mac.jpg (renamed from haunt/static/image/dollar-bin-reverse-engineering-mac.jpg) | bin | 41466 -> 41466 bytes | |||
| -rw-r--r-- | haunt/posts-assets/dollar-bin-reverse-engineering-manual.jpg (renamed from haunt/static/image/dollar-bin-reverse-engineering-manual.jpg) | bin | 81706 -> 81706 bytes | |||
| -rw-r--r-- | haunt/posts-assets/flipper-zero-hello-world.jpg | bin | 0 -> 47620 bytes | |||
| -rw-r--r-- | haunt/posts-assets/forge-1-1.png | bin | 0 -> 76319 bytes | |||
| -rw-r--r-- | haunt/posts-assets/forge-1-2.png | bin | 0 -> 76837 bytes | |||
| -rw-r--r-- | haunt/posts-assets/forge-1-3.png | bin | 0 -> 52219 bytes | |||
| -rw-r--r-- | haunt/posts-assets/forge-1-4.png | bin | 0 -> 53208 bytes | |||
| -rw-r--r-- | haunt/posts-assets/gtkcord4-on-pinephone.png | bin | 0 -> 220103 bytes | |||
| -rw-r--r-- | haunt/posts-assets/kona-1.jpg | bin | 0 -> 82999 bytes | |||
| -rw-r--r-- | haunt/posts-assets/kona-2.jpg | bin | 0 -> 147421 bytes | |||
| -rw-r--r-- | haunt/posts-assets/kona-3.jpg | bin | 0 -> 271865 bytes | |||
| -rw-r--r-- | haunt/posts-assets/kona-4.jpg | bin | 0 -> 292957 bytes | |||
| -rw-r--r-- | haunt/posts-assets/lisp-personality-test.png (renamed from haunt/static/image/lisp-personality-test.png) | bin | 7045 -> 7045 bytes | |||
| -rw-r--r-- | haunt/posts-assets/logo.png | bin | 0 -> 70229 bytes | |||
| -rw-r--r-- | haunt/posts-assets/making-your-own-music-player-analog-vs-digital.png (renamed from haunt/static/image/making-your-own-music-player-analog-vs-digital.png) | bin | 11919 -> 11919 bytes | |||
| -rw-r--r-- | haunt/posts-assets/mitmproxy-initial.png (renamed from haunt/static/image/mitmproxy-initial.png) | bin | 54663 -> 54663 bytes | |||
| -rw-r--r-- | haunt/posts-assets/music-on-zeta.png | bin | 0 -> 61660 bytes | |||
| -rw-r--r-- | haunt/posts-assets/old-webmention-screenshot.png | bin | 0 -> 109830 bytes | |||
| -rw-r--r-- | haunt/posts-assets/openxcom-on-pinephone.png | bin | 0 -> 296489 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-1.jpg | bin | 0 -> 345804 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-2.jpg | bin | 0 -> 423256 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-3.jpg | bin | 0 -> 593380 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-4.jpg | bin | 0 -> 724410 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-5.jpg | bin | 0 -> 320325 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-6.jpg | bin | 0 -> 1031623 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-7.jpg | bin | 0 -> 47011 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-running-emacs.png | bin | 0 -> 205622 bytes | |||
| -rw-r--r-- | haunt/posts-assets/pinephone-running-mpv.png | bin | 0 -> 255017 bytes | |||
| -rw-r--r-- | haunt/posts-assets/ret2emacs-overlay-demo.png (renamed from haunt/static/image/ret2emacs-overlay-demo.png) | bin | 2104 -> 2104 bytes | |||
| -rw-r--r-- | haunt/posts-assets/reverse-engineering-babbys-first-archive-format-basic-parsing.png (renamed from haunt/static/image/reverse-engineering-babbys-first-archive-format-basic-parsing.png) | bin | 15718 -> 15718 bytes | |||
| -rw-r--r-- | haunt/posts-assets/reverse-engineering-babbys-first-archive-format-binary-dump.png (renamed from haunt/static/image/reverse-engineering-babbys-first-archive-format-binary-dump.png) | bin | 61514 -> 61514 bytes | |||
| -rw-r--r-- | haunt/posts-assets/reverse-engineering-babbys-first-archive-format-catching-file-reads.png (renamed from haunt/static/image/reverse-engineering-babbys-first-archive-format-catching-file-reads.png) | bin | 407274 -> 407274 bytes | |||
| -rw-r--r-- | haunt/posts-assets/reverse-engineering-babbys-first-archive-format-xp3-header.png (renamed from haunt/static/image/reverse-engineering-babbys-first-archive-format-xp3-header.png) | bin | 9290 -> 9290 bytes | |||
| -rw-r--r-- | haunt/posts-assets/rsvp-screenshot.png | bin | 0 -> 86931 bytes | |||
| -rw-r--r-- | haunt/posts-assets/sdl-tutorial-part-0x00-finished-window.png (renamed from haunt/static/image/sdl-tutorial-part-0x00-finished-window.png) | bin | 11966 -> 11966 bytes | |||
| -rw-r--r-- | haunt/posts-assets/sdl-tutorial-part-0x00-window.png (renamed from haunt/static/image/sdl-tutorial-part-0x00-window.png) | bin | 9405 -> 9405 bytes | |||
| -rw-r--r-- | haunt/posts-assets/shellbot-propagation.jpg (renamed from haunt/static/image/shellbot-propagation.jpg) | bin | 427743 -> 427743 bytes | |||
| -rw-r--r-- | haunt/posts-assets/sorry-guys-i-have-to-troubleshoot-my-usb-drivers-before-i-can-play-wireshark.png (renamed from haunt/static/image/sorry-guys-i-have-to-troubleshoot-my-usb-drivers-before-i-can-play-wireshark.png) | bin | 261565 -> 261565 bytes | |||
| -rw-r--r-- | haunt/posts-assets/tunes-on-home-screen.png | bin | 0 -> 332347 bytes | |||
| -rw-r--r-- | haunt/posts-assets/tunes-on-pinephone.png | bin | 0 -> 208116 bytes | |||
| -rw-r--r-- | haunt/posts-assets/tunes-on-workstation.png | bin | 0 -> 364407 bytes | |||
| -rw-r--r-- | haunt/posts-assets/umass-ctf-2021-postmortem-1.png (renamed from haunt/static/image/umass-ctf-2021-postmortem-1.png) | bin | 13180 -> 13180 bytes | |||
| -rw-r--r-- | haunt/posts-assets/umass-ctf-2021-postmortem-2.png (renamed from haunt/static/image/umass-ctf-2021-postmortem-2.png) | bin | 32415 -> 32415 bytes | |||
| -rw-r--r-- | haunt/posts-assets/warp-mvp.png | bin | 0 -> 15562 bytes | |||
| -rw-r--r-- | haunt/posts-assets/web-server-traffic.jpg | bin | 0 -> 79557 bytes | |||
| -rw-r--r-- | haunt/posts/bad-behavior.org | 4 | ||||
| -rw-r--r-- | haunt/posts/making-your-own-music-player.org | 2 | ||||
| -rw-r--r-- | haunt/posts/reverse-engineering-babbys-first-archive-format.org | 8 | ||||
| -rw-r--r-- | haunt/posts/sdl-tutorial-part-0x00.org | 4 |
60 files changed, 73 insertions, 22 deletions
diff --git a/haunt/.gitignore b/haunt/.gitignore new file mode 100644 index 0000000..17935b4 --- /dev/null +++ b/haunt/.gitignore @@ -0,0 +1 @@ +.org-mode-reader-cache/ diff --git a/haunt/haunt.scm b/haunt/haunt.scm index 6d2aacb..1d24fe9 100644 --- a/haunt/haunt.scm +++ b/haunt/haunt.scm @@ -25,6 +25,7 @@ (jakob builder htaccess) (jakob builder outbox) (jakob reader html-prime) + (jakob reader org-mode-prime) (jakob theme) (srfi srfi-19) (srfi srfi-26)) @@ -45,7 +46,7 @@ '((author . "Jakob L. Kreuze") (email . "zerodaysfordays@sdf.lonestar.org")) #:make-slug post-slug-v2 - #:readers (list html-reader-prime org-mode-reader sxml-reader) + #:readers (list html-reader-prime org-mode-reader-prime sxml-reader) #:builders (list (atom-feed #:max-entries 1024) (blog) @@ -60,4 +61,5 @@ #:template (lambda (_site title content) (theme #:title title #:content content)) #:prefix "pages/") - (static-directory "static"))) + (static-directory "static") + (static-directory "posts-assets" "blog"))) diff --git a/haunt/jakob/reader/org-mode-prime.scm b/haunt/jakob/reader/org-mode-prime.scm new file mode 100644 index 0000000..118f1a6 --- /dev/null +++ b/haunt/jakob/reader/org-mode-prime.scm @@ -0,0 +1,36 @@ +;;; Copyright © 2019 - 2024 Jakob L. Kreuze <zerodaysfordays@sdf.org> +;;; +;;; This program 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. +;;; +;;; This program 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 this program. If not, see +;;; <http://www.gnu.org/licenses/>. + +;;; Commentary: +;;; +;;; Wrapper around the `org-mode-reader' to apply rewrite rules specific to my +;;; website. +;;; +;;; Code: + +(define-module (jakob reader org-mode-prime) + #:use-module (haunt reader) + #:use-module (jakob reader org-mode) + #:use-module (jakob utils sxml) + #:use-module (srfi srfi-11) + #:export (org-mode-reader-prime)) + +(define org-mode-reader-prime + (make-reader (reader-matcher org-mode-reader) + (lambda args + (let-values (((metadata sxml) (apply (reader-proc org-mode-reader) args))) + (values metadata + (rewrite-absolute-urls-as-relative sxml)))))) diff --git a/haunt/jakob/reader/org-mode.scm b/haunt/jakob/reader/org-mode.scm index 7f064f1..b55dbf3 100644 --- a/haunt/jakob/reader/org-mode.scm +++ b/haunt/jakob/reader/org-mode.scm @@ -49,6 +49,10 @@ (or (getenv "HAUNT_ORG_READER_CACHE_DIR") "./.org-mode-reader-cache/")))) +;; File name of Elisp script to execute before anything else +(define %additional-emacs-preamble + (make-parameter (getenv "HAUNT_ORG_READER_EMACS_PREAMBLE"))) + ;; Additional Org-mode keywords to include in the extracted metadata. (define %additional-keys (make-parameter '("CROSSPOST" "SCRIPTS" "META-TAGS"))) @@ -62,7 +66,13 @@ If `%use-emacsclient' is truthy, evaluate FORM in the current running Emacs daemon. Assumes that FORM does not write to `standard-output'." - (let* (;; We need to explicitly request that Emacs write the result if using + (let* (;; If `HAUNT_ORG_READER_PREAMBLE' is specified, load that. + (form (if (%additional-emacs-preamble) + `(progn + (load-file ,(%additional-emacs-preamble)) + ,form) + form)) + ;; We need to explicitly request that Emacs write the result if using ;; Emacs batch mode (which is how we evaluate forms without ;; `emacsclient'.) (form (if (not (%use-emacsclient)) diff --git a/haunt/jakob/utils.scm b/haunt/jakob/utils.scm index a104510..ad35f4c 100644 --- a/haunt/jakob/utils.scm +++ b/haunt/jakob/utils.scm @@ -19,7 +19,8 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) - #:export (maybe-cons* + #:export (assq-map! + maybe-cons* maybe-list date->string* intersperse @@ -28,6 +29,12 @@ elide-string)) +(define (assq-map! alist key fn) + "Destructively apply FN to KEY in ALIST, if it exists" + (match (assq-ref alist key) + (#f alist) + (val (assq-set! alist key (fn val))))) + (define (maybe-list . args) "Create a list of all ARGS that are neither #f nor unspecified." (remove (lambda (element) @@ -62,16 +69,11 @@ is of an odd length and every second element is DELIM." content))) (define (first-paragraph post) - (let loop ((sxml (post-sxml post)) - (result '())) + (let loop ((sxml (post-sxml post))) (match sxml - (() (remove-footnote-references (reverse result))) - ((or (('p ...) tail ...) (paragraph tail ...)) - (if (and (list? paragraph) (eqv? 'header (car paragraph))) - (loop tail result) ; Ignore front-matter. - (remove-footnote-references (reverse (cons paragraph result))))) - ((head . tail) - (loop tail (cons head result)))))) + (((and ('p content ...) paragraph) . tail) + (remove-footnote-references paragraph)) + ((head . tail) (loop tail))))) (define (description-from-post post) (define (first-elem sxml) diff --git a/haunt/static/image/Lisp Kludge.png b/haunt/posts-assets/Lisp Kludge.png Binary files differindex 9c244b9..9c244b9 100644 --- a/haunt/static/image/Lisp Kludge.png +++ b/haunt/posts-assets/Lisp Kludge.png diff --git a/haunt/static/image/MyrddinHeap.svg b/haunt/posts-assets/MyrddinHeap.svg index b5261bf..b5261bf 100644 --- a/haunt/static/image/MyrddinHeap.svg +++ b/haunt/posts-assets/MyrddinHeap.svg diff --git a/haunt/static/image/bad-behavior-debug-prints.png b/haunt/posts-assets/bad-behavior-debug-prints.png Binary files differindex 538ccec..538ccec 100644 --- a/haunt/static/image/bad-behavior-debug-prints.png +++ b/haunt/posts-assets/bad-behavior-debug-prints.png diff --git a/haunt/static/image/bad-behavior-vanilla-hexen-vulnerability.png b/haunt/posts-assets/bad-behavior-vanilla-hexen-vulnerability.png Binary files differindex 510cf5f..510cf5f 100644 --- a/haunt/static/image/bad-behavior-vanilla-hexen-vulnerability.png +++ b/haunt/posts-assets/bad-behavior-vanilla-hexen-vulnerability.png diff --git a/haunt/static/image/dollar-bin-reverse-engineering-firmware-mod.jpg b/haunt/posts-assets/dollar-bin-reverse-engineering-firmware-mod.jpg Binary files differindex 0b2302e..0b2302e 100644 --- a/haunt/static/image/dollar-bin-reverse-engineering-firmware-mod.jpg +++ b/haunt/posts-assets/dollar-bin-reverse-engineering-firmware-mod.jpg diff --git a/haunt/static/image/dollar-bin-reverse-engineering-m2.jpg b/haunt/posts-assets/dollar-bin-reverse-engineering-m2.jpg Binary files differindex 25aefdb..25aefdb 100644 --- a/haunt/static/image/dollar-bin-reverse-engineering-m2.jpg +++ b/haunt/posts-assets/dollar-bin-reverse-engineering-m2.jpg diff --git a/haunt/static/image/dollar-bin-reverse-engineering-mac.jpg b/haunt/posts-assets/dollar-bin-reverse-engineering-mac.jpg Binary files differindex 2c66f31..2c66f31 100644 --- a/haunt/static/image/dollar-bin-reverse-engineering-mac.jpg +++ b/haunt/posts-assets/dollar-bin-reverse-engineering-mac.jpg diff --git a/haunt/static/image/dollar-bin-reverse-engineering-manual.jpg b/haunt/posts-assets/dollar-bin-reverse-engineering-manual.jpg Binary files differindex 731735a..731735a 100644 --- a/haunt/static/image/dollar-bin-reverse-engineering-manual.jpg +++ b/haunt/posts-assets/dollar-bin-reverse-engineering-manual.jpg diff --git a/haunt/posts-assets/flipper-zero-hello-world.jpg b/haunt/posts-assets/flipper-zero-hello-world.jpg Binary files differnew file mode 100644 index 0000000..c072316 --- /dev/null +++ b/haunt/posts-assets/flipper-zero-hello-world.jpg diff --git a/haunt/posts-assets/forge-1-1.png b/haunt/posts-assets/forge-1-1.png Binary files differnew file mode 100644 index 0000000..0fbe29e --- /dev/null +++ b/haunt/posts-assets/forge-1-1.png diff --git a/haunt/posts-assets/forge-1-2.png b/haunt/posts-assets/forge-1-2.png Binary files differnew file mode 100644 index 0000000..9196000 --- /dev/null +++ b/haunt/posts-assets/forge-1-2.png diff --git a/haunt/posts-assets/forge-1-3.png b/haunt/posts-assets/forge-1-3.png Binary files differnew file mode 100644 index 0000000..634939c --- /dev/null +++ b/haunt/posts-assets/forge-1-3.png diff --git a/haunt/posts-assets/forge-1-4.png b/haunt/posts-assets/forge-1-4.png Binary files differnew file mode 100644 index 0000000..da6832e --- /dev/null +++ b/haunt/posts-assets/forge-1-4.png diff --git a/haunt/posts-assets/gtkcord4-on-pinephone.png b/haunt/posts-assets/gtkcord4-on-pinephone.png Binary files differnew file mode 100644 index 0000000..45cb2b3 --- /dev/null +++ b/haunt/posts-assets/gtkcord4-on-pinephone.png diff --git a/haunt/posts-assets/kona-1.jpg b/haunt/posts-assets/kona-1.jpg Binary files differnew file mode 100644 index 0000000..79d40dc --- /dev/null +++ b/haunt/posts-assets/kona-1.jpg diff --git a/haunt/posts-assets/kona-2.jpg b/haunt/posts-assets/kona-2.jpg Binary files differnew file mode 100644 index 0000000..4ce3d51 --- /dev/null +++ b/haunt/posts-assets/kona-2.jpg diff --git a/haunt/posts-assets/kona-3.jpg b/haunt/posts-assets/kona-3.jpg Binary files differnew file mode 100644 index 0000000..16d2b2c --- /dev/null +++ b/haunt/posts-assets/kona-3.jpg diff --git a/haunt/posts-assets/kona-4.jpg b/haunt/posts-assets/kona-4.jpg Binary files differnew file mode 100644 index 0000000..19e7af9 --- /dev/null +++ b/haunt/posts-assets/kona-4.jpg diff --git a/haunt/static/image/lisp-personality-test.png b/haunt/posts-assets/lisp-personality-test.png Binary files differindex c3a26f3..c3a26f3 100644 --- a/haunt/static/image/lisp-personality-test.png +++ b/haunt/posts-assets/lisp-personality-test.png diff --git a/haunt/posts-assets/logo.png b/haunt/posts-assets/logo.png Binary files differnew file mode 100644 index 0000000..8898c6d --- /dev/null +++ b/haunt/posts-assets/logo.png diff --git a/haunt/static/image/making-your-own-music-player-analog-vs-digital.png b/haunt/posts-assets/making-your-own-music-player-analog-vs-digital.png Binary files differindex 6841598..6841598 100644 --- a/haunt/static/image/making-your-own-music-player-analog-vs-digital.png +++ b/haunt/posts-assets/making-your-own-music-player-analog-vs-digital.png diff --git a/haunt/static/image/mitmproxy-initial.png b/haunt/posts-assets/mitmproxy-initial.png Binary files differindex 3b022e7..3b022e7 100644 --- a/haunt/static/image/mitmproxy-initial.png +++ b/haunt/posts-assets/mitmproxy-initial.png diff --git a/haunt/posts-assets/music-on-zeta.png b/haunt/posts-assets/music-on-zeta.png Binary files differnew file mode 100644 index 0000000..f48d984 --- /dev/null +++ b/haunt/posts-assets/music-on-zeta.png diff --git a/haunt/posts-assets/old-webmention-screenshot.png b/haunt/posts-assets/old-webmention-screenshot.png Binary files differnew file mode 100644 index 0000000..6c4f015 --- /dev/null +++ b/haunt/posts-assets/old-webmention-screenshot.png diff --git a/haunt/posts-assets/openxcom-on-pinephone.png b/haunt/posts-assets/openxcom-on-pinephone.png Binary files differnew file mode 100644 index 0000000..a7e383e --- /dev/null +++ b/haunt/posts-assets/openxcom-on-pinephone.png diff --git a/haunt/posts-assets/pinephone-1.jpg b/haunt/posts-assets/pinephone-1.jpg Binary files differnew file mode 100644 index 0000000..2577260 --- /dev/null +++ b/haunt/posts-assets/pinephone-1.jpg diff --git a/haunt/posts-assets/pinephone-2.jpg b/haunt/posts-assets/pinephone-2.jpg Binary files differnew file mode 100644 index 0000000..524e93d --- /dev/null +++ b/haunt/posts-assets/pinephone-2.jpg diff --git a/haunt/posts-assets/pinephone-3.jpg b/haunt/posts-assets/pinephone-3.jpg Binary files differnew file mode 100644 index 0000000..3a26eb3 --- /dev/null +++ b/haunt/posts-assets/pinephone-3.jpg diff --git a/haunt/posts-assets/pinephone-4.jpg b/haunt/posts-assets/pinephone-4.jpg Binary files differnew file mode 100644 index 0000000..fc7051b --- /dev/null +++ b/haunt/posts-assets/pinephone-4.jpg diff --git a/haunt/posts-assets/pinephone-5.jpg b/haunt/posts-assets/pinephone-5.jpg Binary files differnew file mode 100644 index 0000000..bb8e59b --- /dev/null +++ b/haunt/posts-assets/pinephone-5.jpg diff --git a/haunt/posts-assets/pinephone-6.jpg b/haunt/posts-assets/pinephone-6.jpg Binary files differnew file mode 100644 index 0000000..13cbb00 --- /dev/null +++ b/haunt/posts-assets/pinephone-6.jpg diff --git a/haunt/posts-assets/pinephone-7.jpg b/haunt/posts-assets/pinephone-7.jpg Binary files differnew file mode 100644 index 0000000..8af4519 --- /dev/null +++ b/haunt/posts-assets/pinephone-7.jpg diff --git a/haunt/posts-assets/pinephone-running-emacs.png b/haunt/posts-assets/pinephone-running-emacs.png Binary files differnew file mode 100644 index 0000000..86e7692 --- /dev/null +++ b/haunt/posts-assets/pinephone-running-emacs.png diff --git a/haunt/posts-assets/pinephone-running-mpv.png b/haunt/posts-assets/pinephone-running-mpv.png Binary files differnew file mode 100644 index 0000000..5cb71b5 --- /dev/null +++ b/haunt/posts-assets/pinephone-running-mpv.png diff --git a/haunt/static/image/ret2emacs-overlay-demo.png b/haunt/posts-assets/ret2emacs-overlay-demo.png Binary files differindex 70c6c8e..70c6c8e 100644 --- a/haunt/static/image/ret2emacs-overlay-demo.png +++ b/haunt/posts-assets/ret2emacs-overlay-demo.png diff --git a/haunt/static/image/reverse-engineering-babbys-first-archive-format-basic-parsing.png b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-basic-parsing.png Binary files differindex 0513350..0513350 100644 --- a/haunt/static/image/reverse-engineering-babbys-first-archive-format-basic-parsing.png +++ b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-basic-parsing.png diff --git a/haunt/static/image/reverse-engineering-babbys-first-archive-format-binary-dump.png b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-binary-dump.png Binary files differindex 0a8774c..0a8774c 100644 --- a/haunt/static/image/reverse-engineering-babbys-first-archive-format-binary-dump.png +++ b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-binary-dump.png diff --git a/haunt/static/image/reverse-engineering-babbys-first-archive-format-catching-file-reads.png b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-catching-file-reads.png Binary files differindex 2ce8f62..2ce8f62 100644 --- a/haunt/static/image/reverse-engineering-babbys-first-archive-format-catching-file-reads.png +++ b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-catching-file-reads.png diff --git a/haunt/static/image/reverse-engineering-babbys-first-archive-format-xp3-header.png b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-xp3-header.png Binary files differindex 0fac996..0fac996 100644 --- a/haunt/static/image/reverse-engineering-babbys-first-archive-format-xp3-header.png +++ b/haunt/posts-assets/reverse-engineering-babbys-first-archive-format-xp3-header.png diff --git a/haunt/posts-assets/rsvp-screenshot.png b/haunt/posts-assets/rsvp-screenshot.png Binary files differnew file mode 100644 index 0000000..9e18992 --- /dev/null +++ b/haunt/posts-assets/rsvp-screenshot.png diff --git a/haunt/static/image/sdl-tutorial-part-0x00-finished-window.png b/haunt/posts-assets/sdl-tutorial-part-0x00-finished-window.png Binary files differindex 4e9a146..4e9a146 100644 --- a/haunt/static/image/sdl-tutorial-part-0x00-finished-window.png +++ b/haunt/posts-assets/sdl-tutorial-part-0x00-finished-window.png diff --git a/haunt/static/image/sdl-tutorial-part-0x00-window.png b/haunt/posts-assets/sdl-tutorial-part-0x00-window.png Binary files differindex 0bbe5fc..0bbe5fc 100644 --- a/haunt/static/image/sdl-tutorial-part-0x00-window.png +++ b/haunt/posts-assets/sdl-tutorial-part-0x00-window.png diff --git a/haunt/static/image/shellbot-propagation.jpg b/haunt/posts-assets/shellbot-propagation.jpg Binary files differindex 342364c..342364c 100644 --- a/haunt/static/image/shellbot-propagation.jpg +++ b/haunt/posts-assets/shellbot-propagation.jpg diff --git a/haunt/static/image/sorry-guys-i-have-to-troubleshoot-my-usb-drivers-before-i-can-play-wireshark.png b/haunt/posts-assets/sorry-guys-i-have-to-troubleshoot-my-usb-drivers-before-i-can-play-wireshark.png Binary files differindex 2d993af..2d993af 100644 --- a/haunt/static/image/sorry-guys-i-have-to-troubleshoot-my-usb-drivers-before-i-can-play-wireshark.png +++ b/haunt/posts-assets/sorry-guys-i-have-to-troubleshoot-my-usb-drivers-before-i-can-play-wireshark.png diff --git a/haunt/posts-assets/tunes-on-home-screen.png b/haunt/posts-assets/tunes-on-home-screen.png Binary files differnew file mode 100644 index 0000000..7cd1dc0 --- /dev/null +++ b/haunt/posts-assets/tunes-on-home-screen.png diff --git a/haunt/posts-assets/tunes-on-pinephone.png b/haunt/posts-assets/tunes-on-pinephone.png Binary files differnew file mode 100644 index 0000000..06441a8 --- /dev/null +++ b/haunt/posts-assets/tunes-on-pinephone.png diff --git a/haunt/posts-assets/tunes-on-workstation.png b/haunt/posts-assets/tunes-on-workstation.png Binary files differnew file mode 100644 index 0000000..1501d64 --- /dev/null +++ b/haunt/posts-assets/tunes-on-workstation.png diff --git a/haunt/static/image/umass-ctf-2021-postmortem-1.png b/haunt/posts-assets/umass-ctf-2021-postmortem-1.png Binary files differindex 1bee126..1bee126 100644 --- a/haunt/static/image/umass-ctf-2021-postmortem-1.png +++ b/haunt/posts-assets/umass-ctf-2021-postmortem-1.png diff --git a/haunt/static/image/umass-ctf-2021-postmortem-2.png b/haunt/posts-assets/umass-ctf-2021-postmortem-2.png Binary files differindex 7f12ad1..7f12ad1 100644 --- a/haunt/static/image/umass-ctf-2021-postmortem-2.png +++ b/haunt/posts-assets/umass-ctf-2021-postmortem-2.png diff --git a/haunt/posts-assets/warp-mvp.png b/haunt/posts-assets/warp-mvp.png Binary files differnew file mode 100644 index 0000000..14c7f0b --- /dev/null +++ b/haunt/posts-assets/warp-mvp.png diff --git a/haunt/posts-assets/web-server-traffic.jpg b/haunt/posts-assets/web-server-traffic.jpg Binary files differnew file mode 100644 index 0000000..f24ea09 --- /dev/null +++ b/haunt/posts-assets/web-server-traffic.jpg diff --git a/haunt/posts/bad-behavior.org b/haunt/posts/bad-behavior.org index a5c9dbe..a8658ff 100644 --- a/haunt/posts/bad-behavior.org +++ b/haunt/posts/bad-behavior.org @@ -157,7 +157,7 @@ about in a little bit. Let's jump in and craft a BEHAVIOR lump which calls =PUSHBYTE= a bunch of times. #+CAPTION: A screenshot of my terminal showing an abrupt end to the debug prints I added for inspecting the absolute memory addresses of SStack and VStack. -[[./debug-prints.png]] +[[./bad-behavior-debug-prints.png]] We seem to end prematurely, which is because we hit the stack pointer. We will have to modify our exploit to step over it somehow, which we can do by @@ -185,4 +185,4 @@ disclosing this to the development team, we discovered that vanilla Hexen has this same arbitrary code execution vulnerability. No proof-of-concept yet. #+CAPTION: One of my posts in an internal discussion on the GZDoom forums regarding the same exploit existing in the vanilla Hexen code. -[[./vanilla-hexen-vulnerability.png]] +[[./bad-behavior-vanilla-hexen-vulnerability.png]] diff --git a/haunt/posts/making-your-own-music-player.org b/haunt/posts/making-your-own-music-player.org index cf5cbac..f96d4a5 100644 --- a/haunt/posts/making-your-own-music-player.org +++ b/haunt/posts/making-your-own-music-player.org @@ -26,7 +26,7 @@ instantaneous representation of the signal some number of times a second. The image below does a good job of explaining it, I think. #+CAPTION: Diagram showing the difference between an analog sine wave and a quantization of that wave. -[[./analog-vs-digital.png]] +[[./making-your-own-music-player-analog-vs-digital.png]] The rate at which the signal is sampled or quantized is the *frequency*. 44.1 kHz is typically the standard - meanining that 441,000 samples are taken every diff --git a/haunt/posts/reverse-engineering-babbys-first-archive-format.org b/haunt/posts/reverse-engineering-babbys-first-archive-format.org index 1f69b5a..d817e30 100644 --- a/haunt/posts/reverse-engineering-babbys-first-archive-format.org +++ b/haunt/posts/reverse-engineering-babbys-first-archive-format.org @@ -24,7 +24,7 @@ editor and went at it, with the [[https://github.com/vn-tools/arc_unpacker/blob/ it. #+CAPTION: A hex dump of the XP3 header. -[[./xp3-header.png]] +[[./reverse-engineering-babbys-first-archive-format-xp3-header.png]] The first section of the archive is the header. It begins with an 11-byte "magic number," used by whatever program is opening it as a sanity check. It's @@ -59,7 +59,7 @@ Huffman Coding, so let's use zlib! I proceeded to inflate the archive contents according to the header and dumped it so that I could view it in my hex editor. #+CAPTION: Sections in the hexdump of the decompressed payload with the corresponding constants in the Arc source code. -[[./binary-dump.png]] +[[./reverse-engineering-babbys-first-archive-format-binary-dump.png]] Every entry has a header containing a 32-bit magic number (underlined in red), followed by a 64-bit unsigned integer representing the size of the entry. It's a @@ -80,7 +80,7 @@ a compressed and decompressed size, and what seems to be an MD5 hash of the file. #+CAPTION: A screenshot of my terminal, showing the output of a bare-bones parser for the format. -[[./basic-parsing.png]] +[[./reverse-engineering-babbys-first-archive-format-basic-parsing.png]] Now we run into the problem of the files' contents being encrypted. I began by getting a debugger setup going to reverse engineer the binary. x64dbg isn't my @@ -89,7 +89,7 @@ was really able to get working. Of course, using the debugger alone is a little primitive. We have other tools to make reverse engineering easier. #+CAPTION: A screenshot of procmon alongside x32dbg, logging Windows syscalls that read files. -[[./catching-file-reads.png]] +[[./reverse-engineering-babbys-first-archive-format-catching-file-reads.png]] Enter procmon. It's reminiscent of strace, but it's meant for Windows and has a nice stack trace feature which helps us to locate the code that decrypts the diff --git a/haunt/posts/sdl-tutorial-part-0x00.org b/haunt/posts/sdl-tutorial-part-0x00.org index dab5990..83cee0f 100644 --- a/haunt/posts/sdl-tutorial-part-0x00.org +++ b/haunt/posts/sdl-tutorial-part-0x00.org @@ -173,7 +173,7 @@ your computer can take a short break. Alright. So when we put that in our code it, we get this: #+CAPTION: A screenshot of the window on my system. -[[./window.png]] +[[./sdl-tutorial-part-0x00-window.png]] I'm running i3wm, so it will probably look slightly different for you, but we've finally got a window! It still sucks, though. It doesn't do anything, @@ -278,7 +278,7 @@ int main(int argc, char *argv[]) { Let's run it: #+CAPTION: A screenshot of the completed window on my system. -[[./finished-window.png]] +[[./sdl-tutorial-part-0x00-finished-window.png]] To recap, we learned about: |