<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>srdusr</title><link>https://srdusr.com/</link><description>Recent content on srdusr</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 30 Aug 2026 23:11:47 +0200</lastBuildDate><atom:link href="https://srdusr.com/index.xml" rel="self" type="application/rss+xml"/><item><title>typerpunk</title><link>https://srdusr.com/git/typerpunk/</link><pubDate>Sun, 09 Aug 2026 22:09:18 +0200</pubDate><guid>https://srdusr.com/git/typerpunk/</guid><description/></item><item><title>cerberus</title><link>https://srdusr.com/git/cerberus/</link><pubDate>Sun, 09 Aug 2026 22:09:18 +0200</pubDate><guid>https://srdusr.com/git/cerberus/</guid><description/></item><item><title>dotfiles</title><link>https://srdusr.com/git/dotfiles/</link><pubDate>Sun, 09 Aug 2026 22:09:18 +0200</pubDate><guid>https://srdusr.com/git/dotfiles/</guid><description/></item><item><title>About</title><link>https://srdusr.com/about/</link><pubDate>Sun, 09 Aug 2026 22:09:18 +0200</pubDate><guid>https://srdusr.com/about/</guid><description/></item><item><title>Contact</title><link>https://srdusr.com/contact/</link><pubDate>Sun, 09 Aug 2026 22:09:18 +0200</pubDate><guid>https://srdusr.com/contact/</guid><description/></item><item><title>Projects</title><link>https://srdusr.com/projects/</link><pubDate>Sun, 09 Aug 2026 22:09:18 +0200</pubDate><guid>https://srdusr.com/projects/</guid><description/></item><item><title>Defending Yourself With What You Know About Attackers</title><link>https://srdusr.com/blog/personal-digital-security/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/personal-digital-security/</guid><description>&lt;p&gt;The attacks I read about for work are not reserved for interesting targets.
The same credential stuffing, the same phishing, the same stolen device: they
arrive at ordinary people every day, and knowing how they work is only an
advantage if you turn it around and point it at your own life.&lt;/p&gt;
&lt;p&gt;A stolen laptop is what made me start writing any of this down. What follows is
what I actually do, in the order the effort pays back.&lt;/p&gt;</description></item><item><title>Testing Yourself Beats Re-Reading</title><link>https://srdusr.com/blog/testing-yourself-beats-re-reading/</link><pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/testing-yourself-beats-re-reading/</guid><description>&lt;p&gt;Trying to recall something strengthens the memory of it more than reading it
again does. Re-reading notes feels productive because the material feels
familiar, but familiarity is not the same as the ability to produce the answer
under exam conditions. The feeling of fluency while reading is the trap.&lt;/p&gt;
&lt;h2 id="why-it-holds"&gt;Why it holds&lt;/h2&gt;
&lt;p&gt;Memory is strengthened by the effort of retrieval, not by exposure. Each time
you pull a fact out of memory without looking, you make the next retrieval
easier and more durable. Reading provides no such effort; it lets you recognise
the material without ever producing it, and recognition is not what an exam
tests. A past paper done under time is retrieval practice; re-reading the chapter
is not.&lt;/p&gt;</description></item><item><title>Notes on Film</title><link>https://srdusr.com/blog/gallery/notes-on-film/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/gallery/notes-on-film/</guid><description>&lt;p&gt;There&amp;rsquo;s a discipline to a roll of 36 that a full memory card doesn&amp;rsquo;t teach you - you slow down, you actually look before you shoot, and you live with the shots that don&amp;rsquo;t work out instead of just deleting them. It&amp;rsquo;s the same instinct that shows up in fencing, or in debugging something without shortcutting to a rewrite: sit with the problem before reacting to it.&lt;/p&gt;
&lt;p&gt;This is a placeholder entry for longer-form, non-technical work - film photography, books, fencing, whatever else is worth thinking through in public. More of these once there&amp;rsquo;s something real to say.&lt;/p&gt;</description></item><item><title>A Note Is Worth What It Links To</title><link>https://srdusr.com/blog/a-note-is-worth-what-it-links-to/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/a-note-is-worth-what-it-links-to/</guid><description>&lt;p&gt;An isolated note is a fact you have to remember exists in order to find it. A
linked note is reachable from everything near it in meaning. The value of a
knowledge base is not the number of notes; it is the number of useful
connections between them.&lt;/p&gt;
&lt;h2 id="why-it-holds"&gt;Why it holds&lt;/h2&gt;
&lt;p&gt;Retrieval is the whole point of an external memory, and you retrieve by
association, not by recalling a filename. A note linked from three related notes
surfaces whenever you work on any of them. A note linked from nothing surfaces
only if you already remember it, which defeats the reason for writing it down. So
the link, with a sentence saying why the two ideas connect, carries more of the
long-term value than the note body does.&lt;/p&gt;</description></item><item><title>Through the Viewfinder</title><link>https://srdusr.com/blog/gallery/through-the-viewfinder/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/gallery/through-the-viewfinder/</guid><description>&lt;p&gt;Not everything here needs to be about breaking or building systems. Some of it is just paying attention - to a street at the wrong hour, a skyline that only looks right for about four minutes, the kind of light that makes an ordinary corner worth stopping for.&lt;/p&gt;
&lt;p&gt;This is a placeholder entry for that side of things - photography, mostly, and whatever else doesn&amp;rsquo;t fit neatly into a technical writeup. Real frames go here once there&amp;rsquo;s a proper set worth sharing.&lt;/p&gt;</description></item><item><title>En Garde</title><link>https://srdusr.com/blog/gallery/en-garde/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/gallery/en-garde/</guid><description>&lt;p&gt;Fencing gets a mention on the about page and not much else so far - it deserves more than a one-liner. The parallel to this line of work is real: most bouts are won by the person who waited a half-second longer, not the one who swung first.&lt;/p&gt;
&lt;p&gt;Placeholder for now. Photos and notes go here once there&amp;rsquo;s something worth showing from the strip.&lt;/p&gt;</description></item><item><title>25.7 Million Runs at a ClientHello</title><link>https://srdusr.com/blog/writeups/tls-clienthello-nested-tlvs/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/writeups/tls-clienthello-nested-tlvs/</guid><description>&lt;p&gt;Most web traffic is TLS now, which for a passive analyzer means most of the
interesting bytes are gone. One field survives: the Server Name Indication in
the ClientHello. It is sent in cleartext, in every TLS version, before
encryption starts, and it answers the question you usually have - &lt;em&gt;what was this
connection to?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Getting it out means parsing four levels of nested, attacker-supplied length
fields. It is the most structurally complex hand-rolled parser in packeteer,
and the one I trusted least.&lt;/p&gt;</description></item><item><title>Encryption Gives Confidentiality, Not Integrity</title><link>https://srdusr.com/blog/encryption-is-not-integrity/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/encryption-is-not-integrity/</guid><description>&lt;p&gt;Encrypting data hides it. It does not prove the data was not changed. These are
two different properties, and assuming the first provides the second is the root
of a whole class of real vulnerabilities.&lt;/p&gt;
&lt;h2 id="why-it-holds"&gt;Why it holds&lt;/h2&gt;
&lt;p&gt;A cipher maps plaintext to ciphertext so an eavesdropper cannot read it. Nothing
in that mapping detects tampering with the ciphertext. In CBC mode an attacker
can flip bits and, given feedback on whether the result decrypts to valid
padding, recover and forge plaintext without the key. That is the
padding oracle attack, and it exists precisely because the system checked
confidentiality but never integrity.&lt;/p&gt;</description></item><item><title>Home Lab Build Log</title><link>https://srdusr.com/blog/gallery/home-lab-build-log/</link><pubDate>Sun, 22 Feb 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/gallery/home-lab-build-log/</guid><description>&lt;p&gt;The home lab gets referenced elsewhere on this site as infrastructure - this is meant to be the more physical side of it: what the rack actually looks like, what broke, what got rebuilt.&lt;/p&gt;
&lt;p&gt;Nothing to show yet. First real entry goes up once there&amp;rsquo;s a build worth documenting instead of just describing.&lt;/p&gt;</description></item><item><title>Margin Notes</title><link>https://srdusr.com/blog/gallery/margin-notes/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/gallery/margin-notes/</guid><description>&lt;p&gt;A lot of thinking-through-a-problem happens with a pen in hand, not a keyboard. This is where the leftover margin scribbles would go, if any of them were worth scanning in.&lt;/p&gt;
&lt;p&gt;Empty for now.&lt;/p&gt;</description></item><item><title>An OOM in My Own pcapng Reader, Found on the First Fuzz Run</title><link>https://srdusr.com/blog/writeups/pcapng-reader-oom/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/writeups/pcapng-reader-oom/</guid><description>&lt;p&gt;packeteer reads and writes pcapng, so it can open a capture somebody else made.
That sentence is the whole threat model: a capture file is untrusted input, and
the reader is the code that touches it first.&lt;/p&gt;
&lt;p&gt;I had written the reader, tested it, and used it. Then I wired up
libFuzzer harnesses for every hand-rolled decoder in the project, plus the
pcapng reader and the full &lt;code&gt;summarize_packet()&lt;/code&gt; pipeline. The reader harness
found a bug on its first run.&lt;/p&gt;</description></item><item><title>Reading List</title><link>https://srdusr.com/blog/gallery/reading-list/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/gallery/reading-list/</guid><description>&lt;p&gt;Not every hour off the clock goes into a terminal. This was meant to be a running log of what&amp;rsquo;s actually being read - less a review section, more a receipt.&lt;/p&gt;
&lt;p&gt;Nothing logged yet.&lt;/p&gt;</description></item><item><title>Thorough Enumeration Beats Clever Exploitation</title><link>https://srdusr.com/blog/enumeration-beats-exploitation/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/enumeration-beats-exploitation/</guid><description>&lt;p&gt;More machines fall to finding the thing that was already there than to a clever
exploit. When a box is stuck, the fix is almost always to enumerate harder, not
to reach for a more advanced technique. The winning path was usually visible at
hour one and dismissed.&lt;/p&gt;
&lt;h2 id="why-it-holds"&gt;Why it holds&lt;/h2&gt;
&lt;p&gt;An exploit needs a target, and finding the target is enumeration. A service on a
high port, a virtual host that only answers to its name, a comment in the page
source, a readable share: each is a foothold that no exploit skill substitutes
for. Enumeration also compounds. Every credential and hostname found sends you
back to enumerate something new, so the surface grows as you work.&lt;/p&gt;</description></item><item><title>Vulnerabilities Cluster at Trust Boundaries</title><link>https://srdusr.com/blog/trust-boundaries/</link><pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/trust-boundaries/</guid><description>&lt;p&gt;A trust boundary is any point where data crosses from a less-trusted context
into a more-trusted one: user input into a query, a request into a privileged
process, one tenant&amp;rsquo;s data into another&amp;rsquo;s view. Almost every vulnerability class
is a failure to re-establish trust at such a crossing.&lt;/p&gt;
&lt;h2 id="why-it-holds"&gt;Why it holds&lt;/h2&gt;
&lt;p&gt;Injection is untrusted input crossing into an interpreter without being made
safe for it: SQL injection into a database, command injection into a
shell, template injection into a template engine, cross-site scripting into
another user&amp;rsquo;s browser. Authorisation bugs are a principal crossing into data it should
not reach. Even privilege escalation, whether through a SUID binary or a potato attack,
is a low-trust process crossing into a high-trust one. Naming the boundary tells
you what defence is missing: encode for the destination context, or check the
right to cross.&lt;/p&gt;</description></item><item><title>Late Shift</title><link>https://srdusr.com/blog/gallery/late-shift/</link><pubDate>Sat, 08 Nov 2025 00:00:00 +0000</pubDate><guid>https://srdusr.com/blog/gallery/late-shift/</guid><description>&lt;p&gt;There&amp;rsquo;s a specific kind of quiet after midnight that shows up in both this work and in a decent photo - everyone else has stopped paying attention, which is usually when it gets interesting.&lt;/p&gt;
&lt;p&gt;No frames worth keeping yet. This one waits for a proper camera, not a phone held out a car window.&lt;/p&gt;</description></item></channel></rss>