6

The first time I ever heard of a dongle was when it was used on a text processor called Wordcraft on the Commodore 8032. It was around 1980. We had three machines and had to share the dongle amongst us, which I thought was a pain so I had a look at the code.

There was a scrambled bit of code which got unscrambled whenever the system checked for the dongle. So all I did was unscramble it, set the return value to true, jump to the end of the routine and allow it to rescramble. Then I found out what checksum it came up with and patched that in. The printer module also had to be patched because it checked the checksum. It only took 5 days to work that out the first time round. The second time round, it took 2 hours.

About 2 months later, I saw an article in PC World that raving about how brilliant they were and how it would be an end to piracy. There was a similar article in a US publication. I wasn't exactly a top notch computer science graduate but it only took me five days part time. Did these reporters/computer experts even try bypassing the dongle or did they just copy each other?

The moral is, if you want to implement a secure system with a dongle, get a crap programmer to implement it because they won't just have one routine to do the security - they will have several, all written differently so a cracker like myself can't just go in and clobber one routine to bypass the dongle.

Anyway - that was two side stories. Wiki talks about the ones on the IBM PC but I remember using them in 1980, way before the IBM PC was even invented.

  1. Did wordcraft use them on the earlier versions or was it only on Version F onwards.
  2. Did dongles exist before then, say on the Apple ][ or TRS-80 or even CP/M machines?
  3. Did Wordcraft invent the word dongle?

I can't find any history on any of the above

  • Later parallel port dongles used in PCs were harder to crack, and more successful at stopping piracy. That's a lot of the reason why you can still buy brand new motherboards with parallel ports. – Ross Ridge Apr 8 '18 at 14:01
  • There was no protection on any 6502, Z80 or 8086-80286 based system. If you knew how the memory was laid out, cracking it wasn't a problem. It wasn't until you got to the 386 which had protected rings built into the assembler and OS that you actually stop someone cracking the dongle. – cup Apr 8 '18 at 16:13
  • 3
    It doesn't work that way. As an end user you still have full control of the machine on a '386 PC. There's fundamentally nothing stopping you from modifying the OS if necessary to remove any protections. Not that contemporary OSes really did anything to stop you, sufficiently privileged users could load their own ring 0 drivers. It's not until you get UEFI Secure Boot and related technologies where PCs and operating system get the ability to allow software to detect whether the OS has been tampered with in a way that itself is tamper proof. – Ross Ridge Apr 8 '18 at 17:01
  • 2
    @cup - 286s were just as good at providing protection as 386s; it's just that you're less likely to have used an operating system that used the functions, mostly for backwards compatibility reasons (although I believe OS/2 did provide full protection and isolation on a 286...?) – Jules Apr 8 '18 at 21:29
  • 1
    " It only took 5 days to work that out the first time round". Did you try working out what the cost of those five days was in terms of your hourly rate and compare it to the cost of two more Wordcraft licences? – JeremyP Apr 10 '18 at 9:47
6

The oldest dongle like thing I own is a ROM board for the Apple II from 1978, where the whole PCB with all chips was cast in opaque thermoseting resin. This was ment to secure the software and disencurage any duplication.

But tieing Software to hardware to restict usage is much older than microcomputers. Unique identifiers for machines and/or CPUs where common with mainframes. For /370 for example the CPUID instruction (X'B202' - STIDPin early manuals) delivered a dword with a 16 bit machine type and a 24 bit serial number unique for each CPU.

This feature was available at least since 1970. Software manufacturers did modify their product before delivery to run only on certain customer machines it was sold for.

Bottom line, dongling software isn't something invented by micros.

  • Did they call it a dongle or did they call it something else? – cup Apr 8 '18 at 2:48
  • Are you looking for the Word or the Technology? – Raffzahn Apr 8 '18 at 6:12
  • Just wondering when the word was used for the technology. There weren't many personal computers in the late 70s and this is definitely a personal computer thing. Mainframes and minis in those days didn't have dongles. – cup Apr 8 '18 at 16:03
  • 1
    Tying software to existing hardware isn't the same as using a dongle. A dongle is a separate piece of hardware supplied with the software. Moving the dongle to a new machine will let you use the software on that computer. – Jim MacKenzie Apr 8 '18 at 21:23
  • 1
    @Raffzahn Yes, the principles are related. You use both the same way. The hardware dongle being removable is the distinction. – Jim MacKenzie Apr 9 '18 at 0:56
6

The oldest (smart) hardware "dongle" I know of is from 1985 in the ZX Spectrum 48K.

To curb Internet piracy and as a "collateral side effect" also having more 16KB (e.g. 64KB for the game), Mikro-Gen Ltd launched the game Shadow of the Unicorn with an external 16KB (EP)ROM board that mapped on top of the internal ROM address space.

This game came with the Mikro-Plus interface, containing a 16K shadow ROM and joystick port. The ROM image can be found in the 'Additional material' section below. Fraser Ross created a Shadow of the Unicorn ROM Loader for the +2A/+3, which loads this ROM into RAM, allowing playing the game without the additional hardware device.

simg

In fact, I also heard early rumours of simple dongles which were no more than resistors in joystick, serial or printer ports...but never got more concrete data on them.

Also, during the 80s, in the DOS and in the Amiga world, the concept of a "dongle" diskette as a low cost copy protection measure was pretty common.

Usually the diskette was either damaged in a particular point which the software would try to read/format, with data hidden in non-standard sectors, and/or formatted in non-standard ways.

P.S. I myself created similar diskette protections in assembly.

I also dealt with dongles so far later on, and even had a demo kit based on RS-232 I think, that I misplaced or lost track of.

I once broke also a dongle protection in the 90 in a DOS accounting program but it was rather simple... I debugged the (client) program to find out they just had a heavily protected interface module that hooked an interrupt, and upon called it set carry = 1 if the dongle was present, c=0 if not.

I did not even bother to look at the TSR encrypted code from the vendor, I just wrote a replacement TSR that returned carry = 1 and presto, did not even need to patch the actual program, just load my 30 bytes TSR instead of the dongle vendor before invoking it.

  • Diskette dongles were quite easy - they weren't really damaged: the write to the sectors were delayed so they wrote to the areas where a normal reader wouldn't look for them - hence they looked damaged. If the delay was put in, the relevant info could be read off to see whether it was valid. We used to do that on the Commodore disk drives in the late 70s. – cup Apr 8 '18 at 16:08
  • I used both the damaged technique with an hole, and the sectors in areas the normal reader would not look for them using DOS diskettes. Also used the latter one with DOS hard disks until Windows 95-98 started virtualising BIOS calls and more smart hard disk technology surfaced. – Rui F Ribeiro Apr 8 '18 at 16:23
  • Dongles on the Commodore 64 usually plugged into one of the joystick ports, e.g. for the PaperClip word processor. – Jim MacKenzie Apr 8 '18 at 21:22
  • @JimMacKenzie Now that you talk, I do remember something about it. – Rui F Ribeiro Apr 8 '18 at 23:07
0

Found a wiki article on it

https://en.wikipedia.org/wiki/Software_protection_dongle

Wordcraft were the first ones to use it but they didn't create the word dongle.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.