Simon :donor:
staustellsimon.infosec.exchange.ap.brid.gy
Simon :donor:
@staustellsimon.infosec.exchange.ap.brid.gy
Simon in St Austell • UK0051 & UK00C6 on #UKMeteorNetwork • Solar/storage/EV an all that eco stuff • planes/trains/cars/computers • RPi addict • […]

🌉 bridged from https://infosec.exchange/@staustellsimon on the fediverse by https://fed.brid.gy/
Wow! #curling #winterolympics well done #teamgb women!
February 18, 2026 at 10:49 AM
Reposted by Simon :donor:
ai, didn't read.
brilliant.

#artificialintelligence #AI
February 12, 2026 at 11:46 AM
The #bbc have inadvertently inverted a new #olympic sport of trying to keep up with the constant swapping of channels to keep up with coverage 🙄 #winterolympics
February 12, 2026 at 5:54 PM
Yey! #bingo episode of #bluey on #cbeebies today
February 10, 2026 at 7:31 AM
WTF #bbc #olympics coverage, tune in to BBC1 at 17:05 for the curling, only for it to move to BBC2 10 mins later?!? And then we miss a few minutes coverage too. They do this all the time, same with Wimbledon too, infuriating
February 9, 2026 at 5:18 PM
Well this isn’t something I had ever expected to read! #winterolympics

How penis injections became a Winter Olympic talking point https://www.bbc.co.uk/sport/articles/czej70jyg4eo
Ski jumping: Wada responds to penis injection claims
The World Anti-Doping Agency could investigate if evidence emerges that male ski jumpers are injecting their penises in a bid to improve sporting performance.
www.bbc.co.uk
February 5, 2026 at 7:31 PM
Wow #heligan #lostgardens #cornwall are already selling tickets for their Night Gardens this November! 😳
February 5, 2026 at 7:27 AM
Reposted by Simon :donor:
Defeating a 40-year-old copy protection dongle

https://dmitrybrant.com/2026/02/01/defeating-a-40-year-old-copy-protection-dongle

<- Dmitry Bryant, who successfully modernised the Linux kernel floppy-tape driver, now turns his eye to DOS dongles...
Defeating a 40-year-old copy protection dongle
That’s right — this little device is what stood between me and the ability to run an _even older_ piece of software that I recently unearthed during an expedition of software archaeology. For a bit more background, I was recently involved in helping a friend’s accounting firm to move away from using an _extremely_ legacy software package that they had locked themselves into using for the last four decades. This software was built using a programming language called RPG (“Report Program Generator”), which is older than COBOL (!), and was used with IBM’s midrange computers such as the System/3, System/32, and all the way up to the AS/400. Apparently, RPG was subsequently ported to MS-DOS, so that the same software tools built with RPG could run on personal computers, which is how we ended up here. This accounting firm was actually using a Windows 98 computer (yep, in 2026), and running the RPG software inside a DOS console window. And it turned out that, in order to run this software, it requires a special hardware copy-protection dongle to be attached to the computer’s parallel port! This was a relatively common practice in those days, particularly with “enterprise” software vendors who wanted to protect their very important™ software from unauthorized use. Sadly, most of the text and markings on the dongle’s label has been worn or scratched off, but we can make out several clues: * The words “Stamford, CT”, and what’s very likely the logo of a company called “Software Security Inc”. The only evidence for the existence of this company is this record of them exhibiting their wares at SIGGRAPH conferences in the early 1990s, as well as several patents issued to them, relating to software protection. * A word that seems to say “RUNTIME”, which will become clear in a bit. My first course of action was to take a disk image of the Windows 98 PC that was running this software, and get it running in an emulator, so that we could see what the software actually does, and perhaps export the data from this software into a more modern format, to be used with modern accounting tools. But of course all of this requires the hardware dongle; none of the accounting tools seem to work without it plugged in. Before doing anything, I looked through the disk image for any additional interesting clues, and found plenty of fascinating (and archaeologically significant?) stuff: * We’ve got a compiler for the RPG II language (excellent!), made by a company called Software West Inc. * Even better, there are _two versions_ of the RPG II compiler, released on various dates in the 1990s by Software West. * We’ve got the complete source code of the accounting software, written in RPG. It looks like the full accounting package consists of numerous RPG modules, with a gnarly combination of DOS batch files for orchestrating them, all set up as a “menu” system for the user to navigate using number combinations. Clearly the author of this accounting system was originally an IBM mainframe programmer, and insisted on bringing those skills over to DOS, with mixed results. I began by playing around with the RPG compiler in isolation, and I learned very quickly that it’s the RPG compiler itself that requires the hardware dongle, and then the compiler automatically injects the same copy-protection logic into any executables it generates. This explains the text that seems to say “RUNTIME” on the dongle. The compiler consists of a few executable files, notably `RPGC.EXE`, which is the compiler, and `SEU.EXE`, which is a source editor (“Source Entry Utility”). Here’s what we get when we launch SEU without the dongle, after a couple of seconds: A bit rude, but this gives us an important clue: this program must be trying to communicate over the parallel port over the course of a few seconds (which could give us an opportunity to pause it for debugging, and see what it’s doing during that time), and then exits with a message (which we can now find in a disassembly of the program, and trace how it gets there). A great tool for disassembling executables of this vintage is Reko. It understands 16-bit real mode executables, and even attempts to decompile them into readable C code that corresponds to the disassembly. And so, looking at the decompiled/disassembled code in Reko, I expected to find `in` and `out` instructions, which would be the telltale sign of the program trying to communicate with the parallel port through the PC’s I/O ports. However… I didn’t see an `in` or `out` instruction anywhere! But then I noticed something: Reko disassembled the executable into two “segments”: `0800` and `0809`, and I was only looking at segment `0809`. If we look at segment `0800`, we see the smoking gun: `in` and `out` instructions, meaning that the copy-protection routine is definitely here, and best of all, the entire code segment is a mere 0x90 bytes, which suggests that the entire routine should be pretty easy to unravel and understand. For some reason, Reko was not able to decompile this code into a C representation, but it still produced a disassembly, which will work just fine for our purposes. Maybe this was a primitive form of obfuscation from those early days, which is now confusing Reko and preventing it from associating this chunk of code with the rest of the program… who knows. Here is a GitHub Gist with the disassembly of this code, along with my annotations and notes. My x86 assembly knowledge is a little rusty, but here is the gist of what this code does: * It’s definitely a single self-contained routine, intended to be called using a “far” `CALL` instruction, since it returns with a `RETF` instruction. * It begins by detecting the address of the parallel port, by reading the BIOS data area. If the computer has more than one parallel port, the dongle must be connected to the _first_ parallel port (LPT1). * It performs a loop where it writes values to the data register of the parallel port, and then reads the status register, and accumulates responses in the `BH` and `BL` registers. * At the end of the routine, the “result” of the whole procedure is stored in the `BX` register (`BH` and `BL` together), which will presumably be “verified” by the caller of the routine. * Very importantly, there doesn’t seem to be any “input” into this routine. It doesn’t pop anything from the stack, nor does it care about any register values passed into it. Which can only mean that the result of this routine is _completely constant_! No matter what complicated back-and-forth it does with the dongle, the result of this routine should always be the same. With the knowledge that this routine must exit with some magic value stored in `BX`, we can now patch the first few bytes of the routine to do just that! Not yet knowing which value to put in `BX`, let’s start with 1234: BB 34 12 MOV BX, 1234h CB RETF Only the first four bytes need patching — set `BX` to our desired value, and get out of there. Running the patched executable with these new bytes still fails (expectedly) with the same message of “No dongle, no edit”, but it fails immediately, instead of after several seconds of talking to the parallel port. Progress! Stepping through the disassembly more closely, we get another major clue: The only value that `BH` can be at the end of the routine is 76h. So, our total value for the magic number in `BX` must be of the form 76xx. In other words, only the `BL` value remains unknown: BB __ 76 MOV BX, 76__h CB RETF Since `BL` is an 8-bit register, it can only have 256 possible values. And what do we do when we have 256 combinations to try? Brute force it! I whipped up a script that plugs a value into that particular byte (from 0 to 255) and programmatically launches the executable in DosBox, and observes the output. Lo and behold, it worked! The brute forcing didn’t take long at all, because the correct number turned out to be… _6_. Meaning that the total magic number in `BX` should be 7606h: BB 06 76 MOV BX, 7606h CB RETF Bingo! And then, proceeding to examine the other executable files in the compiler suite, the parallel port routine turns out to be _exactly the same_. All of the executables have the exact same copy protection logic, as if it was rubber-stamped onto them. In fact, when the compiler (`RPGC.EXE`) compiles some RPG source code, it seems to copy the parallel port routine from itself into the compiled program. That’s right: the patched version of the compiler will produce executables with the same patched copy protection routine! Very convenient. I must say, this copy protection mechanism seems a bit… simplistic? A hardware dongle that just passes back a constant number? Defeatable with a four-byte patch? Is this really worthy of a patent? But who am I to pass judgment. It’s possible that I haven’t fully understood the logic, and the copy protection will somehow re-surface in another way. It’s also possible that the creators of the RPG compiler (Software West, Inc) didn’t take proper advantage of the hardware dongle, and used it in a way that is so easily bypassed. In any case, Software West’s RPG II compiler is now free from the constraint of the parallel port dongle! And at some point soon, I’ll work on purging any PII from the compiler directories, and make this compiler available as an artifact of computing history. It doesn’t seem to be available anywhere else on the web. If anyone reading this was associated with Software West Inc, feel free to get in touch — I have many questions! Share: TwitterFacebookPin ItWhatsAppLinkedInBuffer
dmitrybrant.com
February 3, 2026 at 12:22 PM
Reposted by Simon :donor:
You may have heard that #mozilla introduced an #ai kill switch into #firefox.

If you would rather use a browser that is less interested in #llm technologies, @Waterfox has been your companion for over a decade.

I had a chance to ask the founder and developer some questions about Waterfox's […]
Original post on mastodon.social
mastodon.social
February 3, 2026 at 3:30 PM
Reposted by Simon :donor:
Cornwall councillors banned from using social media platform
https://www.bbc.com/news/articles/cdx479625dno

"A town council in Cornwall has agreed to stop using a social media platform for official business.

Marazion Town Council said it was one of the first 213 councils in Cornwall to ban the […]
Original post on mastodon.social
mastodon.social
February 1, 2026 at 7:30 PM
Reposted by Simon :donor:
I'm #colorblind and I use https://xkcd.com/color/rgb/ frequently.

Randall 'xkcd' Monroe did a survey of over 100,000 readers where he showed them random rgb colors and said "what would you call this?" and afterwards he did his best to sort the results into the most popular color names and the […]
Original post on bark.lgbt
bark.lgbt
January 27, 2026 at 4:53 PM
I wonder what are the chances of the same 9 letter word coming up 2 days running on #channel4 #countdown 🤯
January 30, 2026 at 6:11 AM
#railway200 #inspiration is coming to Newquay April 6th to 11th, got my tickets 😃

https://railway200.co.uk/Inspiration/
Welcome to Inspiration
Discover the past, present and future of railways on our incredible exhibition train, Inspiration, touring Britain from 27 June 2025
railway200.co.uk
January 28, 2026 at 9:13 PM
Reposted by Simon :donor:
Doing Gigabit Ethernet Over My British Phone Wires

https://thehftguy.com/2026/01/22/doing-gigabit-ethernet-over-my-british-phone-wires/

<- this is one of those things I never knew existed but now desperately need
通过我的英国电话线实现千兆以太网
Doing gigabit Ethernet over my British phone wires (thehftguy.com) 18:14  ↑ 113 HN Points
thehftguy.com
January 25, 2026 at 12:22 PM
Always look forward to these messages from #nhs #blood

This was my 58th donation of ‘NEO’ blood that is suitable for newborn babies, potentially saves another 6 babies lives 😊

If you can, #giveblood if you already do, THANK YOU!

blood.co.uk
January 21, 2026 at 12:05 PM
Reposted by Simon :donor:
Hello Britain and northern Europe. If the skies are clear where you are, go outside and look north. Now.
#auroraborealis #auroraalert #aurora #northernlights
January 19, 2026 at 9:34 PM
Well I didn’t have seeing the #northernlights as a likely possibility anytime soon in St Austell, probably anytime ever, but actual green waves as well as the glows of red! Not the best photos but was very rushed and overly excited to be seeing them! It’s calmed down now so off to warm up in bed!
January 19, 2026 at 10:28 PM
Not the best of photos i know but there is a little bit of misty over At Austell and the street lights and rugby club flood lights are giving an amazing effect that tue photo really can’t do justice!
January 19, 2026 at 7:26 PM
Reposted by Simon :donor:
the greatest trick the ai ever pulled was convincing people it exists
January 16, 2026 at 3:59 PM
Having had to use a 'normal' size #iphone for the last week due to sending my 12 mini away for a new battery, I am so relieved to have it back but it also makes me sad to know there's nothing in this size to replace it, well, other than a 13 mini :(
January 13, 2026 at 11:52 AM
Lol the hideous monument in the town centre has blown down, I pray they don’t resurrect! #goretti #cornwall
January 8, 2026 at 9:14 PM
Reposted by Simon :donor:
Speaking of #ces, you may have noticed my coverage is very thin this year. There's a reason for this: I'm doing my level best to *not* give the oxygen of publicity to large language models and related "AI" tech this year.

An #llm is not #ai. It will never be AI, no matter how big. It's output […]
Original post on mastodon.social
mastodon.social
January 8, 2026 at 7:24 PM
Well storm #goretti making herself heard very suddenly in St Austell #cornwall in last 15 mins and first damage sustained as neighbours fence got ripped apart! And it’s an 8 foot wooden fence! My car is near it but I’m not risking my safety to move it, it’s a 19 year old C2, not worth it!
January 8, 2026 at 7:39 PM
Reposted by Simon :donor:
Getting tired of the ongoing "world's first AI-powered [thing that in no way needs AI]" trend in my press release inbox. Absolute flood now CES is in full swing.

My "favourite:" the world's first AI-powered wearable UV sensor. A wearable for tracking UV exposure isn't new (hell, you can buy […]
Original post on mastodon.social
mastodon.social
January 7, 2026 at 10:00 AM