This is beautiful, but the real takeaway should be that even proprietary software you only have binaries for is still mutable. The computer runs the code you want it to run. We always need to maintain that and prevent scenarios where general purpose computers stop being the default.
We were always doing this kind of thing on these platforms. This is how we used to hack copy protection out of games.
Stepping through, line by line, editing the code and adding JMPs to get around the copy protection code after loading the magic numbers into the register...
That's how I first learned assembly. Armed with a monitor program that can disassemble and modify memory, I read and modified programs stepping through them. Mostly games, naturally. I never got an actual assembler/linker chain that would work and useful software was hard to come by.
Then they started loading the protection code from disk doing tricky things. One I cracked recently was a pair of Commodore 1541 sectors that appeared to be the same logical sector (because the drive head is blind). It needed to hit both of them to compile the next portion of the loader. Naturally the segment up to that point was encrypted as well, but nothing survives a VICE breakpoint. https://oldvcr.blogspot.com/2023/08/cracking-designwares-gra...
Obviously this is nothing on things like V-MAX! and Rapidlok which even nowadays have variations that are tough to remaster.
Unfortunately the whole "open source" movement has diverted attention away from that and brainwashed countless would-be power-users and even developers into believing that they are powerless to do anything without the source code. It's convenient to have the source, but not necessary for freedom.
I fondly remember patching 68K code in memory on an industrial control system my company was developing. I was able to decode the instructions just by looking at the hex display. Daresay, I could not do that with any modern system.
For people not used to reading MC8k assembly [1], it's helpful to point out the basic fact that the syntax is in general
opcode source, destination
which is the other way around from most contemporary ISA:s. So a line like
move.l d0, -(a7)
will first decrement the value of register a7, then write the contents of register d0 to the resulting address (it's a "push" for a downwards-growing stack).
I thought option-resize was supposed to resize the default (new document) window?
My recent pet peeve is that macOS doesn't seem to remember window sizes and locations properly. Things are certainly complicated by multi-monitor setups, but it seems like some sensible default behavior could be implemented.
I don't dislike the column browser, but I wish macOS would preserve/revive its spatial UI in both the Finder and document window positions.
I really miss the spatial classic Mac OS too. I don't think spatial orientation will ever come back to the Mac. Apple seems to have moved on completely.
In some ways, the world has moved on as well. Spatial orientation worked really well when the number of files and folders we typically dealt with was fairly small in number. Now we tend to deal with huge numbers of files, most of which aren't even on our local computer. It's hard for me to imagine how a spatial system like that could be made to work with all of that. What would a "spatial Wikipedia" look like?
This is beautiful, but the real takeaway should be that even proprietary software you only have binaries for is still mutable. The computer runs the code you want it to run. We always need to maintain that and prevent scenarios where general purpose computers stop being the default.
We were always doing this kind of thing on these platforms. This is how we used to hack copy protection out of games.
Stepping through, line by line, editing the code and adding JMPs to get around the copy protection code after loading the magic numbers into the register...
Happy, happy times.
That's how I first learned assembly. Armed with a monitor program that can disassemble and modify memory, I read and modified programs stepping through them. Mostly games, naturally. I never got an actual assembler/linker chain that would work and useful software was hard to come by.
Then they started loading the protection code from disk doing tricky things. One I cracked recently was a pair of Commodore 1541 sectors that appeared to be the same logical sector (because the drive head is blind). It needed to hit both of them to compile the next portion of the loader. Naturally the segment up to that point was encrypted as well, but nothing survives a VICE breakpoint. https://oldvcr.blogspot.com/2023/08/cracking-designwares-gra...
Obviously this is nothing on things like V-MAX! and Rapidlok which even nowadays have variations that are tough to remaster.
Unfortunately the whole "open source" movement has diverted attention away from that and brainwashed countless would-be power-users and even developers into believing that they are powerless to do anything without the source code. It's convenient to have the source, but not necessary for freedom.
I fondly remember patching 68K code in memory on an industrial control system my company was developing. I was able to decode the instructions just by looking at the hex display. Daresay, I could not do that with any modern system.
For people not used to reading MC8k assembly [1], it's helpful to point out the basic fact that the syntax is in general
which is the other way around from most contemporary ISA:s. So a line like will first decrement the value of register a7, then write the contents of register d0 to the resulting address (it's a "push" for a downwards-growing stack).Edit: added Wiki-linkage.
[1]: https://en.wikipedia.org/wiki/Motorola_68000#Instruction_set...
I used to love doing this sort of thing back in the early '90s. What a nostalgic read! Funny that there are still people doing it today.
I thought option-resize was supposed to resize the default (new document) window?
My recent pet peeve is that macOS doesn't seem to remember window sizes and locations properly. Things are certainly complicated by multi-monitor setups, but it seems like some sensible default behavior could be implemented.
I don't dislike the column browser, but I wish macOS would preserve/revive its spatial UI in both the Finder and document window positions.
I really miss the spatial classic Mac OS too. I don't think spatial orientation will ever come back to the Mac. Apple seems to have moved on completely.
In some ways, the world has moved on as well. Spatial orientation worked really well when the number of files and folders we typically dealt with was fairly small in number. Now we tend to deal with huge numbers of files, most of which aren't even on our local computer. It's hard for me to imagine how a spatial system like that could be made to work with all of that. What would a "spatial Wikipedia" look like?
I had to do this at work once