Wie wird "sowas" programmiert?

01/24/2012 18:49 Waynee#1
Ich habe selber früher Bots gescriptet in denen ich noch mit den Pixelfarben gearbeitet habe und bei gewissen Veränderungen an bestimmten Koordinaten dann reagiert habe indem ich "Send" Befehle genutzt habe.

Da ja nun bei Metin beispielsweise ein Hackshield vorhanden ist, schlägt es ja sofort bei dem Senden von Send Befehlen Alarm und zum anderen ist es meiner Meinung nach auch eine unsaubere Lösung die Tastaturanschläge zu Faken und somit Prozesse zu automatisieren.

Mein Verständniss geht so weit, das ich jetzt weiß, wenn ich das Spiel Metin spiele und die "W" taste drücke, ich vorwärts laufe.
Automatisiere ich es einfach, sage ich einem Script wie Autoit einfach das es für mich einfach so tun soll, als würde die "W" Taste gedrückt werden.

Was aber machen die guten Hacks?!
Die guten Hacks drücken für mich nicht mehr die Tasten virtuell, sondern geben den Spielen nur noch den Befehl bzw. die Information, das mein Charakter vorwärts läuft.

Nun möchte ich wissen, wie man zum einen die Befehle dafür herausbekommen kann, das wird man ja bestimmt mitsniffen und zum anderen in welcher Programmiersprache sowas geschrieben wird?
In Java müsste das doch realisierbar sein oder?

Des weiteren würde mich interessieren ob es für das, was ich suche einen Oberbegriff gibt, da ich ohne diesen Begriff keine Tutorials etc. googlen kann.

Ich bin schon auf eure Antworten gespannt.
MFG Waynee
01/24/2012 18:53 MoepMeep#2
Interne Funktionen/Packets.
Java ist für gamehacking komplett ungeeignet.
Der Oberbegriff ist Reverse Engineering, aber lern erstmal eine vernünftige Sprache, sonst wirds nichts.
01/24/2012 18:59 Waynee#3
Okay danke, schonmal gut zu wissen.
Womit wird sowas dann gemacht?
Mit C++?

Also wenn das Reverse Engineering heißt, dann werd ich ja warscheinlich beim Suchen auch viel anderen Schrott finden, da unter "Reverse Engineering" ja auch in der Industrie das auseinanderbauen eines Produktes bezeichnet wird, um den Bauplan zu kopieren.
01/24/2012 19:31 MoepMeep#4
C++ wäre eine möglichkeit, jo.

Dann schreib halt "reverse engineering gamehacking" ;)
01/24/2012 19:32 xNopex#5
Quote:
da unter "Reverse Engineering" ja auch in der Industrie das auseinanderbauen eines Produktes bezeichnet wird, um den Bauplan zu kopieren.
n1. lol.

Quote:
Womit wird sowas dann gemacht?
Mit C++?
Joa mit C oder C++ ist es meiner Meinung nach am einfachsten das ganze zu programmieren. Eine Möglichkeit ist das Spiel eben zu reversen und dann nach der Funktion zu suchen, die die Vorwärtsbewegung ausführt. Dann nimmt man die Adresse von der Funktion und kann sie über Funktionspointer aufrufen.
Aber wenn du erstmal gut 12Monate damit verbracht hast die gewählte Sprache und das Reversen zu lernen, wirst du dann schon von selbst drauf kommen. Viel Spaß beim versagen,

xNopex
01/24/2012 19:34 Lofar#6
Phyton oder AutoIT kannst du dir auch mal anschauen.
aber C++ ist wohl am geeignetsten ...
01/24/2012 19:44 Waynee#7
Haha ja vielen Dank für eure Beiträge.
Nun kann ich mich endlich mal schlauer darüber machen und hab ne bessere Vorstellung davon, wie das Funktioniert.

Versagen kann bzw. werd ich nicht dürfen.
Anfang nächsten Jahres werde ich warscheinlich anfangen Informatik zu studieren oder in Richtung Software Entwicklung eine Ausbildung zu machen.

3 Jahre Ausbildung in der IT Branche hab ich sogar schon hinter mir, nur finde ich es ziemlich erschreckend, wie oberflächlich die Software Entwicklung nur angeschnitten wurde.

Soweit sogut, vielen Dank nochmal, ihr habt mir sehr geholfen ;)
01/24/2012 20:02 Lofar#8
Quote:
Originally Posted by Waynee View Post
Haha ja vielen Dank für eure Beiträge.
Nun kann ich mich endlich mal schlauer darüber machen und hab ne bessere Vorstellung davon, wie das Funktioniert.

Versagen kann bzw. werd ich nicht dürfen.
Anfang nächsten Jahres werde ich warscheinlich anfangen Informatik zu studieren oder in Richtung Software Entwicklung eine Ausbildung zu machen.

3 Jahre Ausbildung in der IT Branche hab ich sogar schon hinter mir, nur finde ich es ziemlich erschreckend, wie oberflächlich die Software Entwicklung nur angeschnitten wurde.

Soweit sogut, vielen Dank nochmal, ihr habt mir sehr geholfen ;)
Ich habe mich auch mal schlau gemacht, da ich auch etwas in richtung informatik amchen möchte.
Da solltest du Java und/oder C++ lernen!
Mit autoIt und Python kommste im Beruflichen informatik-bereich nicht weiter ...
01/24/2012 20:17 Waynee#9
Quote:
Originally Posted by Lofar View Post
Ich habe mich auch mal schlau gemacht, da ich auch etwas in richtung informatik amchen möchte.
Da solltest du Java und/oder C++ lernen!
Mit autoIt und Python kommste im Beruflichen informatik-bereich nicht weiter ...
Ja also Autoit behersche ich ja mehr oder weniger, das nochmal zum Vorvor-Poster.

Ja Lofar, in den Berufen wird einem Autoit etc nichts bringen, bis auf vllt, das einem die Strukturen und Schleifen bekannt vorkommen werden, wenn es an Java, C++ etc gehen wird.

In meinem Wirtschafts- Informatik Abitur, welches ich zurzeit mache, haben wir zwar auch den Bereich "Praktische Informatik", jedoch lernen wir dort nur das Objektorientierte Programmieren anhand von Java mit BlueJ.

Heißt uns wird in erster Linie erklärt, wie man Objektorientiert Programmiert und denkt, jedoch die Sprache an sich ist nur das Mittel zum Zweck und auf sie wird nicht weiter eingegangen.

In der "Technische Assistenten für Informatik" Ausbildungen, welche 2 Jahre ging, haben wir ganz am Anfang mit "Robot Karol" gearbeitet, damit ersteinmal alle Teilnehmer vorsichtig an die Logik des Programmierens herangeführt werden und anschließend ein kleiner Einblick in C++ der aber auch nicht viel Aufschluss darüber gegeben hatte, was mit dieser Sprache alles möglich ist.

Ich selber habe mir nun das Buch "Java von Kopf bis Fuß" zugelegt, da ich keine Lust habe noch länger rumzudösen und nur oberflächliche Programmierkentnisse vermittelt zu bekommen.
Das Java ungeeignet ist fürs schreiben von Hacks, deprimiert mich ein wenig und nimmt auch ein Tick den Ansporn, jedoch wird genau diese Sprache im Studium und in Firmen sehr gefragt sein.

Vllt finde ich ja irgendwann noch einmal die Zeit mir C++ anzusehen.
Ich begnüge mich deshalb nun erst einmal mit dem Oberbegriff "Reverse Engineering" (um aufs Thema zurückzukommen) und les mir trotzdem mal ein paar Tutorials durch, da mich einfach die Umsetzung interessiert und fasziniert. :)
01/24/2012 20:45 Dr. Coxxy#10
wenn dich reverse engineering interessiert, kann ich dir lena151s tutorial reihe empfehlen:
[Only registered and activated users can see links. Click Here To Register...]

ansonsten speziell zu spiele gibt es im oldschoolhack forum ne tutorial reihe von knacker.

ebenfalls zu empfehlen ist das tutorial hier:
[Only registered and activated users can see links. Click Here To Register...]

edit:
natürlich alles in assembler und c/c++, darum kommt man in dem bereich nicht herum...
01/25/2012 00:08 MrSm!th#11
Es ginge mit allen möglichen Sprachen, selbst AutoIt.
Aber eine der ungeeignetsten ist Java >.<

Quote:
Mit autoIt und Python kommste im Beruflichen informatik-bereich nicht weiter ...
Hast du ne Ahnung...

Außerdem lernt man die Sprache nicht jetzt für den Beruf, die lernst du in der Ausbildung (und zwar gleich mehrere).
Alles was man vorher lernt ist gewissermaßen Hobby und kann einem höchstens helfen, in der Ausbildung schneller voran zu kommen, aber dafür eignet sich jede Sprache.

Und wenn du theoretische Informatik o.Ä. studieren willst, siehts ohnehin scheiße mit Jobs aus ;P Angewandte macht da mehr Sinn.

Quote:
jedoch lernen wir dort nur das Objektorientierte Programmieren anhand von Java mit BlueJ.
Mein Beileid.

Quote:
Das Java ungeeignet ist fürs schreiben von Hacks, deprimiert mich ein wenig und nimmt auch ein Tick den Ansporn, jedoch wird genau diese Sprache im Studium und in Firmen sehr gefragt sein.
Das ist so nicht ganz richtig.
Java macht vieles einfacher und ist zudem leicht portierbar, sodass es in Unis am Anfang präferiert wird.
Allerdings geht man im Laufe des Studiums auch auf C++ ein, da es zentrale Programmierparadigmen verbindet.
Es kommt alles aber auch aufs Studium an.

In Firmen findet Java nur bedingt Anwendung, da nimmt man eher noch C#, wenn nicht C++.

Die wenigsten kommerziellen Produkte (gibt es überhaupt welche?) sind in Java geschrieben ;O

Quote:
natürlich alles in assembler und c/c++, darum kommt man in dem bereich nicht herum...
Um ASM nicht, um C++ schon.
01/25/2012 00:12 MoepMeep#12
Um C/C++ kommt man herum, aber ist dies sinnvoll? ;)
01/25/2012 00:48 Dr. Coxxy#13
selten...