Assembler Befehle :D HELP ME!!!

05/16/2010 18:45 L0wd0wn#1
Also wenn ich das jetzt richtig verstanden habe Startet der Patcher eines Spiels am Ende Das Anticheat system (wenn es eins beim spiel gibt) und für
diesen Start(vom Anticheat System) Gibt es ja Assembler Befehle die An Bestimmten Stellen in Hexadressen stehen so jetzt meine Fragen :D
1. Sind diese Befehle immer anders Anderer Prozess soll gestartet werden andere Adresse?
2. Wie heißt der Nop Assembler Befehl

3. Also ich stelle mir das so vor^^:Adressen zum starten von HackShield oder anderes Anticheat system + Nop = Bypass stimmt das?^^

4. Wie finde ich die Adressen die für das starten des Ati Cheat systems verantwortlich sind?

5.Durch Welche Zuweisung kann ich diese Befehle Nopen(Kaputt machen :D)
05/16/2010 18:53 Elektrochemie#2
Nein es wird nicht beim beenden vom Launcher gestartet. Ist unterschiedlich.
Bei 4 Story wirds im TClient gestartet, bevor das eigentliche Spiel ladet.

Hackshield komplett deaktivieren = bypass
Läuft nicht.
Die Anticheat-Systeme schicken meistens noch Packets an den Server, sodass du einen Disconnect bekommst wenn du sie komplett deaktivierst.

Nop Befehlt - wie du sagtest -> "nop"
05/16/2010 19:00 xNopex#3
Der NOP-OpCode hat den Dezimalwert von 144 bzw. einen Hexadezimalwert von 90. Um einen Befehl zu NOP'en musst du nur alle Bytes mit 144 bzw. 0x90 überschreiben.
Die Adressen findest du mit OllyDbg und ein bisschen Erfahrung im Bereich Reverse Engineering.
05/16/2010 23:52 MrSm!th#4
Quote:
Originally Posted by L0wd0wn View Post
Also wenn ich das jetzt richtig verstanden habe Startet der Patcher eines Spiels am Ende Das Anticheat system (wenn es eins beim spiel gibt)
Falsch, das kommt aufs System an.
Hackshield zb. besteht "nur" aus Dlls (da gibts nix direkt zu starten) und die wird vom Spiel selbst geladen.
Quote:
und für
diesen Start(vom Anticheat System) Gibt es ja Assembler Befehle die An Bestimmten Stellen in Hexadressen stehen so jetzt meine Fragen :D
Auch falsch, Prozesse werden gestartet / Dlls geladen durch CreateProcess/LoadLibrary! Das sind keine Assembler "Befehle", sondern ganze Funktionen der sogenannten Windows Api.
Quote:
1. Sind diese Befehle immer anders Anderer Prozess soll gestartet werden andere Adresse?
Es sind immer die gleichen, allerdings ist natürlich der Parameter anders, der den Pfad+Namen bestimmt.
Quote:
2. Wie heißt der Nop Assembler Befehl
Er heißt nop (hex wert 0x90)
Quote:
3. Also ich stelle mir das so vor^^:Adressen zum starten von HackShield oder anderes Anticheat system + Nop = Bypass stimmt das?^^
Auch falsch, da das Anti-Cheat-System höchstwahrscheinlich einen Server check hat.
Und selbst wenn nicht: simples noppen des Calls (Aufruf einer Funktion) wird nicht reichen, da normalerweise danach geprüft wird, ob es geklappt hat, ergo muss man das auch patchen (ändern).
Quote:
4. Wie finde ich die Adressen die für das starten des Ati Cheat systems verantwortlich sind?
Indem du das System analysierst.
Quote:
5.Durch Welche Zuweisung kann ich diese Befehle Nopen(Kaputt machen :D)
Durch gar keine, man schreibt in den Speicher an der Stelle 0x90


So und nun mal meine Meinung:

Ganz ernsthaft, so wie du schreibst ("Befehle zum Starten des Anti-Cheat-Systems"/"Sind diese immer gleich") scheinst du keine Ahnung darüber zu haben, was du da schreibst.
Es ist ja schön, dass du weißt, dass die Maschinensprache Assembler heißt und dass der Befehl zum Nichtstun NOP heißt und die Grundideen sind ja zumindest ansatzweise halbwegs richtig, aber du solltest dir echt mal mehr zu dem Thema anlesen....

Sei mal ehrlich zu dir selbst:
"Wie finde ich die Adressen die für das starten des Ati Cheat systems verantwortlich sind?"

Wenn es dafür einen Step-By-Step-Weg gäbe, hätte jeder Idiot einen Bypass in 5 Minuten.
Es kommt immer auf das System an, wie es in das Spiel eingebaut ist und wie es gestartet wird.
Es wird niemals einen Ultimate-Weg geben, ein Anti-Cheat-System zu bypassen und wenn man fragen muss, wie man die Adressen überhaupt findet, dann ist man erst recht nicht so weit.

Lies dir lieber noch ein bisschen was durch, keywords:
windows internals, assembler, cpu und rechnerarchitektur,gamedeception, reverse engineering.

Zu letzterem hier noch ein Link:

[Only registered and activated users can see links. Click Here To Register...]


@Elektrochemie:

Wenn du die Pakete selbst sendets, ist alles im Lot :p
05/17/2010 14:43 L0wd0wn#5
Danke fürn Link :D gibts das auch auf Deutsch?
Also ich glaub jetz hab ichs wirklich kapiert :D
1. Alle Calls NOPen
2. Die Packets Die Das Hack Shield sendet selbst senden :D
1+2=Bypass (Bitte sagt mir das dass jetz richtig ist :D)

3.100.000.0€ Frage:Kennt jemand nen Packet Sniffer auf Deutsch wäre gut :D und hätte jemand da vielleicht ein Packet Sniffing Tut. (Ich guck auch gleich nochmal im Forum :D

//Thx an alle die helfen
05/17/2010 15:44 mydoom#6
Quote:
Originally Posted by L0wd0wn View Post
Danke fürn Link :D gibts das auch auf Deutsch?
Soweit ich weiß, gibts davon keine Übersetzung und daher nur auf Englisch. (Aber mal abgesehen davon: Ein echter Programmierer muss Englisch beherrschen ;D)
05/17/2010 17:55 MrSm!th#7
Ohne Englisch wirst du nicht weit kommen.

Ein Packetsniffer bringt dir da so circa 0.
Du stellst dir das alles viel zu leicht vor :rolleyes:

Erstmal musst du das Anti-Cheat-System debuggem, was aufgrund von Kopierschutzmaßnahman wie Themida recht schwer ist.
Dann musst du es analysieren, was viel Erfahrung im Bereich reverse Engineering voraussetzt, welche du offensichtlich nicht mal ansatzweise hast.
Die Packets sind natürlich verschlüsselt, du musst die Sendefunktion im System selbst finden und die Verschlüsselungsfunktion auch und dann alles nachbauen.
Zu guter Letzt werden meist CRC Checks gesendet (google ftw) was das Packet emulieren nochmal deutlich schwerer macht (es ist meist kein "Halle ich bin aktiv"-Packet).
Diese Checks zu emulieren kann sogar extremst schwer sein, weshalb das Krüppeln bevorzugt wird.
Hierbei zerstört man den Prozessschutz, die Hackdetection und den Memory Scanner (falls vorhanden; allerdings wird letzteres nicht zerstört, sondern so verändert, dass er die Werte zurückgibt, die er bei einem normalen Zustand zurückgeben würde), sodass das System glaubt, es schützt das Spiel, was aber nicht der Fall ist.

Dafür wird normalerweise eine Hochsprache wie C/C++ verwendet (aufgrund der flexiblen Möglichkeit, Pointer zu nutzen, ist es sogar zu bevorzugen).
Also ist ein solides ASM + C/C++ Wissen Pflicht, sonst kommst du nirgendwohin.

Das kann dann locker auch mal ein paar Jährchen dauern (Lernen + festigen + Erfahrung sammeln + Ziel analysieren und ausschalten).
Und glaub mir, ich übertreibe nicht.
Wenn du wirklich weit kommen willst (vor allem bei HS) werden ein paar Jahre nötig sein, selbst, wenn du wie ich, sehr schnell lernst und verstehst, in ein paar Wochen geht das nicht.

Ich sage ja, du stellst dir das zu einfach vor.


Damn, jetzt hab ich wieder so viel geschrieben, obwohl es das Thema schon hundert mal gab Q_Q
Nächstes Mal SuFu nutzen.
05/17/2010 20:09 L0wd0wn#8
Ok dann versuch ichs mal mit Krüppeln^^ :D
Also müsste ich denn Quasi nur die Wichtigsten Bestandteile des AntihackSystems zerstören aber die PAckets müssen ja gesendet werden :D also müsste ich den Prozess debuggen und die Teile schrotten die Scannen und so oder?

Die Frage ist jetzt nur noch :D wie komme ich(wenn möglich ohne Reverse Engineering) an das Wissen welche Befehle Packets senden und welche nicht also
müsste ich das theoretisch mit nem Debugger ganz genau anschauen die Exe abspeichern und dann unter gleichem namen im Gameordner speichern damit der Client und der LAuncher denkt das dass Anticheat System Aktiv ist :D
Achso und C++ Grundsätze kann ich :D
05/17/2010 21:20 xNopex#9
"Also müsste ich denn Quasi nur"

Ja 'nur' ;)


"Die Frage ist jetzt nur noch wie ich"

Gar nicht, glaube mir.. Mr.Smith hats dir doch schon erklärt..


"wenn möglich ohne Reverse Engineering"

Geht nicht


Finde dich doch damit ab :)
05/17/2010 23:05 saluege#10
weak its in spanish or something.i need to learn assembly
05/17/2010 23:08 Yo123#11
du analysierst erstmal den serverside und den clientside check. in der regel hängen die aber auch zusammen.
dann bypassed du den clientside check und injectes den müll für den serverside check zur rechten zeit, am besten mit ner dll die du in den client lädst.
05/17/2010 23:45 MrSm!th#12
Quote:
Originally Posted by L0wd0wn View Post
Ok dann versuch ichs mal mit Krüppeln^^ :D
Also müsste ich denn Quasi nur die Wichtigsten Bestandteile des AntihackSystems zerstören aber die PAckets müssen ja gesendet werden :D also müsste ich den Prozess debuggen und die Teile schrotten die Scannen und so oder?

Die Frage ist jetzt nur noch :D wie komme ich(wenn möglich ohne Reverse Engineering) an das Wissen welche Befehle Packets senden und welche nicht also
müsste ich das theoretisch mit nem Debugger ganz genau anschauen die Exe abspeichern und dann unter gleichem namen im Gameordner speichern damit der Client und der LAuncher denkt das dass Anticheat System Aktiv ist :D
Achso und C++ Grundsätze kann ich :D
Du hast meinen Post immernoch nicht verstanden.

Es gibt keinen "Befehl" Pakete zu senden, das ist eine Funktion der Windows Socket API.
Der Prozessor hat keine eingebaute Möglichkeit super-ultra-CRC-Packets an irgendnen Server zu senden.
Das alleine zeigt, dass du noch Meilen weit davon entfernt bist, HS zu bypassen.
Nutz doch einfach die SuFu, die Frage gabs schon zig mal!

OHNE RE geht hier schonmal gar nix, das sollte dir aber klar sein...
Und du stellst dir das immer noch viiiieeeel zu leicht vor >_>
Srsly, nach dem, was ich hier gelesen habe, vergiss es, das wird höchstwahrscheinlich nix.

btw. Ich sagte solides Wissen und kein Grundlagen Tutorial, das man in 4 Tagen durch hat.
05/18/2010 00:31 Elektrochemie#13
Quote:
Originally Posted by L0wd0wn View Post
Ok dann versuch ichs mal mit Krüppeln^^ :D
Also müsste ich denn Quasi nur die Wichtigsten Bestandteile des AntihackSystems zerstören aber die PAckets müssen ja gesendet werden :D also müsste ich den Prozess debuggen und die Teile schrotten die Scannen und so oder?

Die Frage ist jetzt nur noch :D wie komme ich(wenn möglich ohne Reverse Engineering) an das Wissen welche Befehle Packets senden und welche nicht also
müsste ich das theoretisch mit nem Debugger ganz genau anschauen die Exe abspeichern und dann unter gleichem namen im Gameordner speichern damit der Client und der LAuncher denkt das dass Anticheat System Aktiv ist :D
Achso und C++ Grundsätze kann ich :D
Vergess das mit den Packets am besten wieder.
Das wurde nur erwähnt um dir klarzumachen dass du das ding nicht einfach komplett Abschalten kannst.

Um die Dinger "emulieren" zu können (was wohl so gut wie kein Bypass macht) ist schon einiges mehr an Wissen nötig als zu wissen was "nop" bedeutet.

Krüppeln ist da eher n schönes Stichwort.