<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>SwatLab</title><description>Security writeups, tool internals, and practical guides.</description><link>https://swatto.co.uk/</link><item><title>Parsing Every Log Format: The Timestamp Problem in LogSleuth</title><link>https://swatto.co.uk/articles/parsing-every-log-format-logsleuth/</link><guid isPermaLink="true">https://swatto.co.uk/articles/parsing-every-log-format-logsleuth/</guid><description>Every application writes logs differently, and timestamps are a disaster. Here&apos;s the 15-heuristic fallback chain LogSleuth uses to parse them, and why it has to exist.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate></item><item><title>Reading the MFT Directly: How DiskSleuth Scans a Drive in Seconds</title><link>https://swatto.co.uk/articles/reading-the-mft-directly-disksleuth/</link><guid isPermaLink="true">https://swatto.co.uk/articles/reading-the-mft-directly-disksleuth/</guid><description>Walking the directory tree is slow. When elevated, DiskSleuth reads the NTFS Master File Table directly — a million files in a few seconds instead of minutes.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate></item><item><title>What&apos;s Actually Holding This File? Two Approaches to Windows File Locks</title><link>https://swatto.co.uk/articles/whats-holding-this-file-windows-locks/</link><guid isPermaLink="true">https://swatto.co.uk/articles/whats-holding-this-file-windows-locks/</guid><description>The &apos;file in use&apos; dialog tells you nothing useful. SMB locks and local process handles are completely different problems — most tools only solve one of them.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Why Event Viewer Is Slow, and How I Replaced It in Rust</title><link>https://swatto.co.uk/articles/replacing-event-viewer-in-rust/</link><guid isPermaLink="true">https://swatto.co.uk/articles/replacing-event-viewer-in-rust/</guid><description>120,000 events, 45 seconds of hang. The Event Log API is fast — Event Viewer just uses it badly. Here&apos;s the fix, and the wevtutil one-liner that works when you can&apos;t install anything.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Building Secure File Encryption with XChaCha20-Poly1305</title><link>https://swatto.co.uk/articles/building-secure-file-encryption/</link><guid isPermaLink="true">https://swatto.co.uk/articles/building-secure-file-encryption/</guid><description>I built SwatCrypt because I didn&apos;t trust myself to bolt crypto onto something else. Here&apos;s what I chose and why — cipher, KDF, and why unsafe code is banned at compile time.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Self-Hosting Security: Wazuh + CrowdSec on a VPS</title><link>https://swatto.co.uk/articles/self-hosting-with-wazuh-and-crowdsec/</link><guid isPermaLink="true">https://swatto.co.uk/articles/self-hosting-with-wazuh-and-crowdsec/</guid><description>Attackers automate their scanning. My setup uses Wazuh for host-level visibility and CrowdSec for crowd-sourced blocking — here&apos;s why they work better together than either alone.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Tauri vs Electron in 2026: What I Actually Found</title><link>https://swatto.co.uk/articles/tauri-vs-electron-2026/</link><guid isPermaLink="true">https://swatto.co.uk/articles/tauri-vs-electron-2026/</guid><description>I&apos;ve shipped several tools with Tauri and maintained Electron apps. The size difference is real, but it&apos;s not the most interesting part.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Why I Chose Rust for AI-Built Desktop Tools</title><link>https://swatto.co.uk/articles/why-rust-for-desktop-tools/</link><guid isPermaLink="true">https://swatto.co.uk/articles/why-rust-for-desktop-tools/</guid><description>AI writes the code, but the language choice still matters. Rust&apos;s compiler guardrails catch whole categories of bug that would otherwise slip through unnoticed.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item></channel></rss>