World of Warcraft protocol information (specifically, encryption algorithm?)

Started by
19 comments, last by hplus0603 17 years, 2 months ago
Yeah, Copyrights are easy to get around if you use the right techniques, though there are still undefined legal boundaries about the reverse engineering of encryptions used for privacy. As mentioned, using a chinese wall technique is an sure way to avoid the legal troubles with copyrights. Copyrights aren't the problem, it's patents that are more well defined. Patent's can prevent you from creating derivative works even if they're completely independent of the original implementation. These would prevent you from having direct clones in an emulator, for which you'd have to discard or modify the client to overcome (which is also a legal issue). There are plenty of patent's used in the WoW protocol and the game virtualisation.

You also need to consider how you would connect the client to your emulator without modifying it. If it uses DNS to retreive the address, you're in luck, as it's a simle HOSTS edit. Otherwise, you're probably gonna wind up modifying client files, unless you wanna go for a more complex route involving the Winsock SPI. It's not a good idea to blatantly advertise that you edit game files if you're already on the border of legality with the emulator.

A word on the Terms of Service. This IS a legal contract, and it can be used in a court (although, their have been few successful cases). The first things you need to make sure of is that you must actively agree to the contract and that it is validated by means of a registered email/home address. I've seen instances where you can navigate directly to a sign-up page to avoid reading the ToA, or ones that aren't validated through email. These are practically useless, as there's no evidence that you agreed to it ever. If you read the WoW ToS, you'll see it's governed by CA law. Most games are, because the laws offer protection for the developers.

Also, I'm no lawyer myself, but I've been involved in the server emulation seen in the past, and understand a fair amount of the legal issues surrounding it. There are some borders which you can definately not cross, but most of them aren't well defined, and if you can find part of the contract/system or laws to exploit, make the best of it.

I would still consider this thread off-topic to this forum. While I agree protocol discussion is welcome here, an encryption algorithm is hardly network related. These kind of topics are usually kept in private/underground forums as to avoid the popularity and legal issues surrounding it. If this site is seen as a welcome place for game crackers, there'll be alot of hassle surroinding it, you'll also have the idiots who might find it in google if they mix "WoW" and "Hack" in the same search, in that case you'll have a plethora of rediculous questions you didn't think any human was stipud enough to possibly ask.

There's also a couple of paragraphs in the ToU of this site that outline discussion of anything that may infringe on intellectual property rights. I think this clause is there to avoid exactly this kind of discussion.
Advertisement
Click through agreements are as about as binding as a very non-bindy thing. Think it hinges on being entitled to play the game after the contract was established at point of sale. email reg and continual billing systems is likely a different kettle of fish and in those cases updating the ToA after the initial agreement would be usless, it's beyond reasonable expectation for you to review the text every time you log on. [dependant on country of residence etc] Play nice and none of that'll be a problem

Anyway, sure that WOW uses a custom protocol for some of it's comms. Probably just the login right enough. I'm sure google must know
Quote:Original post by TehDonutGuy
There's also a couple of paragraphs in the ToU of this site that outline discussion of anything that may infringe on intellectual property rights. I think this clause is there to avoid exactly this kind of discussion.

You have to consider that basicully anything "may infringe on intellectual property rights". Writing a Tetris clone might infringe on someones rights. Yet it is a pretty common starting point, and recommended in gamedev.net beginner articles.

With all the EULAs etc people agree to when they install applications they most likely break a lot of them every time they post on gamedev.net. Bragged about how one of your algorithms run faster in .NET? The .NET EULA actually forbids you to make "benchmarks" avaible.

I have even seen software who tries in their EULA to forbid the user to create similar applications, as they fear the open source movement.

What I try to say is that if discussing anything that might infringe on someones intellectual property rights was totally forbidden on gamedev.net, then this website would no longer exist. A lot of companies, and people in general seem to believe they have more rights to their work than they actually have.

It is like when I asked my professor, "Why doesn't commercial software developers credit their sources?". "They are, unlike academic world, afraid to be sued", he replied.

Edit: It is most likely wrong to make a WoW emulator. Atleast ethically and probably illegal as well. However I think discussing what rights we have as software developers is something that should be done more often, and open. People scared of reusing others ideas/concepts probably hurt the gamedev/software community more than what might be apparant.
Quote:A group of gamers reverse engineered the network protocol used by Battle.net and Blizzard games, and released a free (under the GNU GPL) Battle.net emulation package called bnetd. With bnetd, a gamer is not required to use the official Battle.net servers to play Blizzard games.

In February of 2002, lawyers retained by Blizzard threatened legal action under the Digital Millennium Copyright Act against the developers of bnetd. Blizzard games are designed to operate online exclusively with a set of Blizzard-controlled servers collectively known as "Battle.net". Battle.net servers include a CD key check as a means of preventing software piracy.

Despite offers from the bnetd developers to integrate Blizzard's CD key checking system into bnetd, Blizzard claims that the public availability of any such software package facilitates piracy, and moved to have the bnetd project shut down under provisions of the DMCA. As this case is one of the first major test cases for the DMCA, the Electronic Frontier Foundation became involved, for a while negotiations were ongoing to resolve the case without a trial. The negotiations failed however, and Blizzard won the case on all counts: the defendants were ruled to have breached both StarCraft's End User License Agreement (EULA) and the Terms of Use of Battle.net.

This decision was appealed to the Eighth Circuit Court of Appeals, which also ruled in favor of Blizzard/Vivendi on September 1, 2005.


From Wikipedia
http://blog.protonovus.com/
The initial communication is unencrypted and uses a modified version of SRP6 for password verification and key exchange. Following packet headers are encrypted with RC4. At least this is correct if my memory serves me right. In order to write a server you'll need to do some heavy reverse engineering or find a document written by someone who has done the reverse engineering. There are papers available but I don't have a link handy.
Thanks for all the info so far! :) In particular, thanks to asp_ and TehDonutGuy for providing very helpful information that is very relevant to the original post. However, I would also like to thank everyone else for joining in, and please don't hesitate to voice your opinion in this thread if you feel like it - seems like this forum definately needed a debate on this particular topic.
_______________________Afr0Games
Donut: unless you're a lawyer, please don't attempt to give legal advice.

Regarding the Wikipedia case: it only states that they won the civil claims, not that they were actually found to infringe the DMCA. I'm not familiar with the details of the case, but it'd be interesting if they could claim such broad protection of "facilitating" piracy -- in that case, taping over the write protect hole on a floppy disc might "facilitate" piracy, too, as you can write pirated data onto that floppy.
enum Bool { True, False, FileNotFound };
Unless you're a lawyer, don't contradict my legal advice. Isn't it the same thing?

My opinons aren't just spun up, there is reasoning/evidence behind them. The reason I've not posted protocol information here is because I'm cautious about the legality. I'm not all-knowledgeable about this issue, and I don't believe you are either.

I don't expect for people to take what I say as fact. I believe anyone serious enough would do their own research into it rather than relying on the opinions of a single community. I mean for my posts to inform on certain issues rather than describe them intently. I do welcome any contradictions on my opinions about it, and would be more than interested to hear other peoples.

What I'm trying to avoid doing unlike some of the other posters, is giving people the false sense of security that what they are doing is completely legal, because it definately is not.

If you encounter a legal threat because you were overconfident about the legality of your emulator, then it's a good assumption that you have no chance of affording the legal expertise that a multi-million dollar company can (In the case of Blizzard, a billion dollar company?). I personally would consider every angle possible to avoid the possibilty of that scenario.

If WoW uses open encryption standards as suggested here, then I guess it's fine to belong in this forum, but some other patented information probably doesn't, because Blizzard would request it's removal if they were informed, and it's then a legal responsability of gamedev to remove it. I don't wanna insinuate that nothign should be posted, just, better to check the legal issues before doing so.

@RdF: Do some research before posting potentially fallacious arguments. Follow the example of swordfish.

@Ranor:
You have valid points on the IP rights. I think the clause here at GD is aimed at protecting gamedev (and yourselves) from legal bother by monitoring the amount of IP rights. If a simple game like tetris was being discussed as a clone (lets, for arguments sake say it's a recent, commercial, simple game for a cell phone or such), and the owner of the IP rights was aware of the discussion, they could request it be removed and it would be GDs legal responsability to do so. You can't really compare WoW to something as outdated as tetris that doesn't have the protective developer behind it.

I definately think the legal issue should be kept open for discussion, but it extends alot further than just WoW. It should really be in it's seperate thread and the WoW thread be left open for those who aren't too concerned about being law-abiding.
Let me begin by asking that this thread not be closed. I believe that it is a discussion of a valid topic in which I and others might learn something.

Now, IANAL , nor do I play one on TV. But I have learned enough to be dangerous (by reading Groklaw), so, if you want real legal advice, go ask Slashdot.

Humor aside...

The best place to begin looking for info about the bnetd case would be:
The Electronic Frontier Foundation, Analysis of BNETD and Blizzard and From Ars Technica: "broke Blizzard's EULA, which bars users from reverse-engineering the software. In addition, the court also upheld the lower court's finding that BnetD violated the DMCA's prohibition against circumventing software antipiracy measures"

Search for reverse engineering here.

For more about the enforceability of click through EULAs, search about half way down for "orders the case to be moved to arbitration". Another good article from EFF is "A User's Guide to EULAs"

Almost there....

Now, I recall reading about a background process, Warden, that Blizzard runs on machines that looks for cheating in Wow. If you are interested in that, go search on "Greg Hoglund", the author of the book "Rootkits" who released KEEPING BLIZZARD HONEST - Announcing the release of 'The Governor' (and the reason to read this site is to learn to write a better Warden for your own game)

Now, having gotten all that out of the way, for the sake of this academic discussion, let's assume that no one is trying to cheat, steal or otherwise do something bad or illegal. If I recall correctly, making an emulator (reverse engineering, remember IBM and Compaq?) is not in and of itself illegal. How might someone go about learning how to debug the data communications to build an emulator as a first step towards building their own client/server game?

And finally, really, if you want to make an emulator, seek advice from a real lawyer.

Bill



In regard to the original topic, these guys seem to have gotten it working already...

This topic is closed to new replies.

Advertisement