|
You last visited: Today at 17:04
Advertisement
Easy Emu 3.35a
Discussion on Easy Emu 3.35a within the WoW Private Server forum part of the World of Warcraft category.
02/05/2013, 04:22
|
#1
|
elite*gold: 0
Join Date: Apr 2008
Posts: 45
Received Thanks: 3
|
Easy Emu 3.35a
Ich hoffe ich verstoße jetzt nicht gegen alle Regeln
Da ich selbst keinen Plan habe was Server erstellen usw angeht bin ich über folgenden Link gestolpert.
Es handelt sich um einen "Super Simplen Server" mit Trinity Core für WoW 3.3.5a
Ich habe ca 10 min gebraucht dann war nicht nur der Server inc Maps heruntergeladen sondern auch funktionstüchtig (Windows 7 64Bit).
Hoffe es hilft dem ein oder anderen. Möchte darauf hinweisen das ich weder mit der Entwicklung oder dem Team dieser Seite etwas zu tun habe. Daher keine Supportanfragen an mich
Viel Spaß damit
|
|
|
02/05/2013, 14:03
|
#2
|
elite*gold: 44
Join Date: Oct 2009
Posts: 255
Received Thanks: 26
|
Ist das nicht Novo´´s Easy Handler ?!
Der wird doch glaube garnicht mehr geupdatet.
|
|
|
02/05/2013, 14:16
|
#3
|
elite*gold: 0
Join Date: Feb 2013
Posts: 26
Received Thanks: 8
|
Da hast du recht, wie Novo bereits auf seiner Website gepostet hat, ist das Projekt tot. Das heist also es wird nichtmehr Geupdatet etc.
|
|
|
02/05/2013, 14:20
|
#4
|
elite*gold: 44
Join Date: Oct 2009
Posts: 255
Received Thanks: 26
|
Aber ich glaube das ganze WoW Privatserver System ist doch schon sogut wie Tot ich habe das zwar alles schon seit 1-2 Jahren nicht mehr verfolgt aber trotzdem seh ich keine Server die wirklich Up to Date sind nichtmal in die nähe eines aktuellen Patches kommen.
|
|
|
02/05/2013, 14:30
|
#5
|
elite*gold: 0
Join Date: Feb 2013
Posts: 26
Received Thanks: 8
|
Was soll daran bitte tot sein ?
Es gibt erfolgreiche Server und Server wo eben nichts können.
|
|
|
02/06/2013, 15:14
|
#6
|
elite*gold: 44
Join Date: Oct 2009
Posts: 255
Received Thanks: 26
|
Naja Erfolgreich liegt im Auge des Betrachters.
Ich mein damit nur das es keine Server wirklich gibt die auf den Aktuellen Stand sind wie der Offizielle Server bei Blizzard und falls doch sind Tausende Bugs nicht auszuschließen.
|
|
|
02/06/2013, 16:16
|
#7
|
elite*gold: 55
Join Date: Oct 2009
Posts: 5,471
Received Thanks: 1,479
|
Quote:
Originally Posted by Raz3L
Naja Erfolgreich liegt im Auge des Betrachters.
Ich mein damit nur das es keine Server wirklich gibt die auf den Aktuellen Stand sind wie der Offizielle Server bei Blizzard und falls doch sind Tausende Bugs nicht auszuschließen.
|
Darf ich dich Fragen, ob du Windows 8 sowie Android 4.1 nutzt?
Falls nicht, darf ich dann wissen, warum du denn nicht das Neuste vom Neusten nutzt? Ist es vielleicht trotzdem noch gut genug?
|
|
|
02/06/2013, 23:57
|
#8
|
elite*gold: 44
Join Date: Oct 2009
Posts: 255
Received Thanks: 26
|
Das ist kein vergleich.
|
|
|
02/07/2013, 00:49
|
#9
|
elite*gold: 0
Join Date: Mar 2011
Posts: 535
Received Thanks: 202
|
@Raz3L
Wie dir ja, aufgrund deines umfangreichen Wissens, bekannt sein dürfte waren die Opcodes und die damit übermittelten Daten bis 335a recht einfach herauszufinden gewesen.
Alles blieb in etwa gleich und man brauchte im groben immer nur die Spielmechanik anpassen.
Dieses ist ab Cataclysm nicht mehr der Fall, dort werden mit dem Patche die Opcodes neu angeordnet (ferner baut der Client immer eine zweite Verbindung zu einem zweiten Server auf, der dir einen Chat, Questtexte, NPC-Texte, etc bereitstellt).
Es sind zwar nur rund 65000 dieser Opcodes, aber raten ist hier nicht drin.
Also muss diese Opcodes erst sniffen, leider ist diese Arbeit sehr mühselig und setzt eine Menge Wissen über das Proto voraus und man braucht natürlich solide Grundkenntnisse in Assembler oder naja man kann auch wild raten, wenn man den Client decompiliert vor sich liegen hat.
Das ganze war bis 434 noch relativ leicht, ab 434 hatte Blizzard aber noch bitshifting mit eingesetzt und ab hier wirds richtig hässlich, denn nun muss man auch schauen was die einzelnen Bits bewirken.
Sowas hält natürlich eine Entwicklung ungemein auf...
|
|
|
02/07/2013, 03:13
|
#10
|
elite*gold: 44
Join Date: Oct 2009
Posts: 255
Received Thanks: 26
|
Quote:
Originally Posted by Kent_Brockman
@Raz3L
Wie dir ja, aufgrund deines umfangreichen Wissens, bekannt sein dürfte waren die Opcodes und die damit übermittelten Daten bis 335a recht einfach herauszufinden gewesen.
Alles blieb in etwa gleich und man brauchte im groben immer nur die Spielmechanik anpassen.
Dieses ist ab Cataclysm nicht mehr der Fall, dort werden mit dem Patche die Opcodes neu angeordnet (ferner baut der Client immer eine zweite Verbindung zu einem zweiten Server auf, der dir einen Chat, Questtexte, NPC-Texte, etc bereitstellt).
Es sind zwar nur rund 65000 dieser Opcodes, aber raten ist hier nicht drin.
Also muss diese Opcodes erst sniffen, leider ist diese Arbeit sehr mühselig und setzt eine Menge Wissen über das Proto voraus und man braucht natürlich solide Grundkenntnisse in Assembler oder naja man kann auch wild raten, wenn man den Client decompiliert vor sich liegen hat.
Das ganze war bis 434 noch relativ leicht, ab 434 hatte Blizzard aber noch bitshifting mit eingesetzt und ab hier wirds richtig hässlich, denn nun muss man auch schauen was die einzelnen Bits bewirken.
Sowas hält natürlich eine Entwicklung ungemein auf...
|
Wie lange gibt es jetzt Cataclysm ? 2-3 Jahre ?
Meinste nicht das die Leute die sich um diese Projekte gekümmert haben das in dieser Zeitspanne hinbekommen hätten ?
Ich denke das die Leute einfach zu wenig Interesse an den Privatservern von WoW haben.
Deshalb wird sich wohl keiner mehr diese Mühe machen. Schade eigentlich da viele Projekte die mit eigenen Ideen schon geschmückt waren.
|
|
|
02/07/2013, 07:04
|
#11
|
elite*gold: 55
Join Date: Oct 2009
Posts: 5,471
Received Thanks: 1,479
|
Quote:
Originally Posted by Kent_Brockman
@Raz3L
Wie dir ja, aufgrund deines umfangreichen Wissens, bekannt sein dürfte waren die Opcodes und die damit übermittelten Daten bis 335a recht einfach herauszufinden gewesen.
Alles blieb in etwa gleich und man brauchte im groben immer nur die Spielmechanik anpassen.
Dieses ist ab Cataclysm nicht mehr der Fall, dort werden mit dem Patche die Opcodes neu angeordnet (ferner baut der Client immer eine zweite Verbindung zu einem zweiten Server auf, der dir einen Chat, Questtexte, NPC-Texte, etc bereitstellt).
Es sind zwar nur rund 65000 dieser Opcodes, aber raten ist hier nicht drin.
Also muss diese Opcodes erst sniffen, leider ist diese Arbeit sehr mühselig und setzt eine Menge Wissen über das Proto voraus und man braucht natürlich solide Grundkenntnisse in Assembler oder naja man kann auch wild raten, wenn man den Client decompiliert vor sich liegen hat.
Das ganze war bis 434 noch relativ leicht, ab 434 hatte Blizzard aber noch bitshifting mit eingesetzt und ab hier wirds richtig hässlich, denn nun muss man auch schauen was die einzelnen Bits bewirken.
Sowas hält natürlich eine Entwicklung ungemein auf...
|
Nunja wie es mit dem Emulieren vom Streamserver aussieht weiss ich nicht, aber für die ändernden Opcodes passt doch ein Pattern wie die Faust aufs Auge.
Ausser vielleicht beim login greift doch alles auf NetClient__Send2 zu - hier haben wir also schon einen fixen wert für unser Pattern.
Der Rest ist dann eben fleissarbeit, welche man jedoch nur einmal machen muss.
Beim Bitshifting denke ich, dass es genauso geht. Ich hab es mir zwar nicht angeschaut, aber vermutlich ist auch dieses nicht dynamisch und somit auch mithilfe von Patterns auszulesen.
Korrigier mich bitte, falls da ein Fehler in meiner Denkweise ist
|
|
|
02/07/2013, 10:51
|
#12
|
elite*gold: 44
Join Date: Oct 2009
Posts: 255
Received Thanks: 26
|
Ich kann dich in dieser Sache nicht korrigieren da ich mich nicht so stark mit den ganzen Privatserver zeugs beschäftigt habe. Ich denke einfach mal es könnte schnell gehen mit den Servern aber es ist es nicht mehr wert für die meisten deswegen gibt es nix neues so.
|
|
|
02/07/2013, 11:37
|
#13
|
elite*gold: 55
Join Date: Oct 2009
Posts: 5,471
Received Thanks: 1,479
|
Quote:
Originally Posted by Raz3L
Ich kann dich in dieser Sache nicht korrigieren da ich mich nicht so stark mit den ganzen Privatserver zeugs beschäftigt habe. Ich denke einfach mal es könnte schnell gehen mit den Servern aber es ist es nicht mehr wert für die meisten deswegen gibt es nix neues so.
|
Ich hab Kent zitiert..
|
|
|
02/07/2013, 14:17
|
#14
|
elite*gold: 0
Join Date: Mar 2011
Posts: 535
Received Thanks: 202
|
Leider muss man diese Fleißarbeit bei jedem Patch neu machen, denn es die Opcodes werden augenscheinlich zufällig innerhalb der Range angeordnet.
Quasi mit jedem neuen Patchstand gibt es eine neue Liste mit den Nummern/Adressen für die Opcodes und die zu finden ist richtig nervig.
Grundlegende Opcodes sind schnell ausfindig zu machen, jedoch fehlen dann die Opcodes die WoW erst ausmachen (Gilden, Gruppen, PhasenEffekte, TerrainEffekte, etc.).
Das Bitshiftting selbst ist im Moment nur ein ein Problem und wenn Blizz nicht wieder in ihren Zauberkasten greifen wird es auch eine fast einmalige Sache sein die man anpassen muss.
(Ich kann sogar Blizz verstehen warum sie das gemacht haben, so spart man Platz und Traffic.
Denn wenn man ein Bit in einem Byte ändert und noch 7 Bits mit weiteren Funktionen versieht ist das definitiv weniger Platzverbrauch, als ein Komplettes Byte zu verschwenden nur weil man mal einen Bool da rein packen will.)
Der "Streamserver" selbst nutzt interessanterweise die gleichen Codes um Daten mit dem Client auszutauschen, leider möchte der Client einen Key (oder hash) haben um ihn mit seinen gespeicherten vergleichen zu können. (Kryptografie war nie meine Stärke, bitte mich jetzt nicht auf dieser Aussage festnageln)
Leider hat man den Key vom Server nicht, dementsprechend kann man diesen Streamserver nur emulieren, wenn man den Check abschaltet.
Weil nun aber die Opcodes sowieso die selben wie die anderen sind, ist das ganze aber recht egal, man überlistet einfach den Client indem man entweder in der Exe oder mittels einen Wrapper diese Verbindung zur 127.0.0.1 leitet.
Nun kann die normale Emu beide Server emulieren und dem Client juck es nichtmal xD
Quote:
Originally Posted by Raz3L
Ich kann dich in dieser Sache nicht korrigieren da ich mich nicht so stark mit den ganzen Privatserver zeugs beschäftigt habe. Ich denke einfach mal es könnte schnell gehen mit den Servern aber es ist es nicht mehr wert für die meisten deswegen gibt es nix neues so.
|
Neues gibt es schon, nur werden diese Entwicklungen immer mehr von den Projekten selbst bestimmt.
Der Grund liegt in dem P-Server-Boom vor ein paar Jahren, also die Zeit wo jeder Napp von nebenan so einen Server aufgesetzt hatte nur um seiner selbst in Uber-Pro-l33t-Admin-Lich rücken zu können, aber keine Ahnung von irgendwas hatte und somit zwar gerne geleecht hatte, aber nicht der Comm zurückgab.
Was passiert wenn man das macht kann man sich denken...
Irgendwann sagen viele: "Wir haben keinen Bock mehr." und geben halt nichts mehr raus.
|
|
|
02/07/2013, 19:29
|
#15
|
elite*gold: 55
Join Date: Oct 2009
Posts: 5,471
Received Thanks: 1,479
|
Vielleicht hast du mich da falsch verstanden.
Nehmen wir mal folgendes Beispiel:
In Assembler:
Code:
.text:009A3C30 CGGameUI__AcceptSpiritGuide proc near ; CODE XREF: CGPlayer_C__TalkToSpiritGuide+1Ap
.text:009A3C30 ; CGPlayer_C__TalkToSpiritGuide+2Bp ...
.text:009A3C30
.text:009A3C30 var_18 = dword ptr -18h
.text:009A3C30 var_14 = dword ptr -14h
.text:009A3C30 var_10 = dword ptr -10h
.text:009A3C30 var_C = dword ptr -0Ch
.text:009A3C30 var_8 = dword ptr -8
.text:009A3C30 var_4 = dword ptr -4
.text:009A3C30 arg_0 = dword ptr 8
.text:009A3C30 arg_4 = dword ptr 0Ch
.text:009A3C30 arg_8 = byte ptr 10h
.text:009A3C30
.text:009A3C30 55 push ebp
.text:009A3C31 8B EC mov ebp, esp
.text:009A3C33 8B 45 08 mov eax, [ebp+arg_0]
.text:009A3C36 8B 4D 0C mov ecx, [ebp+arg_4]
.text:009A3C39 83 EC 18 sub esp, 18h
.text:009A3C3C 39 05 C8 9F 0C+ cmp dword_10C9FC8, eax
.text:009A3C42 75 0C jnz short loc_9A3C50
.text:009A3C44 39 0D CC 9F 0C+ cmp dword_10C9FCC, ecx
.text:009A3C4A 0F 84 99 00 00+ jz loc_9A3CE9
.text:009A3C50
.text:009A3C50 loc_9A3C50: ; CODE XREF: CGGameUI__AcceptSpiritGuide+12j
.text:009A3C50 53 push ebx
.text:009A3C51 33 DB xor ebx, ebx
.text:009A3C53 A3 C8 9F 0C 01 mov dword_10C9FC8, eax
.text:009A3C58 89 0D CC 9F 0C+ mov dword_10C9FCC, ecx
.text:009A3C5E 38 5D 10 cmp [ebp+arg_8], bl
.text:009A3C61 74 0A jz short loc_9A3C6D
.text:009A3C63 E8 D8 D3 FF FF call sub_9A1040
.text:009A3C68 A1 C8 9F 0C 01 mov eax, dword_10C9FC8
.text:009A3C6D
.text:009A3C6D loc_9A3C6D: ; CODE XREF: CGGameUI__AcceptSpiritGuide+31j
.text:009A3C6D 0B 05 CC 9F 0C+ or eax, dword_10C9FCC
.text:009A3C73 89 1D D0 9F 0C+ mov dword_10C9FD0, ebx
.text:009A3C79 74 6D jz short loc_9A3CE8
.text:009A3C7B 68 4D 06 00 00 push 64Dh ///////////////////////<-- Opcode
.text:009A3C80 8D 4D E8 lea ecx, [ebp+var_18]
.text:009A3C83 C7 45 E8 64 69+ mov [ebp+var_18], offset off_D26964
.text:009A3C8A 89 5D EC mov [ebp+var_14], ebx
.text:009A3C8D 89 5D F0 mov [ebp+var_10], ebx
.text:009A3C90 89 5D F4 mov [ebp+var_C], ebx
.text:009A3C93 89 5D F8 mov [ebp+var_8], ebx
.text:009A3C96 C7 45 FC FF FF+ mov [ebp+var_4], 0FFFFFFFFh
.text:009A3C9D E8 2E BD A6 FF call CDataStore__PutInt32
.text:009A3CA2 A1 CC 9F 0C 01 mov eax, dword_10C9FCC
.text:009A3CA7 8B 0D C8 9F 0C+ mov ecx, dword_10C9FC8
.text:009A3CAD 50 push eax
.text:009A3CAE 51 push ecx
.text:009A3CAF 8D 4D E8 lea ecx, [ebp+var_18]
.text:009A3CB2 E8 79 BD A6 FF call CDataStore__PutInt64
.text:009A3CB7 8D 55 E8 lea edx, [ebp+var_18]
.text:009A3CBA 52 push edx
.text:009A3CBB 89 5D FC mov [ebp+var_4], ebx
.text:009A3CBE E8 4D DF 21 00 call ClientServices__Send2
.text:009A3CC3 83 C4 04 add esp, 4
.text:009A3CC6 83 7D F4 FF cmp [ebp+var_C], 0FFFFFFFFh
.text:009A3CCA C7 45 E8 64 69+ mov [ebp+var_18], offset off_D26964
.text:009A3CD1 74 15 jz short loc_9A3CE8
.text:009A3CD3 8D 45 F4 lea eax, [ebp+var_C]
.text:009A3CD6 50 push eax
.text:009A3CD7 8D 4D F0 lea ecx, [ebp+var_10]
.text:009A3CDA 51 push ecx
.text:009A3CDB 8D 55 EC lea edx, [ebp+var_14]
.text:009A3CDE 52 push edx
.text:009A3CDF 8D 4D E8 lea ecx, [ebp+var_18]
.text:009A3CE2 FF 15 68 69 D2+ call ds:off_D26968
.text:009A3CE8
.text:009A3CE8 loc_9A3CE8: ; CODE XREF: CGGameUI__AcceptSpiritGuide+49j
.text:009A3CE8 ; CGGameUI__AcceptSpiritGuide+A1j
.text:009A3CE8 5B pop ebx
.text:009A3CE9
.text:009A3CE9 loc_9A3CE9: ; CODE XREF: CGGameUI__AcceptSpiritGuide+1Aj
.text:009A3CE9 8B E5 mov esp, ebp
.text:009A3CEB 5D pop ebp
.text:009A3CEC C3 retn
.text:009A3CEC CGGameUI__AcceptSpiritGuide endp
In C:
Code:
int __cdecl CGGameUI::AcceptSpiritGuide(int a1, int a2, char a3)
{
int result; // eax@1
int v4; // [sp+0h] [bp-18h]@6
int v5; // [sp+4h] [bp-14h]@6
int v6; // [sp+8h] [bp-10h]@6
int v7; // [sp+Ch] [bp-Ch]@6
int v8; // [sp+10h] [bp-8h]@6
int v9; // [sp+14h] [bp-4h]@6
result = a1;
if ( (_DWORD)dword_10C9FC8 != a1 || dword_10C9FCC != a2 )
{
LODWORD(dword_10C9FC8) = a1;
dword_10C9FCC = a2;
if ( a3 )
{
sub_9A1040(a2);
result = dword_10C9FC8;
}
result |= dword_10C9FCC;
dword_10C9FD0 = 0;
if ( result )
{
v4 = (int)off_D26964;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
CDataStore::PutInt32(1613); //<-- Opcode
CDataStore::PutInt64(dword_10C9FC8, dword_10C9FCC);
v9 = 0;
result = ClientServices::Send2(&v4);
v4 = (int)off_D26964;
if ( v7 != -1 )
result = off_D26968(&v4, &v5, &v6, &v7);
}
}
return result;
}
Das Pattern wäre dann also folgendes:
Code:
38 5d 10 74 ?? e8 ?? ?? ?? ?? a1 ?? ?? ?? ?? 0b ?? ?? ?? ?? ?? 89 ?? ?? ?? ?? ?? 74 ?? 68
Mal schauen wie es mit Build 16309 aussieht:
Code:
int __cdecl CGGameUI::AcceptSpiritGuide(int a1, int a2, char a3)
{
int result; // eax@1
int v4; // [sp+0h] [bp-18h]@6
int v5; // [sp+4h] [bp-14h]@6
int v6; // [sp+8h] [bp-10h]@6
int v7; // [sp+Ch] [bp-Ch]@6
int v8; // [sp+10h] [bp-8h]@6
int v9; // [sp+14h] [bp-4h]@6
result = a1;
if ( (_DWORD)dword_10C9FC8 != a1 || dword_10C9FCC != a2 )
{
LODWORD(dword_10C9FC8) = a1;
dword_10C9FCC = a2;
if ( a3 )
{
sub_9A10C0(a2);
result = dword_10C9FC8;
}
result |= dword_10C9FCC;
dword_10C9FD0 = 0;
if ( result )
{
v4 = (int)off_D2695C;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
CDataStore::PutInt32(1613); //<-- opcode
CDataStore::PutInt64(dword_10C9FC8, dword_10C9FCC);
v9 = 0;
result = ClientServices::Send2(&v4);
v4 = (int)off_D2695C;
if ( v7 != -1 )
result = off_D26960(&v4, &v5, &v6, &v7);
}
}
return result;
}
In diesem Fall hat sich der Opcode nicht geändert.
Dann eben 13623:
Code:
int __cdecl sub_836C50(int a1, int a2, char a3)
{
int result; // eax@1
int v4; // [sp+0h] [bp-18h]@6
int v5; // [sp+4h] [bp-14h]@6
int v6; // [sp+8h] [bp-10h]@6
int v7; // [sp+Ch] [bp-Ch]@6
int v8; // [sp+10h] [bp-8h]@6
int v9; // [sp+14h] [bp-4h]@6
result = a1;
if ( dword_D9C748 != a1 || dword_D9C74C != a2 )
{
dword_D9C748 = a1;
dword_D9C74C = a2;
if ( a3 )
{
sub_833030(a2);
result = dword_D9C748;
}
result |= dword_D9C74C;
dword_D9C744 = 0;
if ( result )
{
v4 = (int)off_AB8190;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
sub_7D62F0(42688); //<-- opcode
sub_7D6350(dword_D9C748, dword_D9C74C);
v9 = 0;
result = sub_4D5870(&v4);
v4 = (int)off_AB8190;
if ( v7 != -1 )
result = off_AB8194(&v4, &v5, &v6, &v7);
}
}
return result;
}
Hier war der Opcode ein anderer!
Ich habe lediglich nach dem Pattern suchen lassen und hatte so sofort meinen Opcode. Wenn man diese Pattern für jeden Opcode erstellt, dann ist der Aufwand zum Updaten selbiger quasi Null. Natürlich ändert sich immer etwas, aber zu 99,9% sollte das Pattern definitiv reichen.
|
|
|
Similar Threads
|
Pumio Mini D3D v2 easy hack (chams,no recoil and more easy hax) only for pro cqc
07/02/2011 - WarRock Hacks, Bots, Cheats & Exploits - 2 Replies
Download: Multiupload.com - upload your files to multiple file hosting sites!
VirusTotal: https://www.virustotal.com/file-scan/report.html?i d=67df2e20df80a2dc9f794783d9be488c9d7511c89dc81258 16b6dcd5b6dd85ef-1309520821
Screen: ImageShack® - Online Photo and Video Hosting
|
Pumio PMini D3D v2 easy hack (chams,no recoil and more easy hax) only for pro cqc
07/01/2011 - WarRock Hacks, Bots, Cheats & Exploits - 3 Replies
DL: Multiupload.com - upload your files to multiple file hosting sites!
VT: https://www.virustotal.com/file-scan/report.html?i d=67df2e20df80a2dc9f794783d9be488c9d7511c89dc81258 16b6dcd5b6dd85ef-1309520821
Screen: ImageShack® - Online Photo and Video Hosting
|
All times are GMT +1. The time now is 17:06.
|
|