3 ms·
I wouldn't really call this "corrupting the RAM". It's not "corrupting" it more than running any other code; it's just taking advantage of certain states. (I'm
by bajsejohannes 14y ago
I wouldn't really call this "corrupting the RAM". It's not "corrupting" it more than running any other code; it's just taking advantage of certain states.
(I'm not saying it's not extremely impressive. It is. It's just slightly misleading wording)
Edit: Downvoters: Did I misunderstand something? I read it again along with the original forum post, and it seems pretty clear that this could theoretically be done on an original SNES, without any tools, it's just impossibly hard in practice. So how is it "corrupting"? You wouldn't call a buffer overflow attack "corrupting RAM", even though it's based on exactly the same principles. And you certainly wouldn't call playing the game normally "corrupting the RAM", even though it's manipulating the RAM in the same way.
- pindi 14y agoMemory corruption is generally defined as occurring when the contents of RAM are modified in a way not intended by the original programmers. [1] Under this definition, buffer overflow attacks would certainly qualify, as would this exploit. [1] http://en.wikipedia.org/wiki/Memory_corruption http://en.wikipedia.org/wiki/Memory_corruption
- Dylan16807 14y agoBut the memory contents aren't actually being modified in an unintended way. They're only being used in an unintended way. The random number generator is supposed to tick this way, and the sprite data is supposed to work this way. The key exploit is in getting the game to run a subroutine at the wrong time, so that it uses the valid memory contents as code and skips to the end. There are other mario games where you can go out of bounds into memory and start flipping bits. That is memory corruption. Here I don't think the term applies.
- libria 14y agoI don't see the word `corrupt` putting us that far afield than using `manipulate`. Merriam-Webster defines corrupt as "to alter from the original or correct form or version". You're probably getting downvoted for what's become a common attitude on HN: overly critical for no reason. At best, your only contribution was to correct "slightly misleading wording" (in your opinion).
- bajsejohannes 14y agoThanks for the feedback. When I think about it, I guess my reaction was mostly because the title says Super Mario was completed "by Corrupting the RAM" (the keyword being "by"). To me, that sounds like the exploit was done by corrupting the memory outside of the game. Like an external program that would modify the RAM or by going in on the physical layer somehow. This feels more like it was completed "by exploiting corrupted memory". So I was a bit confused when reading the article at first. But I'm fine now :)
- mortehu 14y agoI disagree this exploit is like a buffer overflow. It is more like uploading code to a buffer within its bounds (no overflow), and then triggering a jump to that buffer. The only corruption part is getting Yoshi to wrongly think he has something in his mouth, which wasn't the novel part.