<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ColinFinck.de</title><link>https://colinfinck.de</link><description>Recent posts on ColinFinck.de</description><language>en-us</language><copyright>Copyright © 2003-2025 Colin Finck</copyright><lastBuildDate>Sun, 26 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://colinfinck.de/index.rss" rel="self" type="application/rss+xml"/><item><title>nt-load-order Part 2: More than you ever wanted to know</title><link>https://colinfinck.de/posts/nt-load-order-part-2/</link><pubDate>Sun, 26 Jan 2025 00:00:00 +0000</pubDate><description>Welcome to the second part of my blog series on the Windows driver load order. Good to see that you made it up to here. After the preparations in my last post, we are now finally equipped with all necessary tools to analyze the load order and develop a compatible sorting algorithm …</description></item><item><title>nt-load-order Part 1: WinDbg'ing our way into the Windows bootloader</title><link>https://colinfinck.de/posts/nt-load-order-part-1/</link><pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate><description>There are close to zero reasons to reverse-engineer the Windows driver load order. Which is exactly why I&amp;rsquo;m doing it. And if you are as crazy as me and want to write a Windows bootloader in Rust, you inevitably need to deal with this topic. Likewise, if you want to know what happens under the hood when booting …</description></item><item><title>A Decade After Stuxnet: How Siemens S7 is Still an Attacker's Heaven</title><link>https://colinfinck.de/posts/a-decade-after-stuxnet/</link><pubDate>Thu, 02 May 2024 00:00:00 +0000</pubDate><description>Industrial Control Systems have long evolved from specialized electronics communicating over proprietary bus systems to fully-fledged embedded computers based on commodity Ethernet connections. The Stuxnet computer worm of 2010 demonstrated to the general public that this development makes Industrial Control Systems …</description></item><item><title>A new Windows CE x86 compiler in 2024</title><link>https://colinfinck.de/posts/a-new-windows-ce-x86-compiler-in-2024/</link><pubDate>Tue, 26 Mar 2024 00:00:00 +0000</pubDate><description>At ENLYZE we need to deal with operating systems from the last century on customer machines everyday. No matter whether it&amp;rsquo;s something &amp;ldquo;simple&amp;rdquo; like Windows 2000 running on an operator touch panel (&amp;ldquo;HMI&amp;rdquo;) or something peculiar like QNX 4 controlling a production machine: If they handle …</description></item><item><title>nt-apiset: A Rust parser for Windows API Set Map files</title><link>https://colinfinck.de/posts/nt-apiset-a-rust-parser-for-windows-10-api-set-map-files/</link><pubDate>Fri, 09 Jun 2023 00:00:00 +0000</pubDate><description>The next building block for my bootloader project is ready! nt-apiset is a parser written in Rust for the API Set Map files of Windows 10 and later versions. API Sets are dependencies of PE executables whose names start with “api-” or “ext-”, e.g. api-ms-win-core-sysinfo-l1-1-0 &amp;hellip;</description></item><item><title>nt-string: The missing Windows string types for Rust</title><link>https://colinfinck.de/posts/nt-string-the-missing-windows-string-types-for-rust/</link><pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate><description>This release was not planned. I actually wanted to write a parser for Windows apiset DLLs, but quickly found myself implementing the umpteenth string type to handle Windows UTF-16 characters. After having done that work once for nt-hive and another time for ntfs, it was time to refactor the common parts into a crate …</description></item><item><title>On the hype around the critical Siemens S7-1200/S7-1500 vulnerability CVE-2022-38465</title><link>https://colinfinck.de/posts/on-the-hype-around-the-critical-siemens-s7-1200-1500-vulnerability/</link><pubDate>Fri, 16 Dec 2022 00:00:00 +0000</pubDate><description>Around two months ago, the Team82 research group at Claroty disclosed a critical vulnerability in Siemens current S7-1200/S7-1500 series of PLCs. This is the next issue in a series of recent disclosures on the security of these ubiquitous logic controllers. What&amp;rsquo;s different this time is the whopping CVSS severity …</description></item><item><title>Talking at EuroRust about my Windows Linked List crate</title><link>https://colinfinck.de/posts/talking-at-eurorust-about-my-windows-linked-list-crate/</link><pubDate>Mon, 07 Nov 2022 00:00:00 +0000</pubDate><description>I recently attended the first ever EuroRust in Berlin from 13th to 14th October. I have been eagerly looking for such a dedicated European conference on Rust, but my previous Google searches were all in vain - and always ended up here. Glad that&amp;rsquo;s no longer the case :)
At EuroRust, I had the opportunity to speak …</description></item><item><title>Releasing the S7-Project-Explorer as open-source</title><link>https://colinfinck.de/posts/releasing-the-enlyze-s7-project-explorer-as-open-source/</link><pubDate>Wed, 05 Oct 2022 00:00:00 +0000</pubDate><description>After the ENLYZE PortSniffer in 2020, I&amp;rsquo;m glad to announce that another tool I developed at ENLYZE has just been released as open-source.
The ENLYZE S7-Project-Explorer is a Windows application to explore Siemens STEP 7 projects and export a complete PLC variable list as a CSV table. This solves our recurring …</description></item><item><title>nt-list: Windows Linked Lists in idiomatic Rust</title><link>https://colinfinck.de/posts/nt-list-windows-linked-lists-in-idiomatic-rust/</link><pubDate>Thu, 28 Jul 2022 00:00:00 +0000</pubDate><description>On my quest to develop a ReactOS/Windows bootloader in Rust, I inevitably had to stumble upon the infamous LIST_ENTRY structure used in the LOADER_PARAMETER_BLOCK. This is what Windows, Windows drivers, and components influenced by Windows (e.g. UEFI) have been using for a long time to uniformly handle linked lists …</description></item><item><title>My FOSDEM talk on implementing NTFS in Rust</title><link>https://colinfinck.de/posts/my-fosdem-talk-on-implementing-ntfs-in-rust/</link><pubDate>Mon, 07 Feb 2022 00:00:00 +0000</pubDate><description>FOSDEM 2022 has just ended. Despite being an all-virtual event again, it was another awesome conference with a packed schedule full of interesting talks.
I had the honor of speaking about my recent NTFS Rust filesystem crate and the video is now online:
Slides are available here.
Thanks a lot to all volunteers for …</description></item><item><title>An implementation of the NTFS filesystem in a Rust crate</title><link>https://colinfinck.de/posts/an-implementation-of-the-ntfs-filesystem-in-a-rust-crate/</link><pubDate>Fri, 14 Jan 2022 00:00:00 +0000</pubDate><description>Happy new year everybody! It&amp;rsquo;s finally time to reveal a project I have been working on over several weekends of the past year. It&amp;rsquo;s also the next building block on my mission to write a ReactOS/Windows bootloader in Rust.
ntfs is a Rust library that implements the low-level structures of the NTFS …</description></item><item><title>That time I had to patch the Universal CRT</title><link>https://colinfinck.de/posts/that-time-i-had-to-patch-the-universal-crt/</link><pubDate>Tue, 23 Nov 2021 00:00:00 +0000</pubDate><description>I just finished a blog post where I replaced almost the entire Microsoft build toolchain for our Windows software with open-source alternatives better suiting our needs. Except for the Visual Studio C runtime library, nowadays called Universal CRT (shortened to UCRT or just CRT).
The CRT had been performing without any …</description></item><item><title>Relaunched my website!</title><link>https://colinfinck.de/posts/relaunched-this-website/</link><pubDate>Sun, 21 Nov 2021 00:00:00 +0000</pubDate><description>I finally got the mood to do what was long overdue and recreate my website from the ground up.
People who visited ColinFinck.de within the past decade must have had the impression that I vanished without a trace. Whereas in reality, I had just been extremely busy with ReactOS, Rust, and my daily job at ENLYZE. There …</description></item><item><title>Targeting 25 years of Windows with Visual Studio 2019</title><link>https://colinfinck.de/posts/targeting-25-years-of-windows-with-visual-studio-2019/</link><pubDate>Tue, 19 Oct 2021 00:00:00 +0000</pubDate><description>Our method to &lt;a href="https://colinfinck.de/posts/modern-visual-studio-meets-ancient-windows/">build software compatible down to Windows 2000 using Visual Studio 2017&lt;/a> served us well for several months. And trust me, I had really hoped that Windows 2000 would be as low as we ever had to go. But the world of industrial manufacturing surprises you every day. So at some point, we inevitably stumbled …</description></item><item><title>Modern Visual Studio meets ancient Windows</title><link>https://colinfinck.de/posts/modern-visual-studio-meets-ancient-windows/</link><pubDate>Tue, 05 Oct 2021 00:00:00 +0000</pubDate><description>In my previous &lt;a href="https://colinfinck.de/posts/writing-win32-apps-like-its-2020-part-1/">blog series&lt;/a>, I have shown how to write Win32 applications in 2020 using the amenities that modern C++ brings. Writing an application in 2020 doesn&amp;rsquo;t mean that we have to forget about 2000 though: The unrivaled compatibility of the Win32 API makes it possible to run your modern application even on …</description></item><item><title>nt-hive: A Rust crate for parsing Windows registry hive files</title><link>https://colinfinck.de/posts/nt-hive-a-rust-crate-for-parsing-windows-registry-hive-files/</link><pubDate>Sun, 21 Feb 2021 00:00:00 +0000</pubDate><description>I have embraced the Rust programming language since my unikernel thesis 3 years ago, and at my daily job at ENLYZE I get to use it everyday for implementing parsers for machine protocols. What had been missing so far was a Rust project that combines my passions for Rust and ReactOS.
Aiming to fix this, I&amp;rsquo;m …</description></item><item><title>The ENLYZE PortSniffer - Monitor serial/parallel port traffic on modern Windows</title><link>https://colinfinck.de/posts/the-enlyze-portsniffer-monitor-serial-parallel-port-traffic-on-modern-windows/</link><pubDate>Mon, 19 Oct 2020 00:00:00 +0000</pubDate><description>I&amp;rsquo;m proud to release the first open-source product of ENLYZE today, a driver and tool to monitor serial/parallel port traffic on modern Windows systems (Windows XP and later). You can download it and get the source code from our GitHub page.
Naturally, we would have used the popular Sysinternals Portmon tool for …</description></item><item><title>Writing Win32 apps like it's 2020: A DPI-aware resizable wizard</title><link>https://colinfinck.de/posts/writing-win32-apps-like-its-2020-part-3/</link><pubDate>Thu, 30 Jul 2020 00:00:00 +0000</pubDate><description>User interfaces in 2020 need to consider many more details than those of previous generations. One of the biggest changes of the last decade is certainly the introduction of &lt;em>HiDPI displays&lt;/em>, displays with much higher resolutions together with software using more pixels per GUI element. Win32 with its pixel-based …</description></item><item><title>Writing Win32 apps like it's 2020: Helpers for a modern C++ world</title><link>https://colinfinck.de/posts/writing-win32-apps-like-its-2020-part-2/</link><pubDate>Thu, 30 Jul 2020 00:00:00 +0000</pubDate><description>We are now going to get into the nitty-gritty details of Win32 and how modern C++ can help us here: Pointers that free themselves, Universal C++ containers, String resources without regrets, Mastering the handle mess, Gracefully failing constructors, The only &lt;code>WndProc&lt;/code> you&amp;rsquo;ll ever need, …</description></item></channel></rss>