The Awful Anti-Pirate System That Will Probably Work
jeff-vogel.blogspot.com
jeff-vogel.blogspot.com
This means a lot of work and expense, both to duplicate Ubisoft's game saving code and to set up and maintain the servers. Won't happen.
I'm not even a very good game hacker, and I've done much more dramatic things. It's really not a huge deal. People have reverse-engineered entire online game protocols in order to have their own unofficial servers before the games were even out of beta. The client<->server model of protection is actually a good thing to cracking and the people who use cracks, since the original binary doesn't need to be modified in any way. You just run a little thing in your system tray that emulates whatever portion of the server protocol it needs to. And now you can also get the official updates from Ubisoft, re-activate with your own fake server any time, etc. It's not a "disable one line of code" type deal, but if you think that's even a simplification of how things have been for a while, that's pretty naive.
This means a hacker has to figure out the saved game format, somehow jam into the application new code to write the saved data and new code to read it, TEST IT, and get it to work.
In most of the cases, there is no need to figure out the game format. Just read the binary data sent to the server and save it. Usually save game files are not that large and I suspect that most games read them at once to the memory.
Again you don't have to write a lot of code to do all these stuff. Just redirect whatever is sent to the Ubisoft server to a local server host in the same machine. This way the user can carry the save file anywhere. This is an added advantage for pirates while legitimate users should rely upon Ubisoft to save their game files for them. Heck, they can even play when the Ubisoft server is down, or even if there is no internet connection.
It's easy for Ubisoft to also force the binary to be cracked: have the client request the server sign a random token with its private key, and verify it with a public key embedded into the client. This way a third party server could only be written if the client was also cracked to either change the key or remove the check.
It's a loss for them either way -- if Ubisoft goes out of their way to add this feature, the effort required by the crackers is proportionally smaller.
I tend to think most of the draconian copyrape is actually internal political maneuvering at these large publishers. Ways for one department to counter another's with figures "look! After implementing xxx DRM scheme in order to prevent loss from copyright infringers in market yyy, total predicted sales volume was not met by zzz! In addition, piracy rates remained at or above zzz1! This proves that our console-focused sales track etc etc" Kind of like how the digital distribution from EA for Crysis actually did not work at all, probably on purpose, for various reasons pertaining to retail and corporate in-fighting (my theory, anyway.)
They probably will not do anything non-trivial for this. It costs money to run servers, and they would have to run much more powerful servers in order to be running game logic for each player. That would eat into revenue, and this game is not even subscription-based.
The point is not to make a game hack-proof. Just to make the time to crack long enough for your purposes. (In this case, it just has to last a few more weeks than ususal.) Safes are rated like this, partly by the worst-case time it takes to break into them. http://en.wikipedia.org/wiki/Safe
EDIT: I see from other posts that AC2 has been cracked since 2 weeks before release. In the case of safes, the laws of physics are on your side. In the case of general purpose Von Neumann architecture computers, the mathematical laws are on the side of the crackers.
In short, if you can execute it, you can read it, therefore you can crack it. To work perfectly, which is equivalent to working at all, DRM needs a "trusted" execution environment supported by hardware. Even a server environment is not going to cut it.
I'm only reacting to the "laws of physics" comment you're making. It's not true that "if you can execute it, you can read it", at least for important definitions of "read" (that include "understand" or "modify"). Take, for an example, white box cryptography.
Some problems clearly favor attackers (executing code on general purpose shared Von Neumann architectures with general purpose operating systems). Other problems favor defenders (the halting problem). It's also the case that, smart as (say) 'DarkShikari is, high-end performance graphics and systems coders are not necessarily expert practical compiler theory people.
Hopefully for it, your (non) answer is not telling.
Basically, WBC is a set of very dedicated obfuscation techniques to implement a cryptographic scheme in a "secure" way.
IMHO, The main disction with "usual" obfuscation is the following:
* Obfuscation is a computer science term that refers to hardening a given application, such that it is difficult to reverse engineer. That is, to make it difficult to understand what functionalities are implemented, and how.
* In white-box cryptography on the other hand, an adverary will know that a specific scheme (such as the AES) is implemented, and how it is implemented: the compiler and program specifications are public; the cryptographic key, and the randomness that is used at compilation-phase is private. This is similar to the Kerckhoffs-principle in cryptography, where the security of a scheme should not break down when the specifications of a scheme are known.
There have been some attempts to formalize white-box cryptography. See https://www.cosic.esat.kuleuven.be/publications/article-1260...
If you have any further questions, feel free to contact me. In the near future, I plan to setup a webpage on http://www.whiteboxcrypto.com where I will adress these issues, and explain how WBC works.
Best regards, Brecht Wyseur
Heh... This is assuming that they do not realize that the more players are connected, the bigger the distributed computing cluster they have available.
Now here's a real challenge: Starcraft 2 beta server
It was already cracked two weeks before release! From a few days ago on Buzz:
Just saw a post on the Steam Forum for Assassin's Creed 2 that the impossible to beat, always online, can't save your game or even play the stupid thing without being connected to the internet DRM for it has already been cracked 2 weeks before its release. sigh Did Ubisoft really expect this to work any better than previous attempts to crack down on piracy? Now what they're left with is a piece of software which is being pirated just as much as any other game, except that it treats its legitimate buyers like they're suddenly going to turn into pirates after they've already bought the game.
(I'm not sure I can name a title that is unplayable cracked because of content protection; I'd broaden my definition to other security objectives besides piracy).
How about identifying someone who plays a cracked game, not immediately but a week or so later? There's all sorts of stuff you could do with that to discourage piracy. It would also be more easily hidden in code. Not sure if any of these strategies are really new, or if they've ever really worked.
The hackers will rewrite the whole game if they have to, to make it free. It might take a little longer for them to release it...but can you honestly name a single game that hasn't been cracked?
Edit 2: One quick question for the "Anything can be cracked
right away." crowd. Where do I get my cracked copy of World
of Warcraft that can play the real game (not some cobbled
together emulation server) without paying. Answer: You can't.And WoW is a web only game. Non-web games don't suffer from that.
All these people talking about 'significant portions of the game running on the server'... are you serious? Do you realise how fast game engines run? People have enough trouble putting up with the lag on multiplayer games with relatively few actors/entities, running on dedicated servers. If this were truly the case, single player games would also be susceptible to lag, not to mention the amount of load of millions of players' AI routines running on Ubisoft's servers. Damn.
No, this will be cracked, patched or emulated, and the only people negatively effected will be legitimate customers. I'd say that would be the exact opposite of the system 'working'.
As the saying goes - I'd love to see you try it!
In order to capture the state of a running application in such a way that it can later be restored, you need, not only the memory contents, but also the processor state. Imagine that the app is in the middle of modifying an in-memory data structure: the variables used while doing that (e.g. loop counters) will likely be stored on the stack and/or in processor registers. Just as an example!
Even assuming you could accurately pause an application and capture its state completely, how do you propose restarting it? You'd need to reinitialise all the external stuff (graphics device, sound, file handles, etc.), then start the application code at exactly the right instruction.
Maybe installing some sort of hypervisor underneath the OS would allow these things? Good luck :-)
Emulators can do all this with impunity because they're virtual machines - a computer running within a computer. The emulator always has complete control over the memory and (virtual) processor state, display, sound devices, etc., and saving/loading that state is therefore much easier.
Yeah, that. It's called a context switch. It works by "captur[ing] the state of a running application in such a way that it can later be restored". I personally have at least 20 friends who have implemented it, as I would assume most college students at strong CS school would.
4. Make it easy to set up your own local game server and alter the hosts file on your machine to point to it.
That is dead easy to do. I actually did it for the game FantasticContraption, not to steal it (it's well worth ten bucks. go try it: http://www.fantasticcontraption.com/), but because their server is so hopelessly overloaded at peak times that the game is unplayable.
Sniff network traffic with Fiddler or similar, construct a simple webapp to mimic what's needed (which for this game would only involve storing what you're given and handing it back when asked for it), and run it on localhost. Sorted.
It'll end up the same as every other copy-protection scheme: An annoyance for paying customers, no sweat for pirates. I suspect legitimate paying customers will be running their own servers too.
Most users probably won't care (remember that we're a disproportionately vocal minority --- or, you are; my job is to make these titles worse for you, and I don't ever play video games), and vendors are going to get users to adapt to concessions like this.
I understand the resentment at these anti-hacking measures given that this is a hacker community but not all companies choose to make their products in the open-source tradition, and that's a perfectly valid choice for them to make.
And you're right, it is a valid choice. Doesn't mean their choice won't be criticized. This also has nothing to do with open source, and everything to do with treating your paying users like criminals. This pic from the other day is perfect: http://t1.xavimg.com/2010/02/piratelegal.jpg
Everyone thinks pirates are fun and romantic until it's their stuff that gets robbed.
I also wouldn't underestimate the tech chops of gamers. These are the guys who overclock hardware, do case mods... just because they're not hardcore hackers doesn't mean they don't understand or care about these issues.
I only notice Apple's DRM in iTunes when I have to de-authorize an old computer or authorize a new one, which is only once or twice a year at most.
Publishers have it in their head that piracy equals lost sales. It's this belief, that DRM can recapture those sales, that is pushing them in this direction.
http://origin.arstechnica.com/news.media/video-game-sales-1....
Rightly or not, PC game makers have it in their heads that piracy is killing their business. I can see it both ways: On one hand, I find it hard to believe that not even a small fraction of computer game pirates would purchase more games if they couldn't easily steal them. But I also wonder if declining PC sales aren't just a byproduct of the "serious" gamers' shift towards preferring console games.
Regardless, the market for PC game sales has flatlined, and Ubisoft is trying desperately to jumpstart it by enacting a system that makes piracy significantly more difficult, at least for a little while. I'm sure they'll use the 3-4 months of nearly-zero piracy rates as a yardstick with which to measure the potential of the industry sans piracy. It will be interesting to see if you're right.
Or maybe the complete opposite: Casual gamer's are a much bigger audience than serious gamers. And PC games tend to be more serious. So the shift could be explained in this way, too.
(Just a hypothesis. Your argument has more going for it.)
And, frankly, none of that matters. All that matters is that publishers believe DRM can turn would-be pirates into customers. It's a belief that's never been borne out by the data. But still they try.
Whether their cause is noble, or reasonable, or justified is irrelevant. It's their belief that DRM is worth-while that causes DRM. Not piracy. Not sales.
This seems like a great solution.
(I would prefer that reality works this way. I am a big fan of 2D Boy for one.)
As the restrictions get more onerous and the hoops get higher, smaller, and set aflame, piracy will not go down.
Normally, this is a pretty easy process, but Tranformers 2 apparently has a rather aggressive copy prevention scheme that seems to defeat most DVD rippers. I finally found a ripper that would rip it successfully, but not until after I came very close to returning the damn DVD to the store after a friend at work showed me that the Pirates Bay had not only the full DVD version of Transformers 2 available for download, but the god damn Blue Ray version as well! It would have been easier for me to pirate the damn movie than to format-shift my legitimately purchased copy.
Many people seem to want to use legitimate channels; the industry needs to realize that discouraging them is not the answer.
However, even if it did cost less, I guess most people would still rather try to get it for free, rather than having to pay anything at all.
Besides, this makes justifying PC gaming and the PC as a games platform even more difficult. Especially considering that the xbox 360 and Playstation 3 have already had this game for a while and don't have this DRM system.
Shame, seems like a good game.
a) You don't need to maintain a public facing save game server -- you simply need to have a local server running at localhost:31337. A successful crack will have this running transparently as you run the game.
b) Many companies entire purpose is to provide "uncrackable" DRM. AFAIK, all of these companies' solutions have failed. Often before the games even publicly ship.
I mean, at the very least, a script kiddie will naively crack the protocol and manually generate save files from each of the levels, so that you can play the game one area at a time. I am confident that it will be properly cracked though. Or as someone else on HN mentioned: you could ship the crack with a light virtual machine and just save states of the entire VM.
There is a huge incentive to crack the game, both monetarily for pirates who will be reselling the game, as well as for the huge prestige for cracking groups. I am not aware of any high-profile game that has not been cracked within a week of release, if not days.
So, I'm not convinced that making video games cheaper is the answer...
People still argue that $1 is too much for music, like somehow in teh internets that dollar is worth 100x more than the real world where it gets you close to nothing.
OT: For rick888, below: it seems that all your comments are marked as dead... which is a pity because from reading your past comments I can't figure why you'd be banned... You should try to contact pg over that.
Selling everything around $30 would probably mean games would have to make do with smaller development budgets.
Normally, I wouldn't touch this with a five-foot pole, given that it puts me at the mercy of them having their servers up to give me a new license just to play my own game. But they did something really reasonable:
After 9 months or so, they released a patch to remove the DRM.
That seems like a reasonable compromise to me.
"Also, you don't hold onto your saved games anymore. They do."
I'm surprised at how many people are making this mistake. Straight from the FAQ: "Will all my saved games be stored online? Yes! They will be stored both online and on your PC." -- http://support.uk.ubi.com/online-services-platform/
That, right there, is why the system will fail. The DRM will be cracked within a week of release.
My guess is that they'll make less money. Even if a some people buy the game instead of pirating it, the abysmal reviews on Amazon will have a stronger effect.
OR they'll still blame piracy and try to make it even harder. until it's nothing more than a streaming webcam pointed at a TV playing it on an xbox.
Somewhat off-topic but: AC2 is pretty much the game AC1 promised but never delivered.
IMO, most game will go towards becoming MMOG or be played online anyway, people will just get craftier at having pirate servers running.
However Jeff vogel's conclusion is still valid:
"But they are engaged in a grand experiment. They are seeing if an adequately pirate-proof game can make money. Will keeping cracked copies off the Torrents for a month make extra sales? And enough extra sales to make writing PC games worthwhile?"
1. Make your own, free saved game server and alter the application code to use it.
This means a lot of work and expense, both to duplicate Ubisoft's game saving code and to set up and maintain the servers. Won't happen.
Ragnarok Online private servers anyone?But have you seen how many 3rd-party hosts there are for many MMORPGs, some built by hand to mimic the original servers? Requiring a server connection does not stop piracy, it just annoys people.
However, it's important to always remember that a pirated copy doesn't equal a lost sale. Many people download a game, but never install it or play it. Others download and play it, but if they couldn't have downloaded it, they would never have played it. And finally, there's a percentage of downloaders that would have bought it if they hadn't gotten a pirated version first.
It will be interesting if this experiment by Ubisoft can determine how large that percentage is. It's definitely not 100%, and it's definitely not 0%. I would guess that it's a single-digit percentage of the people that would normally pirate a game that could go and buy it instead.
However, this new DRM is so vile, that they will also lose sales on it, and I wonder if the sales they gain from delaying the pirating of it is larger than the sales they lose from having a horrible DRM.
http://www.joystiq.com/2008/11/13/world-of-goo-has-90-piracy...
Lastly, there is also the (likely small) category of those who pirate and later buy the game once the price comes down. Many games drop to $5-$10 on Steam after a year or two, which is rather enticing even to a pirate.
Office, and plenty of other desktop software will nag you relentlessly until you "Activate your copy online".
This is especially annoying for people like me, who spend months at a time off in the sticks where there may be occasional generator power but there certainly is no internet.
Just a few weeks ago, I "activated" my copy of CodeSmith with 5 days to spare (out of 30). If I had had to make a special trip to a city just to do it (which from the pacific coast of Colombia would have required a flight), I would have been pretty upset with that company.
One would think the software industry / computer games industry has learned something from the fates of the music and film industries. When their sales declined they put DRM into their products. When that didn't help they made the DRM systems more draconian. And, unsurprisingly, the customers hated it and their sales declined faster. But the software industry / computer games industry seems to be unable to understand this lesson.
But DRM that makes your game suck whenever your internet connection is flakey - that's going to make paying customers very angry, very quickly. It's a terrible idea.
They wouldn't do that would they?
I paid $80 for a game and they turn it off when they have a more profitable replacement.
You hang 'em from the yardarm as a warning to others, and then you burn their ships to the water line.
Pardon? Oh, you mean the OTHER kind of piracy.