It's very similar to the Twilight Hack for the Wii. In that hack the horse's name in the save file is overwritten with one that is too long.. the game never checks to see if the name is too long and loads it into memory, overwriting things in memory it shouldn't in a way the hacker planned to allow for code execution, basically*. Sounds like this is the same type of hack.
* - The idea is to overwrite a specific pointer in memory that determines where to return after a function call. Overwrite it to point to somewhere else... say, somewhere else in that big name we just loaded into memory... and once the function returns it'll jump into the big name and treat it as program code instead of a name, so if we put code in there it'll run!
That's how I understand it at least, though I left off the technical terms.
“An engineer explained to us that hundreds of ear impressions were gathered in the name of research, and while each one obviously boasted its own unique shape and size, one single characteristic remained uniform across the board: the entrance into the ear canal is not a perfect circle, it's an oval.”
Now that we've thrown 'em off the trail, use the form below to get in touch with the people at Engadget. Please fill in all of the required fields because they're required.
wait what?? it was hacked because some1 changed a file name to this is spartaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?
Did anybody else count?
Not a filename, I think, but basically yes. It's called a buffer overrun exploit.
@cheater912: Absolutely.
It's very similar to the Twilight Hack for the Wii. In that hack the horse's name in the save file is overwritten with one that is too long.. the game never checks to see if the name is too long and loads it into memory, overwriting things in memory it shouldn't in a way the hacker planned to allow for code execution, basically*. Sounds like this is the same type of hack.
* - The idea is to overwrite a specific pointer in memory that determines where to return after a function call. Overwrite it to point to somewhere else... say, somewhere else in that big name we just loaded into memory... and once the function returns it'll jump into the big name and treat it as program code instead of a name, so if we put code in there it'll run!
That's how I understand it at least, though I left off the technical terms.