When I was nine years old, I liked poking around with a hex editor on my dad’s PC.
I didn’t speak English and MS-DOS wasn’t yet localized to Finnish in 1989, so I decided to try translating it myself with a dictionary by manually finding and replacing strings in the SYS/COM files. The result worked and my dad was suitably impressed, if probably a bit peeved that nothing worked anymore in the shell as expected (since I had replaced all the basic command names too — “dir” became “hak” and so on).
It’s pretty cool to see those strings again in src/MESSAGES.
At the same time, it feels a bit sad that today’s kids can’t get the same feeling that the computer is really theirs to modify. Modern operating systems don’t run binaries tampered with a hex editor. Most kids are on operating systems like iOS where they can’t even run a C compiler.
They can play with code in various sandboxes locally and on the web, but the computer fundamentally belongs to someone else today.
> At the same time, it feels a bit sad that today’s kids can’t get the same feeling that the computer is really theirs to modify.
Kids with a hacker mentality (let's face it, even in the 80s those of us who hacked around with DOS etc. were the teeny tiny minority) have more options than ever before, including but not limited to FreeDOS, Linux, or a bunch of others https://en.wikipedia.org/wiki/Comparison_of_open-source_oper...
Finding it is also super easy if you have the curiosity (and of course a PC and an internet connection).
You said the magic keyword: "curiosity", when it comes to computers and tech at least. Something that I find severely lacking among - for lack of a better term - Gen Z.
It's the difference between hackers and users. You probably don't rebuild your car's transmission and don't build your own long-distance radio, but there are people that do it for fun. However, there was a time when both drivers and operators consisted mainly of people that hacked on cars and radios. Some of the hackers were involuntary hackers and gladly became users when cars became appliances.
The same applies to PCs. Gen X and older Millennials had to become hackers just to get the sound working in their newest game, so if you saw a guy on IRC you knew he was a fellow hacker. Now everyone is online, including people who would simply not use a PC back in the 80's or 90's. They can afford to treat their personal computing devices the way I treat my personal commuting device: fuel goes into this hole, I need to consult the manual to open the boot to top up window washing fluid, the rest I happily delegate to a professional. But the hackers are still there: grease monkeys, DXers, hackers proper.
My favorite Hex Editor hack was when I cracked a Windows software simply by changing the instruction "Equal to" to "Not Equal to" where it matches for Software Key with user entered key.
Many replies here argue that there are plenty of choices today for the hacker-inclined, many more than 40 years ago, which is true, of course.
But I think what your post implies is that regular computers back then invited you to hack them. It might have awoken a curiosity that could have otherwise remained latent in many of us.
A anecdote from the other side of the fence: Apple used to ship an app called ResEdit whose sole purpose was for you to hack with your Mac. Change strings, menu shortcuts, images, sounds. I had my own localized and rebranded version of Eudora and many tiny modifications to games. Can you imagine a first party hacking tool like that today from the fruit company?
I think ots rose tinted glasses to a degree and survivorship bias - the learning curve was very steep, documentation lacking or absent + no one to ask for help. I was glad I could run some games on my C64 and never really got farther with it due to these limitations.
The old 8bit micros from the c64 era had plenty of documentation. Those computers even shipped the schematics of their hardware, let alone a manual for BASIC.
I literally learned to program by reading those manuals
But I think the missing ingredient they had back then was there was nothing better to do. Being "bored" isn't as much of a thing anymore for anyone, not just children.
The DOS era was a bit before my time; I had a C64 as a kid but I managed to break it before I got to do too much fun [1].
That said, I got into web dev when I was a pretty young kid, about 9 years old, and I would have fun hacking together different websites. Eventually I noticed the “edit” button on top of the browser and learned you could mess with other people’s sites as well. I had lots of fun breaking stuff.
Computers are so cheap now, I think it’s relatively easy for most families to have a computer that can be programmed. For that matter, the Raspberry Pi is cheap and has hundreds of resources available to play with, many of which are kid friendly.
[1] before you ask, I am not 100% sure what I did, I was playing around with some code I found in a manual for it that my dad gave my when I was 7-8, and I must have done something bizarre cuz it stopped booting.
The C64 breaking was almost certainly not your fault.. they had a bunch of commonly occurring faults, and a number of the chips, especially those which commodore fabbed themselves were notorious for giving up eventually. The PLA failing was a particularly common occurrence, but RAM and other glue logic sometimes fails too. These days there's a vibrant hobbyist community and a lot of the chips have modern replacements available. I'm still grateful for having grown up with a C64, it was a fun way to learn the ropes.
I wouldn't cry too long for the curious children of today. There are more frontiers and available resources for kids today than we ever had tinkering with an isolated TI-99/4A or VIC-20. We could share a cassette with a friend and if we were super lucky there was a local user group that met in a church basement right after the AA meeting.
I did that with GTA, translating it to Portuguese. It was then that I learned that I could overwrite the strings with the Hex Editor, but not insert anything because it would stop working. And thus began my dive into computers.
Great memories, thanks for making me remember it.
* Actually now that I really think about it, it wasn't with an Hex Editor, it was with Edit! Fun times.
When I was running Gentoo, I wanted to replace the GNOME foot that appeared on the dropdown menu with a Gentoo-fish-in-a-wizard-hat icon.
I found documentation suggesting that the icon shown on the menu was set in a certain configuration file, and changed that file.
This meant that, when I was using the normal UI to customize the GNOME topbar, the icon associated with that menu, in the GUI, was the fish-wizard icon. But it did not change the icon displayed in the menu itself.
I always resented that. I still don't like the concept of hiding configuration lest the user change it.
I really loved the rare cases of software publishers who put the serial number for the software on disk two instead of disk one so you didn’t have to eject the disk you were working from to do the install.
I remember editing command.com too, with debug.exe, to change some of the standard messages, or even command names, as you did.
Another cool DOS thing was that you could type Alt+255 (last 8-bit character code) as part of a filename. That appeared like a space character, so made it effectively "hidden" to those who did not know about the trick, because they could not type its name to list or edit it.
I used to do this on Windows XP to make my desktop look cleaner, all the files were ALT+255 repeated N times, or, more accurately, repeated a random number of times.
Occasionally I allow my (toddler/preschool) kids to play 'Kindercomp' in DOSbox on my computer. It's got a mode that prints the letters you type across the screen in different colors, which seems to be the fan favorite because it rewards indiscriminate keyboard mashing.
When they get a little older I plan to introduce QBASIC programs that do the same kind of thing, then we can start looking at the code that makes it do that.
MacOS is notorious for this. By default, it would only run binaries signed with an Apple-issued certificate. You can bypass this multiple different ways, of course, but that requires knowing that it can be bypassed in the first place.
Then there are mobile OSes where you don't get to see the binaries at all. Yes you can repack an apk but again, that's a more involved process requiring specific tools and knowledge (and very awkward to do on the device itself), and iOS is completely locked down.
> MacOS is notorious for this. By default, it would only run binaries signed with an Apple-issued certificate. You can bypass this multiple different ways, of course, but that requires knowing that it can be bypassed in the first place.
What do you mean? When I compile something with a myriad of different language stacks or compiler toolchains, I'm not aware of an Apple-issued certificate ever being involved and those binaries run just fine.
Probably because the environment you use to compile it, like the terminal or Xcode, is added to "developer tools" under security settings. Xcode in particular does that for itself automatically.
This is fine if the user was empowered to re-sign it after the mucking. The problem is that the user is rarely in charge of their own computer anymore.
Outside of mobile operating systems, eg on Linux, Windows and MacOS (and all the BSDs etc) it's fairly trivial to run binaries you built yourself.
But: re-signing is an extra step that someone who's just starting out and mucking around with a hexeditor might not know how to do nor even be aware of.
I didn’t speak English and MS-DOS wasn’t yet localized to Finnish in 1989, so I decided to try translating it myself with a dictionary by manually finding and replacing strings in the SYS/COM files. The result worked and my dad was suitably impressed, if probably a bit peeved that nothing worked anymore in the shell as expected (since I had replaced all the basic command names too — “dir” became “hak” and so on).
It’s pretty cool to see those strings again in src/MESSAGES.
At the same time, it feels a bit sad that today’s kids can’t get the same feeling that the computer is really theirs to modify. Modern operating systems don’t run binaries tampered with a hex editor. Most kids are on operating systems like iOS where they can’t even run a C compiler.
They can play with code in various sandboxes locally and on the web, but the computer fundamentally belongs to someone else today.