frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Defeating a 40-year-old copy protection dongle

https://dmitrybrant.com/2026/02/01/defeating-a-40-year-old-copy-protection-dongle
156•zdw•2h ago

Comments

kwanbix•1h ago
My father, an accountant, used to have a program like that, that used RPG and a dongle! Good times. Horrible donle.
dehrmann•1h ago
> I must say, this copy protection mechanism seems a bit… simplistic? A hardware dongle that just passes back a constant number?

Seems like it was an appropriate amount of engineering. Looks like this took between an afternoon and a week with the help of an emulator and decompiler. Imagine trying to do this back then without those tools.

cyanydeez•1h ago
Yeah, my IT company bitshifts suspect files and provides the magic number.

The protection just needs suficirntly complex.

opinologo•1h ago
Iremember doing exactly this kind of hack for a small telco in Bueno Aires. Extel. Around the year 2000.

In most cases it was not much more difficult than what OP described.

iamflimflam1•44m ago
I worked on some software that was used by telcos around that time - you were probably hacking our dongles :)
15155•1h ago
Audience matters. Something intended to stop legitimate business consumers in a non tech industry requires substantially less sophistication than something built to withstand professional reverse engineers.
dwattttt•1h ago
Locks are there to keep honest people honest.

To expand on the saying, they're not there to be insurmountable. Just to be hard enough to make it easier to do things the right way.

nkrisc•22m ago
And often they’re there so no one can plausibly say they didn’t know what they were doing or stumbled into it accidentally. You can’t “accidentally” go through a door with a padlock on it.

I’d guess it’s something similar with this dongle. You can’t “accidentally” run the software without the dongle.

classichasclass•1h ago
Copy protection was also generally less robust for educational software, since it sold to generally law-abiding folks (parents, educators, etc.). Never saw Rapidlok or V-MAX! used for educational software on the Commodore 64, for example.
bri3d•1h ago
In fairness, the decompiler didn't work on the protection method :)

I think that both halves of the author's thesis are true: I bet that you could use this device in a more complicated way, but I also bet that the authors of the program deemed this sufficient. I've reversed a lot of software (both professionally and not) from that era and I'd say at least 90% of it really is "that easy," so there's nothing you're missing!

ruleryak•1h ago
Many a crack back in the day was even more simple still, we'd just find and alter the right JE or JNE into a JMP and we're off to the races. As the author found, the tough part is just finding and interpreting where and how the protection was implemented. If throwing the exe in a hex editor gave you access to String Data References (not always the case, but more common than not) then you'd just fail the check you were trying to skip, find that string, hop over into assembly to see what triggered loading that, and then just alter the logic to jump over it when the time comes.
catlikesshrimp•1h ago
Why wasn't (isn't) this more widely used? It was clearly more effective than a cdkey.

I know there is cost associated with the hardware, but surely the costumer can cough 15 more dollars.

The only reason I can think of is wanting as wide adoption before max revenue as possible. But then, this has never been too popular, not even for games!

bri3d•1h ago
Dongles were extremely widely used in the 1990s and early 2000s; for anything more advanced than consumer software you'd almost expect them? Almost every DAW, video editor, high-end compiler, engineering/CAD package, or 3D suite used them, certainly.

I think sometime in the late 1990s FlexLM switched from dongles to "hardware identifiers" that were easily spoofed; honestly I don't think this was a terrible idea since to this article's conclusion, if you could reverse one you could reverse the other.

But this concept was insanely prevalent for ~20 years or so.

One of the biggest problems was not having enough ports. Some parallel port dongles tried to ignore communication with other dongles and actually had a port on the back; you'd make a "dongle snake" out of them. Once they moved to USB it was both easier and harder - you couldn't make the snake anymore, but you could ask people to use a hub when they ran out of ports.

ok123456•1h ago
It was widely used in engineering software because the license cost was equivalent to a large fraction of an engineer's salary. Anyone who used AutoCAD back in the 90s can remember.

When parallel ports were discontinued, they migrated to USB and network license servers.

jandrese•43m ago
One problem is that they often couldn't be daisy chained, the connector on the back was only useful for an actual printer. So if everybody started doing it you would have to swap them constantly which is a headache. So they're mostly used for software where it's going to be the only thing running on the box.

I find it interesting that they didn't make it into the USB era where you could easily have something that does some actual processing on the device that makes it a serious challenge to reverse engineer.

chrisldgk•19m ago
They did carry over into the USB era! I specifically remember my stepdads copy of Cubase (music production software) requiring a USB dongle to open.
GuB-42•14m ago
Having to put a physical device on your parallel port at the back of the computer is kind of annoying, especially if every software you use has one.

More common for games was to use the media itself for copy protection, using a variety of tricks to make copy more difficult. Other techniques involve printing some keys you have to enter using colors that don't render well in photocopies, or have you look at words a certain page of a thick user manual, the idea being that it is more expensive to go through the effort of copying this material than to buy the software legally.

One of my favorite is from Microprose games, for which the manual was a pretty good reference book on the subject of the game, that alone is worth buying. And the copy protection is about asking you about information contained in the book, for example, it may be some detail about a particular plane in a flight simulator, which means that a way to bypass copy protection is simply to be knowledgeable about planes!

Dongles were common, but mostly for expensive enterprise software. Also, dongles don't make cracking harder compared to all the other techniques, so for popular consumer software like games, it is likely to be a lot of inconvenience and a waste of money for limited results.

aizk•59m ago
Very cool to read an article about windows 95 still being used in production - a nice contrast to the infinite AI hype cycle over everything. Tech may move fast in flashy areas but not in the more "boring" parts of the industry.
1970-01-01•45m ago
The screenshots show the program was made for DOS. Very likely Windows was used just for network file sharing.
accrual•39m ago
I knew of a Windows 95 host running virtualized in a corp environment until at least 2014 or so. It was surprisingly sturdy, I only had to remote into it once or twice when the old software it was running hung up on something. It was old medical software and we apparently had a couple clients still interfaced to it.
jojobas•23m ago
Win95 is only 30 years old and runs natively on some modern hardware.

Apparently there is important stuff still running in emulated PDP-11s, almost double the age.

dmitrygr•55m ago

  >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!
This is not necessarily a fair assumption (though it worked this time). It could be some sort of a rolling code, where the reply is not constant but changes, and remains verifiable. Example: garge door openers have no input from the garage, but the sent signal differs every button click, and the garage can verify its correctness
sonixier•48m ago
The company i work at has the same problem. We have some old mission-critical windows 2000 pc that runs the rpg compiler, with attached dongle. This gave me some clues on where to start - thanks author!
dunham•41m ago
Back when I was a kid in the 80's. I cracked one of the Ultima games. I had it on my hard drive and didn't want to stick a floppy in every time I ran it.

The code decrypted itself, which confused debuggers, and then loaded a special sector from disk. It was a small sector buried in the payload of a larger sector, so the track was too big to copy with standard tools. The data in the sector was just the start address of the program. My fix was to change executable header to point to the correct start address.

accrual•41m ago
Fun journey! It would be fascinating to see what's inside the dongle. I wonder if it's programmable or just a simple circuit.
izme•22m ago
This takes me back. There exist emulators for these dongles as well, you run the a dumper with the dongle attached and load the program and it makes a dump file which you then use in the emulator.

I had to do this for a company so they could continue to use their old specialised Win98 software on modern computers using Dosbox and an emulator.

nsoonhui•18m ago
I write civil engineering software and am familiar with this kind of dongle. Yes, even today there are users who want this kind of dongle instead of, say, cloud-based validation. They feel secure only if they have something tangible in hand.

Since we sold (and still sell) perpetual licenses, it becomes a problem when a dongle breaks and replacement parts are no longer available. Not all users want to upgrade. Also, you may hate cloud licensing, but it is precisely cloud licensing that makes subscriptions possible and, therefore, recurring revenue—which, from a business point of view, is especially important in a field where regulations do not change very fast, because users have little incentive to upgrade.

Also, despite investing a lot of effort into programming the dongle, we can still usually find cracked versions floating online, even on legitimate platforms like Shopee or Lazada. You might think cracking dongles is fun and copy protection is evil, but without protection, our livelihood is affected. It’s not as if we have the legal resources to pursue pirates.

jedberg•17m ago
> 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?

Nowadays we don't bother with copyright protection other than a license key, because we know enterprises generally will pay their bills if you put up any indication at all that a bill is required to be paid.

This was basically the 80s version of that.

Defeating a 40-year-old copy protection dongle

https://dmitrybrant.com/2026/02/01/defeating-a-40-year-old-copy-protection-dongle
160•zdw•2h ago•30 comments

Show HN: NanoClaw – “Clawdbot” in 500 lines of TS with Apple container isolation

https://github.com/gavrielc/nanoclaw
97•jimminyx•1h ago•24 comments

Apple I Advertisement (1976)

http://apple1.chez.com/Apple1project/Gallery/Gallery.htm
165•janandonly•6h ago•105 comments

My thousand dollar iPhone can't do math

https://journal.rafaelcosta.me/my-thousand-dollar-iphone-cant-do-math/
86•rafaelcosta•3h ago•40 comments

Adventure Game Studio: OSS software for creating adventure games

https://www.adventuregamestudio.co.uk/
253•doener•10h ago•46 comments

Netbird – Open Source Zero Trust Networking

https://netbird.io/
629•l1am0•14h ago•239 comments

Kiki – The accountability monster for people who are easily distracted

https://www.kiki.computer/
35•pikseladam•3h ago•35 comments

Efficient String Compression for Modern Database Systems

https://cedardb.com/blog/string_compression/
67•jandrewrogers•2d ago•8 comments

I taught my neighbor to keep the volume down

https://idiallo.com/blog/teaching-my-neighbor-to-keep-the-volume-down
466•firefoxd•5h ago•179 comments

We (As a Society) Peaked in the 90s

https://chris.pagecord.com/we-as-a-society-peaked-in-the-90s
31•stog•1h ago•33 comments

Typechecking is undecidable when 'type' is a type (1989) [pdf]

https://dspace.mit.edu/bitstream/handle/1721.1/149366/MIT-LCS-TR-458.pdf?sequence=6
48•zem•2d ago•21 comments

Troublemaker: The fierce, unruly life of Jessica Mitford

https://www.lrb.co.uk/the-paper/v48/n02/rosemary-hill/one-of-the-worst-things
5•against•4d ago•1 comments

What I learned building an opinionated and minimal coding agent

https://mariozechner.at/posts/2025-11-30-pi-coding-agent/
341•SatvikBeri•14h ago•142 comments

MicroPythonOS graphical operating system delivers Android-like user experience

https://www.cnx-software.com/2026/01/29/micropythonos-graphical-operating-system-delivers-android...
167•mikece•3d ago•50 comments

Founding is a snowball

https://blog.bawolf.com/p/founding-is-a-snowball
16•bryantwolf•3d ago•2 comments

Clearspace (YC W23) Is Hiring an Applied Researcher (ML)

https://www.ycombinator.com/companies/clearspace/jobs/GOWiDwp-research-engineer-at-clearspace
1•anteloper•5h ago

TIL: Apple Broke Time Machine Again on Tahoe

https://taoofmac.com/space/til/2026/02/01/1630
161•rcarmo•4h ago•87 comments

Treasures found on HS2 route stored in secret warehouse

https://www.bbc.com/news/articles/c93v21q5xdvo
6•breve•2h ago•0 comments

Reliable 25 Gigabit Ethernet via Thunderbolt

https://kohlschuetter.github.io/blog/posts/2026/01/27/tb25/
197•kohlschuetter•5d ago•100 comments

A Collection of Awesome Nostr Projects

https://github.com/aljazceru/awesome-nostr
9•nout•3h ago•0 comments

MRI scans show exercise can make the brain look younger

https://www.sciencedaily.com/releases/2026/01/260121034130.htm
46•amichail•2h ago•3 comments

Amiga Unix (Amix)

https://www.amigaunix.com/doku.php/home
108•donatj•13h ago•37 comments

Show HN: ÆTHRA – Writing Music as Code

56•CzaxTanmay•2d ago•13 comments

Towards a science of scaling agent systems: When and why agent systems work

https://research.google/blog/towards-a-science-of-scaling-agent-systems-when-and-why-agent-system...
36•gmays•6h ago•15 comments

FOSDEM 2026 – Open-Source Conference in Brussels – Day#1 Recap

https://gyptazy.com/blog/fosdem-2026-opensource-conference-brussels/
175•yannick2k•13h ago•105 comments

1-Click RCE to steal your Moltbot data and keys

https://depthfirst.com/post/1-click-rce-to-steal-your-moltbot-data-and-keys
140•arwt•4h ago•60 comments

The Book of PF, 4th edition

https://nostarch.com/book-of-pf-4th-edition
196•0x54MUR41•16h ago•38 comments

Margin Call

https://asymco.com/2026/02/01/margin-call-3/
123•zdw•2h ago•64 comments

English professors double down on requiring printed copies of readings

https://yaledailynews.com/articles/english-professors-double-down-on-requiring-printed-copies-of-...
102•cmsefton•8h ago•143 comments

VisualJJ – Jujutsu in Visual Studio Code

https://www.visualjj.com/
147•demail•4d ago•60 comments