A primer on Windows PE files and doing API calls without knowledge of memory layout

This blog post started as a ridiculously long comment on a GitHub issue. It’s long enough that it should be a blog post, as someone on Twitter pointed out to me, so now I’m replicating it here with some tweaks to make it read a bit better in continuous prose. A caveat: I very quickly… Read More A primer on Windows PE files and doing API calls without knowledge of memory layout

Investigating a failure to read DIMM SPD data on Intel Xeon Scalable platforms

Memory DIMMs have a small flash memory chip (EEPROM) on them, containing an important descriptor table called the Serial Presence Detect (SPD). This data tells the system the size, speed, timings, operating voltage, manufacturer, part number, overclocking profiles, and all sorts of other information about each DIMM. The SPD chip is accessed using the SMBus… Read More Investigating a failure to read DIMM SPD data on Intel Xeon Scalable platforms

Fixing picture glitches and freezes on the Logitech BRIO 4K webcam in Windows

At the worst possible moment, my C920 developed a horizontal line of dead pixels. I’m due to run an online event this weekend and I can’t do that without a half-decent webcam. But, with the lockdown in full effect, it seems that everyone has scrambled to buy them, and they’re out of stock everywhere –… Read More Fixing picture glitches and freezes on the Logitech BRIO 4K webcam in Windows

Re-enabling NIC Teaming (LBFO) in Windows 10 & other desktop SKUs, even after Microsoft removed it

Windows Server supports NIC Teaming, also known as Load Balancing/Failover (LBFO), which allows you to bond multiple network interfaces together, for example using 802.3ad (LACP). It used to be possible to use Powershell on Windows 10 to use teaming, even though it wasn’t intended, but in 2016 Microsoft said that the feature was never intended… Read More Re-enabling NIC Teaming (LBFO) in Windows 10 & other desktop SKUs, even after Microsoft removed it

Fixing “can’t give argument to non-function not $.DisableHTTP” in Gitea Wiki pages

I ran into an issue where trying to view a wiki page in Gitea threw an error: template: repo/wiki/view:48:14: executing “repo/wiki/view” at <(not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))>: can’t give argument to non-function not $.DisableHTTP This issue was fixed in Gitea 1.11.4, so you’re probably running 1.11.3 or before. The latest version of… Read More Fixing “can’t give argument to non-function not $.DisableHTTP” in Gitea Wiki pages

Setting up SMB Multi-Channel between FreeNAS (or any BSD/Linux) and Windows for 20Gbps transfers

SMB Multi-Channel is a useful performance feature that distributes SMB traffic over multiple network connections, allowing it to scale across multiple network adapters, as well as multiple CPU cores through the use of receive-side scaling (RSS). It is supported and enabled in Windows 10 by default, and Samba has support for it as of version… Read More Setting up SMB Multi-Channel between FreeNAS (or any BSD/Linux) and Windows for 20Gbps transfers