Deutsch:
Dieses Programm ist als 'warden client' bekannt. Es ist mit ortsunabhängigem shellcode zu vergleichen. Es wird während dem Verbinden mit den Blizzard Servern heruntergeladen und etwa alle 15 Minuten ausgeführt. Der 'warden client' ist wohl eins der interessantesten Spyware Programme momentan weil es nur dazu dient die Einhaltung der EULA/TOS sicherzustellen. Hier nun was es alle 15 Sekunden bei ca. 4.5 Mio Menschen (500.000 gleichzeitig eingelogten) bewirkt:
Der 'warden' dumped alle DLLs welche einen ToolHelp API call benutzen. Er liest Informationen aus jeder DLL welche sich im 'World of Warcraft' executable Prozessraum befindet. Nichts Schlimmes!
Der 'warden' benutzt nun die GetWindowTextA Funktion um den Fenstertext jedes Fensters auszulesen. Diese Fenster sind keine Fenster innerhalb des WoW Prozesses, sondern Fenster von allen anderen Programmen die momentan auf dem Computer ausgeführt werden. Das ist das Schlimme!
Ich habe beobachtet wie der 'warden' die email Adressen von Leuten mit welchen ich mich via MSN unterhalten hatte, die URLs von verschiedenen Webseiten die ich zu der Zeit offen hatte und die Namen aller meiner laufenden Programme gesniffed hat. Diese Zeichenketten können leicht vertrauliche gesellschaftsrelevante sowie Kreditkarteninformationen beinhalten, wenn ich zum Beispiel Excel oder Quickbooks mit meinen persönlichen Finanzen nebenbei offen habe.
Nachdem diese Zeichenketten ausgelesen wurden werden sie durch eine Hashfunktion geschickt und mit einer Liste von 'gebannten hashes" verglichen - wenn sich dort etwas mit Blizzards Liste deckt denke ich dass du gebannt wirst. Wenn du beispielsweise ein Fenster namens 'WoW!Inmate' offen hast - egal was dieses Fenster wirklich tut, könnte es in einem Ban resultieren. Wer das nicht glaubt, kann gern ein dummy Fenster mit diesem Titel erstellen und dann WoW starten - es wird letztendlich so enden dass der 'warden' dich als Cheater meldet. Ich glaube wirklich dass das Auslesen dieser Fenster die Privatsphäre verletzt wenn man beachtet dass Fenstertitel viele persönliche Daten enthalten. Aber, wie wir es schon kennen hält Blizzard nicht viel von Privatsphäre. Schaut euch einfach an was sie mit Leuten gemacht haben die versucht haben den BNetD, freecraft oder Drittanbieter WoW Server zu machen.
Als nächstes öffnet der 'warden' alle Prozesse welche auf dem Computer laufen. Nachdem jedes Programm geöffnet wurde ruft 'warden' die ReadProcessMemory Funktion auf und liest ein Paar Adressen (für gewöhnlich im Bereich um 0x0040xxxx oder 0x0041xxxx) Dies ist Der Bereich in dem die meisten ausführbaren Programme in Windows ihren Code ablegen. 'Warden' liest in etwa 10-20 Bytes in jedem Testdurchlauf und hashed diese Ergebnisse erneut wobei die hashes abermals mit einer Liste gebannter hashes verglichen werden. Diese Tests sind eindeutig darauf zugeschnitten bekannte Drittanbietersoftware zu erkennen wie z.B.: wowglider oder friends. Es wird aus jedem Prozess auf diese Art und Weise gelesen. I habe zusehen müssen wie 'warden' mein Email Programm und sogar meinen PGP Manager öffnet. Nochmal, ich denke dies ist eine starke Verletzung der Privatsphäre, aber was kann man tun? Es ist ziemlich einfach mit einem Test nachzuweisen dass der 'warden' vertrauliche oder persönliche Informationen ohne Rücksicht ausliest.
Dieses Verhalten ordnet den 'warden' eindeutig in die Kategorie Spyware ein. Der interessante Fakt daran ist, dass dies womöglich die erste EULA-konforme Benutzung von Spyware sein könnte. I kann mir nicht vorstellen dass solche Praktiken zukünftlich noch legal sein werden aber momentan ist dies rechtlich gesehen der wilde wilde Westen. Man kann Blizzard keine Schuld für den Versuch zuschieben, genauso wenig irgendeiner anderen Firma, aber so kann es nicht weiter gehen, wenn wir noch etwas Hoffnung in Datenschutz stecken wollen. Vom Zuspruch für Botter oder Cheater mal abgesehen...dies ist ein weitaus größeres Thema namens 'Datenschutz' und Blizzard hat nicht das recht meine Excel oder PGP Programme zu öffnen, egal aus welchem Grund.
English:
This software is known as the 'warden client' - its written like shellcode in that it's position independant. It is downloaded on the fly from Blizzard's servers, and it runs about every 15 seconds. It is one of the most interesting pieces of spyware to date, because it is designed only to verify compliance with a EULA/TOS. Here is what it does, about every 15 seconds, to about 4.5 million people (500,000 of which are logged on at any given time):
The warden dumps all the DLL's using a ToolHelp API call. It reads information from every DLL loaded in the 'world of warcraft' executable process space. No big deal.
The warden then uses the GetWindowTextA function to read the window text in the titlebar of every window. These are windows that are not in the WoW process, but any program running on your computer. Now a Big Deal.
I watched the warden sniff down the email addresses of people I was communicating with on MSN, the URL of several websites that I had open at the time, and the names of all my running programs, including those that were minimized or in the toolbar. These strings can easily contain social security numbers or credit card numbers, for example, if I have Microsoft Excel or Quickbooks open w/ my personal finances at the time.
Once these strings are obtained, they are passed through a hashing function and compared against a list of 'banning hashes' - if you match something in their list, I suspect you will get banned. For example, if you have a window titled 'WoW!Inmate' - regardless of what that window really does, it could result in a ban. If you can't believe it, make a dummy window that does nothing at all and name it this, then start WoW. It certainly will result in warden reporting you as a cheater. I really believe that reading these window titles violates privacy, considering window titles contain alot of personal data. But, we already know Blizzard Entertainment is fierce from a legal perspective. Look at what they have done to people who tried to make BNetD, freecraft, or third party WoW servers.
Next, warden opens every process running on your computer. When each program is opened, warden then calls ReadProcessMemory and reads a series of addresses - usually in the 0x0040xxxx or 0x0041xxxx range - this is the range that most executable programs on windows will place their code. Warden reads about 10-20 bytes for each test, and again hashes this and compares against a list of banning hashes. These tests are clearly designed to detect known 3rd party programs, such as wowglider and friends. Every process is read from in this way. I watched warden open my email program, and even my PGP key manager. Again, I feel this is a fairly severe violation of privacy, but what can you do? It would be very easy to devise a test where the warden clearly reads confidential or personal information without regard.
This behavior places the warden client squarely in the category of spyware. What is interesting about this is that it might be the first use of spyware to verify compliance with a EULA. I cannot imagine that such practices will be legal in the future, but right now in terms of law, this is the wild wild west. You can't blame Blizz for trying, as well as any other company, but this practice will have to stop if we have any hope of privacy. Agree w/ botting or game cheaters or not, this is a much larger issue called 'privacy' and Blizz has no right to be opening my excel or PGP programs, for whatever reason.
greetz g0d