Welche Programmiersprache benutzen Programmierer von Spielehacks um z.B. ein Aimbot,Wallhack usw. zu erstellen?
2 Antworten
Das gilt auch für Spiele!
Wenn dein Spiel also Unity als Engine benutzt, und selbst in C# geschrieben ist, dann solltest du dort ansetzen. Wenn es hingegen in C++ mit der Unreal-Engine geschrieben ist, schreibst du dir deine Werkzeuge auch damit.
Für Browsergames reicht oft schon der Inspektor, Greasemonkey oder andere Werkzeuge aus. Früher hat auch oft ein Actionscript-Decompiler geholfen, aber da Flash ja nicht mehr sonderlich verbreitet ist, reichen heute Deobfuscatoren für JS oder CSS oftmals völlig aus. Bei der Kommunikation kann man einfach AJAX-Anfragen abfangen, JSON oder XML manipulieren und weiter senden.
Bei Java reicht oft ein Decompiler bzw. Disassembler aus, bzw. man kann sehr einfach eigene Interfaces mit dem daraus erlangten Wissen schreiben, und dann mittels Reflection im Speicher rumwüten, wie man lustig ist. :)
Bei Android APKs oder anderen App-Formaten ist das Ganze ebenfalls sehr sehr einfach.
Allerdings sollte man unbedingt Kenntnisse in Assembler mitbringen, falls es sich nicht gerade um einen JVM- bzw. IL-Code handelt.
Fertige Programme, bzw. Spiele kannst du über einen Debugger manipulieren, aber da die sowieso fast immer ihre Debugging-Symbole gestrippt haben sollten, kommst du hier ohne Assembler nicht weiter.
Dann gibt es noch unendlich viele Werkzeuge, die - einem Debugger ähnlich - zur Laufzeit auf Speicherbereiche von anderen Prozessen zugreifen können, und dort Werte manipulieren. Für Spiele ist die Cheat-Engine ganz beliebt.
Naja, wie du siehst, gibt es (fast) unendlich viele Ansätze. Such dir einen davon aus, der zu deinem anvisierten Spiel passt! :)
Viel Spaß! :)PS: Kopierschutzmaßnahmen und Dinge wie Denuvo verhindern oftmals eine Manipulation bzw. das Cheaten. Diese Dinge sind dann meist vergleichsweise schwer zu umgehen und man sitzt gerne auch mal mehrere Monate an einer Lösung.
PPS: Ich spiele selbst zwar keine Spiele, aber ich höre immer, dass Cheater den anderen Spielern den Spaß verderben. Nimm also bitte Rücksicht auf deine Mitspieler! Zu Übungszwecken ist die Entwicklung von Cheats sehr gut zum Lernen geeignet. Genauso wie das Schreiben von Malware oder Trojanern. Aber man sollte so viel Verstand haben, und auf keinen Fall seine Mitmenschen mit diesen Dingen belästigen!
Programmiersprache?
Die 14-jährigen Bengel betätigen sich als Script-Kinderchen und probieren mit irgendeinem Micro$aft VBA-Dialekt herum.
Das hat doch nichts mit Programmierung zu tun.
Programmier befassen sich mit anderen Dingen als Kinderspielzeugen.
Irgentwie klingt das ziemlich abgehoben...
Jeder der sich mit Programmierung beschäftigt hat mal ganz klein mit Basic,Pascal oder irgendwelchen Scriptsprachen angefangen.
Eine .DLL-injection bekommt man sogar in Assembler hin und damit kann man so einiges "aushebeln"...
Wir würden noch heute mit einem 286er und dem DOS-Prompt rumwuseln, wenn sich Programmierer nicht mit Kinderspielzeug beschäftigt hätten!
Für eine Datenbank benötigt man nicht wirklich einen 6800er i7 und und OpenGL .
Ein Wort an den Fragesteller: ein Aimbot kann nur das Fernziel sein... Zu Progammieren beginnt man gewöhnlich mit "Hello World" egal mit welcher Programmiersprache , alles andere findet sich von allein...
Ich denke, du unterschätzt gewaltig, was man können muss, um eine Software zu schreiben, die zur Laufzeit einen anderen Prozess so patcht, dass dieser sein Verhalten in gewünschter Weise ändert, zumal weitere Prozesse darauf achten, dass genau DAS nicht getan wird.
Ein 14jähriger kommt hier mit VBA nicht weiter. Und ganz ehrlich: Ich glaube, dass das die aller meisten ITler mit abgeschlossenem Studium nicht drauf haben!
Einen Cheat von Grund auf zu entwickeln ist etwas völlig anderes als einen fertigen Cheat herunter zu laden und zu installieren.
Vermutlich gibt es kaum etwas komplizierteres für "stink normale" Software-Entwickler. Dazu muss man die Plattform des Spiels, die Programmiersprache, das Betriebssystem, die Laufzeitumgebung, die Bibliotheken, das Speichermanagement und das Prozess-Scheduling ziemlich gut kennen, um überhaupt erst mal anfangen zu können.
Ob du das nun Reverse Engineering, Cracken oder "Entwickeln von Cheats" nennst, ist egal. Aber es stellt die Königsdisziplin für Programmierer dar.
Also unterschätze das Thema mal nicht!
Programmier befassen sich mit anderen Dingen als Kinderspielzeugen.
GUTE Programmierer lernen ständig weiter und bilden sich pausenlos zu neuen Themen selbst. Irgendwann stolpert man zwangsläufig auch mal über Reversing und Co.
Auch wenn man als Software-Entwickler natürlich nicht pausenlos Cheats entwickelt, so sollte man dennoch schon mal damit zu tun gehabt haben. Einfach nur, um mal über den Tellerrand zu schauen!