Technical Analysis of XBox Save Game Hack 242
DJPenguin writes "There is an excellent article at the XBox Linux Project that describes exactly how the XBox savegame hack works. It details how the author went to great lengths to hide exactly what was going on. It turns out the exploit code is hidden within an image of Tux himself!" An enlightening read, to say the least.
Hidden code? (Score:2, Offtopic)
Re:Hidden code? (x1488) (Score:2)
Geez (Score:4, Funny)
Stego or not? (Score:5, Insightful)
Re:Stego or not? (Score:4, Informative)
<p>- Alex
Re:Stego or not? (Score:2)
Unless this data in the image header is really hidden, but if its in the header, it's probably in the comment...
Re:Stego or not? (Score:2, Troll)
Hmmmm... no, I don't see the 300 Kb of useless XML... not generated by an MS product.
Re:Stego or not? (Score:2)
What would be the point in that? If they know you're using stego, then it kind of defeats the whole purpose, doesn't it? Banning it would be meaningless, since the entire concept of stego is to hide the very fact that you're using it from the authorities.
Re:Stego or not? (Score:2)
So, using the header of a file is obviously very much in the spirit of the original concept.
Re:Stego or not? (Score:2)
Your sekrit message will be much more difficult to identify if it is hidden somehow among the image data, not just set in the header. Most image display programs will show it.
I suspect the author did not use "true" stego to hide the code because a) hidden like that, the code would not execute without some kind of wrapper to pull it ou
Re:Stego or not? (Score:3, Funny)
back in my room i (Score:3, Funny)
I don't understand. (Score:5, Interesting)
Re:I don't understand. (Score:5, Informative)
The big one is that the more cryptic and obfusicaed the hack is, the less likely the vulnerabitly will be fixed in a future version because its less likely to be found and understood the the engineers trying close it. From the article, it seems as if the game already has four versions that have this hole.
But to contridict myself, the article seems to indicate the big hole is a simple buffer overflow. Easily noticed and fixed. If there are other relatively unknown hacks inside the encrypted payload, it may extend their availability and usefulness.
On the other hand, the hacker my be simply trying to hide his identity, changing her code so it doesn't seem like its in her personal style. To explain, people who write software for long enough in any arbitrary language begin to develop their own consistant style. Don't get me wrong, they do use the language's idiom to a certain extent, but usually have their own bit of flair to add to them.
Lets consider the c/c++ for loop. Here are a few ways to write it - all pretty standard. Given a large enough sample of a persons code (say the did it for a living and their employer used cvs or similar), its pretty easy to tell who wrote. After about 15-20 lines of code, I can pretty well tell which of my coworker are to blame for the latest bug. Its not a finger print, but you just need a glove size to narrow down the search.
Or, I could be completely off base. Its happened before... Once
Just my $0.02
(ps, I realize that the guys fixing the hole wouldn't have the source to look at, but i would wager that enough flair gets through to the machine language)
Re:I don't understand. (Score:5, Interesting)
Re:I don't understand. (Score:2, Interesting)
However, I totally agree with you point -- the programming style of a higher-level lan
Re:I don't understand. (Score:3, Insightful)
You're assuming the code in question was compiled. Glancing at it, I'd lay good odds that it was handcrafted.
Besides, with the risk of being DMCA'd into his or her component atoms (regar
Re:I don't understand. (Score:2)
It is possible to identify people just from the way they walk.
The compiler will do a good job of muddling the distinctions among programmers, but most of the organizational proclivities of the programmers will still get through into the machine code. For the exact same partial order implied by the algorithm and the data, the programmers will r
Re:I don't understand. (Score:2)
Re:I don't understand. (Score:5, Informative)
I don't think that the Tux image was in the game executable, rather the save game file. This is a hack that uses a weakness in 007, not a back door placed in by someone working on 007.
- Alex
Stop these immoral actions! (Score:5, Funny)
Come on, guys - you know it's not right. Don't copy that floppy!
Don't Copy that Floppy (Score:4, Funny)
Re:Don't Copy that Floppy (Score:2)
Re:Don't Copy that Floppy (Score:2)
Re:Don't Copy that Floppy (Score:2)
Re:Stop these immoral actions! (Score:2)
Does it harm the ketchup industry if I put mayonaise on my burger? Should I support the ketchup people if they try to put the mayonaise people out of business?
Why did the hacker try to hide how he did it? (Score:4, Interesting)
Re:Why did the hacker try to hide how he did it? (Score:5, Interesting)
If that is the case, he would want to hide the fact that the exploit exists, as well as hiding the fact that he installed the exploit.
He would then have to make sure that the exploit made it through QA, and the game made it to the market. Next he has to verify for himself that he can take advantage of the exploit in the wild, then he can make others aware that the exploit is possible, preferably without revealing his identity.
But that's just one possibility. Maybe he did it just to see how obtuse he could make an exploit.
Disclaimer, the above are mearly ideas, I don't work at a game company, or for any company that I know has production involvement with any computer games, or any Microsoft products related to gaming.
-Rusty
Re:Why did the hacker try to hide how he did it? (Score:5, Insightful)
I think that any programmer can appreciate why he went to such lengths to hide the code. It's a hell of a cool thing to do.
In this world of script kiddies, it's very important to disguinish between kiddies and people who are true hackers. Mad props to him for showing that hacking is most certainly an art.
The modification of the public key to make is divisible by 3 was just beautiful.
Re:Why did the hacker try to hide how he did it? (Score:3, Interesting)
In this world of script kiddies, it's very important to disguinish between kiddies and people who are true hackers. Mad props to him for showing that hacking is most certainly an art.
But isn't the whole philosophy behind linux to be open and clear?
Re:Why did the hacker try to hide how he did it? (Score:2, Funny)
After reading /. for a year or two, I sort of deduced that the whole philosophy behind linux was to be cool.
Re:Why did the hacker try to hide how he did it? (Score:5, Funny)
I second that. Why else would it have a power animal from the Antarctica? Also, it did originate in Finland where it's pretty bloody cold during most of the year.
Re:Why did the hacker try to hide how he did it? (Score:4, Funny)
Re:Why did the hacker try to hide how he did it? (Score:2)
>be open and clear?
You are not allowed to be "open and clear" when you reside in a Federal prison. And it's really hard to be of any use to the community when you are locked up in a Federal prison which happens to be on the communist island nation of Cuba.
[I'm still appalled, that I have never heard anyone question the existence of a US prison in Cuba.]
Could a rival console maker be behind this? (Score:3, Insightful)
You brought up an excellent point!
Re:Why did the hacker try to hide how he did it? (Score:5, Insightful)
Um, that's not a very good distinction: you need to be clear what meaning of "hacker" you're using. Someone who r00ts my box and types "rm -rf
By confusing the illicit modding and the website defacing, you're making it all the harder to defend against future DMCAs. Many of the big corporate lobbyists and lawyers we so love to bash on Slashdot would love for the public and politicians to view hobbyists and crackers as the same thing.
Re:Why did the hacker try to hide how he did it? (Score:4, Insightful)
Re:Why did the hacker try to hide how he did it? (Score:4, Insightful)
What you are describing is still a system cracker. The "do no harm" philosophy is pure ignorance. Someone breaking into a machine and covering his tracks can do a lot of unintentional harm.
Those who hack the XBox don't have to worry about causing harm because they are working entirely on their own equipment.
Re:Why did the hacker try to hide how he did it? (Score:2)
Standard operating procedure for dealing with a break-in where I work: nuke the system and restore from backups. I guess we could avoid this, if we instead spent several days auditing the system. Unfortunately, one must always assume the worst- there's no way to tell how badly the system has been compromised, so all b
Re:Why did the hacker try to hide how he did it? (Score:2)
And
Re:Why did the hacker try to hide how he did it? (Score:2)
Yeah, and so do I: by their bad spelling and grammar.
Re:Why did the hacker try to hide how he did it? (Score:2, Insightful)
By confusing the illicit modding and the website defacing, you're making it all the harder to defend against future DMCAs. Many of the big corporate lobbyists and lawyers we so love to bash on Slashdot would love for the public and politicians to view hobbyists and crackers as the same thing.
Are you trying to say that this was illicit modding? Let's look at it, this is using the hardware they sold you for what you want to do. You don't have to sign an agreement with MS to buy x many gam
Re:Why did the hacker try to hide how he did it? (Score:2)
Illicit, not illegal. I think the project is actually quite cool. My point is that it's (necessarily) very of secretive, definitely not what the manufacturer intended, and possibly illegal under the current fucked-up technology laws we have. It's just enough of a gray area that Microsoft (or the MPAA, etc.) will take any chance they get to lump it in with breakins and piracy. But I don't think it's wrong: that was the point.
Re:Why did the hacker try to hide how he did it? (Score:2)
Re:Why did the hacker try to hide how he did it? (Score:2)
In the context of the X-Box hack, however, I think "hacker" means something more like "dreams in x86 assembler", or "impresses Carmack", or perhaps "pwnz L1NUS!!!11"
Well, maybe not that last one...
Re:Why did the hacker try to hide how he did it? (Score:2)
If they break in, as far as I'm concerned it's just as bad, because we can't assume anything about their intentions. Unless they're specifically employed to police our boxes/network, they have no business and no right to gain unauthorized access to our systems, and I'll assume that any breakin is malicious.
Re:Why did the hacker try to hide how he did it? (Score:2)
Re:Why did the hacker try to hide how he did it? (Score:2)
Isn't there a fair sum of money up for grabs for the person who creates a non-modded linux Xbox hack?
Re:Why did the hacker try to hide how he did it? (Score:5, Insightful)
Remember, they've already gone out of their way to stress it's use for a legitimate purpose (running Linux) and not for piracy. This is just one more example of that. It shows a good faith effort by the authors to insure the hack can't as easily be exploited for other purposes.
Mod Parent UP! (Score:2)
Such obfuscated code could only be the prodcut of
A: a paranoid mind
B: someone on a mission to prevent their code from being exploited
C: both.
Brilliant! (Score:5, Insightful)
It looks like it retrives the private key. That's interesting.
Re:Brilliant! (Score:5, Interesting)
It looks like it retrives the private key. That's interesting.
I agree that it's interesting but the exploit doesn't retrieve or recreate the private key - it does something I've been fretting about recently: it simply modifies the public key - thereby creating it's own (new and weak) key pair.
From the article:Once you modify the public key this way, you end up with a public key that is easily factorable. It is now divisible by 3!
Anyone here bright enough to suggest a good way to protect from this? My first thought was to sign the public key with another, use an X.509 certificate or something but the problem is that you can always patch the signature/certificate/checksum/whatever verification mechanism... So what is the solution?
Re:Brilliant! (Score:3, Insightful)
There is no solution. If someone's got physical access to hardware, all bets are off and there's nothing you can do. The only solution to the problem would be a physical one, such as using superglue to hold the case shut.
Re:Brilliant! (Score:4, Interesting)
Here is a description of what it is Basically, the decryption key is stored in a battery backed up RAM. If you toy with the board(trying to dump the rom and whatnot), The key gets lost and the board becomes unusable. [arcadecollecting.com]
Re:Brilliant! (Score:4, Interesting)
I believe capcom uses this technique on their boards. The problem is, batteries tend to die over time and at some point the key is lost due to age. (3 years?) The manufacturer will generally fix the system.
However, this encryption method was eventually defeated. The guys were originally doing it to get the old capcom rom's off, but found out they could decrypt the newer games too.
At the time, they decided not to release their findings, as they were a classic rom shop and didn't want to destroy the technique for newer arcades.
I believe the group was decrypting the roms and released those, but eventually someone gave out the material.
I gave up following the story when they said they cracked it, but ethical reasons kept them from giving away the information.
Anyhow, with battery backed up stuff, the trick is to provide power before disconnecting the battery.
Re:Brilliant! (Score:2)
Regardless, if that type of crazy encryption can people hackers at bay for 5 years, that's great considering most consoles have a lifetime of 5 years.
Re:Brilliant! (Score:4, Informative)
I'll give you a hint: There isn't one!
As somebody who's name escapes me at the moment said, "There ain't no such puppy as a trusted client [wikipedia.org]."
Re:Brilliant! (Score:2)
You'd have to put the key and the checking code into tamper-resistant hardware which then had the power to shut down the game and refuse to play it if the signature was bad. Ideally the hardware would be
Re:Brilliant! (Score:3, Funny)
Even Palladium won't protect you if you have one of those, providing the vulnerability occurs after the application has authenticated to the hardware. Unless you do something like challenge the app periodically to prove it has an intact copy of the secret key. Does Palladium do that? I don't know. Anti-stack crashing kernels combined with a crypto enabled platform could help too. But the whole game is complex as hell. And it has some of the best minds on t
Re:Brilliant! (Score:2)
But the scale of the problem must prevent that.
One of my MSDN subscriptions failed to activate, because the activation key was already taken. My guess is that someone registered it along with a wide swath of other keys, perhaps using a generator or just guessing. They aren't afraid of any consequences -- why should they? They are less than a needle in a haystack.
Meanw
Re:Brilliant! (Score:3, Informative)
You know your a geek... (Score:5, Funny)
I understood enough to understand ... (Score:3, Insightful)
I didn't have to look anything up, though...
I know Assembly, and 80x8n assembly, especially. So that was no problem. I could follow the basic plot; I didn't bother to try to read most of the code, but when I did, it wasn't hard to read. The article was pretty good that way.
But it looks to me like the article really didn't tell how the 007 Save Game was hacked. Rather, the article says "yeah it was hacked, and here's the neat part." But that's where it stops.
There isn't
Re:I understood enough to understand ... (Score:3, Informative)
Once the buffer overflow was found, it was a relatively simple matter of creating a doctored save game that caused the xbox to boot off the hard drive when you try and 'load' that saved game file.
So to boot into linux, you have to buy AUF, obtain the doctored save game and get it onto the machine (I'm not sure how you go about that part.. perhaps the xbox has some removable media), then
Re:You know your a geek... (Score:2)
You really know you're a geek when you can read the opcodes without referring to the assembly.
You know you're a slashdot reader ... (Score:2, Funny)
XBOX is evil (Score:3, Interesting)
The scariest part? Is that in 10 years, we wont be talking about a console. This is the future of the PC.
Re:XBOX is evil (Score:4, Insightful)
1)Making it upgradable would increase cost, they wanted the cheapest box for the performance they could make (sockets cost money)
2)If you don't like the idea of not being able to write your own code for it, then don't buy it.
3)puts their logo on the front...in that case is Dell also evil?
4)If you even try to open this crippled PC, your warranty is void....why does microsoft have to warranty actions on the XBOX that it's not designed for? That's like me saying that AMD should still warranty my processors even if I'm running them out of spec
5)...you are breaking the law. Despite what the spindoctors say, as long as you aren't hacking your xbox to play copied games, they can't touch you if your putting your own software on there (that said, if a side effect of your little hack causes someone to be able to play burned games, then theyre gonna come after you (which sucks for fair use...).
6)The scariest part? Is that in 10 years, we wont be talking about a console. This is the future of the PC.That is the scary part though. Even though 'the powers that be' keep claiming that people will be able to run unsigned content on TCPA hardware. I can't imagine that it would 'accidentally' cripple things like linux and BSD that hurt the bottom line
XBox sales show this is NOT the future. (Score:5, Insightful)
Conoles will stay consoles. They will be made to play purely games and nothing else. This is what people want to buy, and they're showing it with their pocketbooks right now. Look at how many dedicated gaming devices Sony and Nintendo have sold compared to Microsofts try-and-do-everything Box. The numbers speak for themselves.
Whoever figured this out originally... (Score:2)
Does M$ have a fetish (Score:3, Insightful)
Seems that's the number one way to whack an M$ system...
Re:Does M$ have a fetish (Score:3, Insightful)
Re:Does M$ have a fetish (Score:2)
Um, excuse me, I'm not trying to look cool when I say "M$".
I use that out of PURE DISRESPECT for a company and a thought process that I utterly despise with the most prejudice and malcontempt that I can muster.
You stand corrected.
Re:Does M$ have a fetish (Score:2, Insightful)
Re:Does M$ have a fetish (Score:4, Funny)
Re:Does M$ have a fetish (Score:5, Funny)
Re:Does M$ have a fetish (Score:2)
Re:Does M$ have a fetish (Score:2)
I've always wondered about this. Why do stacks grow downwards? It seems to me that it wouldn't be any less efficient for them to grow upwards, and growing upwards would have the handy side-effect that buffer overflows would be less likely to be exploitable. Of course, it's a bit late to change how the most popular processors in the world work now...
Re:Does M$ have a fetish (Score:2)
Re:Does M$ have a fetish (Score:2)
Seems like it would be a security win to switch to upwards-growing stacks in future. Or am I missing something?
Re:Does M$ have a fetish (Score:2)
Any system that's written in a language that's vulnerable to buffer overflows, like C or Assembly. Trying to hack a Lisp machine via a buffer overflow is probably pretty futile.
Re:Does M$ have a fetish (Score:2)
Re:Does M$ have a fetish (Score:2, Interesting)
If this was analyzing the MechAssault hack, then you might have a point.
Re:Does M$ have a fetish (Score:2)
Windows is the O$ with insecurity built in..
Re:Does M$ have a fetish (Score:2)
Re:Does M$ have a fetish (Score:2)
If I took a copy of Xbox linux source code and built it from scratch on two boxes,one being an xbox and one being say a ppc based box then ran the same exploit on both boxes that are now running xbox Linux that is compiled for THAT cpu, that the xbox would crack and the ppc box would not, simply because of the CPU??
Re:Does M$ have a fetish (Score:2)
Returning to your example..if you rewrote the exploit in PPC assembler(most exploits like that are hand coded) and PPC was vulnerable, it would work.
DMCA relevant section (Score:5, Interesting)
The article says:
But you may not know the actual section he's referring to. Here it is:
And (a)(1)(A) is the bit that everyone calls to mind when they think of the DMCA:
(full text of DMCA) [eff.org]
IANAL, but I think this means that if you crack the protection on something simply so you can understand (and document) the program so it will work with other programs and files, then that's not considered a violation of the DMCA.
-jh
Online cheating (Score:3)
Eventually, I think all game consoles will have security keys like the Xbox.
Linux is cool, but not every computing device in the world needs to run it. Unlike servers and desktop PCs, game consoles are not mission critical for anything. These Linux hackers should leave the Xbox alone and devote some time to improving X performance on the desktop, or something else useful.
Process of Discovery, not how it works... (Score:3, Interesting)
Discovering an overflow in a controlled environment such as a console is no easy task. Console games don't usually crash - what indicated an overflow was present for exploiting?
After that, exploiting an overflow is really just a menial task. There really are only a few issues to differentiate each case - how long can the exploit string be before it overwrites something critical? Are certain characters not allowed in the string?
Beyond that, exploiting it is simple...
So, anybody know how that particular overflow was discovered?
Re:Process of Discovery, not how it works... (Score:2)
I don't know the details of this particular case, but once you have access to the save data it's easy to tweak things that look like they could cause problems. (Put yourself in the developers' shoes, and ask yourself "if I was rushed to get this out the door, where would I be likely to cut corners?") Text strings are obvious things to play with; some games compress their saved data, so you could create a bogus compressed file that expanded to some huge number of bytes and see if it crashes the game; et ce
Re:I will never understand this. (Score:3, Insightful)
Re:I will never understand this. (Score:2)
'10c8'
Python. Ptuii!
% dc
16o16iAD9 5EF+p
10C8
^D
Re:I will never understand this. (Score:3, Funny)
Re:I will never understand this. (Score:3, Informative)
Re:I will never understand this. (Score:2)
What's interesting about that to me is, that's the way I learned abacus, and I've never considered any other representation of the beads... but until I read your post, I never made the connection between hexidecimal and the abacus.
Once upon a time, I knew division and multiplication algorithms for abacus. Now I'm going to have to dust off those memories and see if I can figure out rotate, shift, xor...
Re:Hexadecimal. (Score:3, Insightful)
Come on.. are we geeks or mice here ?
Re:Spell check (Score:3, Funny)
Re:Umm someone explain! (Score:5, Informative)
Re:What does this hack let you do? (Score:2)
Well, how about running the code of your choice an Xbox? How does that sound? (Hint: it used to be impossible without doing a hardware mod.)
Disclaimer: Since I don't own an Xbox, some of these details are a little sketchy and may be incorrect.
This hack lets you load unsigned software, such as Linux, of your choice onto an XBox, without using a mod-chip or making any hardware mods. Previously, you could only run software that is signed by Microsoft on an Xbox, unless you