Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


The youth of today simply don't have it in them! Unlike us back then, they're just not as cool, not as strong, not as smart...

This complaint is as old as mankind and has always been wrong. It seems to be a feature of human thinking that we glorify the memory of our own youth.


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.


branch if not equal.

and noops.

we were reverse engineers, make no mistake


It was something like: find "74", change it to "75" lol


Yes, but the hard part is that were a lot of "74"s and you had to figure out which one had to be changed... :)


Ahaha wow this brings back memories :)


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.


I just remembered replacing the Netscape “N” comete with my own GIF. How cool was that?


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.


I remember trying to rename LILO (from "Loading Linux" fame) to PIPO [1] by simply editing the bytes with a hex editor.

Turned out that didn't work, because there was an additional sanity check that halted the boot process if the "LI" bytes were corrupted.

Of course I put through and was a happy user of PIPO for some years, until Grub came along.

[1] https://en.m.wikipedia.org/wiki/Pipo_de_Clown


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.


> MS-DOS wasn’t yet localized to Finnish in 1989

That's genuinely something today I appreciate but when putting the 10th floppy in to update windows3.x. relative these days!

> it feels a bit sad that today’s kids can’t get the same feeling that the computer

Can't agree more. trying to get my cousins and nephews interested is in their term "Not important"


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 still remember OS/2 2.0. Gawd what an awful first time experience with an OS.


Don't be too sad that computers have matured: hackers gunna hack, no matter the generation ;)


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.


But then how did you access those files yourself, if their names looked like just spaces? Would they not be invisible to you too?


I guess they did it with icons.


Makes sense, should have thought of it. Maybe I didn't because I am more of a backend and command line guy.


We can still give DOS to kids though. I'm going to try it out when he reaches 6.


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.


>Modern operating systems don’t run binaries tampered with a hex editor.

do you mean non-system ones?


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.


So I don't even need to know how to bypass it because it happens automatically behind the scenes. Nice.


But if you edit a binary with a hex editor, invalidating its signature, you would need to know how to bypass it.


Unlike your average user, if you have the knowledge to apply a hex editor, then you probably can Google how to work around the signature error.


It won’t run on another user’s computer unless it’s been Notarized.


Some OSs want their binaries to be signed and probably have checksums etc. It would be hard to keep those valid when mucking around with a hex editor.


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.


> Modern operating systems don’t run binaries tampered with a hex editor.

Luckily that isn't universally true. I had to do a decent amount of binary modifications on Linux to deal with bugs and glibc compatibility issues.


You can still patch binaries on Windows.


I liked changing the copyright company name to my own name. Made me feel like such a boss.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: