Minecraft Bot mit Detours

12/23/2012 23:13 kapitanjack#1
Hi,
ich möchte gerne für das Spiel Minecraft einen Bot schreiben. Dazu möchte ich ja ein Dll injecten aber wie bekomme ich raus wie die Funktionen heißen also die Daten senden und Empfangen. Wer es nicht weiß Minecraft ist auf Java geschrieben. Ich ich muss ja wissen ob das eine WSAsend Funktion oder andere ist...wie bekomme ich das raus? Ich hab es mit IDA Pro getestet bin bekomme es aber nicht hin.
12/24/2012 00:25 Eerox#2
Quote:
Originally Posted by kapitanjack View Post
Hi,
ich möchte gerne für das Spiel Minecraft einen Bot schreiben. Dazu möchte ich ja ein Dll injecten aber wie bekomme ich raus wie die Funktionen heißen also die Daten senden und Empfangen. Wer es nicht weiß Minecraft ist auf Java geschrieben. Ich ich muss ja wissen ob das eine WSAsend Funktion oder andere ist...wie bekomme ich das raus? Ich hab es mit IDA Pro getestet bin bekomme es aber nicht hin.
dabei benutze einfach wpePro oder redox packet editor. diese zeigen dir den packetverkehr an und über welche art (WSAsend/WSArecv oder nicht)
12/24/2012 01:49 qkuh#3
Besorg dir OllyDBG und setze einfach einen Breakpoint auf die jeweilige Funktion. Danach weißt du bescheid. Wenn du nicht klar kommst, dann pm mich.

qqdev.
12/24/2012 12:38 kapitanjack#4
Eerox das geht nicht weil ich mit redox ein Fehler bekomme wenn ich das auf javaw.exe machen will und wpepro zeigt mir das noch nicht mal an :D
12/24/2012 12:41 Eerox#5
Quote:
Originally Posted by kapitanjack View Post
Eerox das geht nicht weil ich mit redox ein Fehler bekomme wenn ich das auf javaw.exe machen will und wpepro zeigt mir das noch nicht mal an :D
ich kann nicht deine gedanken lesen ^^. befolge einfach die anleitung von qKuh
12/24/2012 15:00 Flyff_Service#6
Programmiere doch lieber eine Mod in Java für Minecraft welche dann direkt auf die Spielumgebung zugreift und einwirkt - vereinfacht vieles. Wenn man schon die Möglichkeit dafür hat direkt auf den Source zuzugreifen macht sich keiner die Mühe die Klassen in eine andere Sprache zu übernehmen - falls das überhaupt so einfach gehen sollte, da Minecraft in Java programmiert wurde. Programmierer sind für gewöhnlich faul! :awesome:
12/24/2012 15:52 MrSm!th#7
Warum mit nem Debugger da ran, wenn das ganze in Java geschrieben wurde? Einfach den Code selbst ansehen und ggf. Klassen abändern.
12/24/2012 16:05 qkuh#8
Quote:
Originally Posted by MrSm!th View Post
Warum mit nem Debugger da ran, wenn das ganze in Java geschrieben wurde? Einfach den Code selbst ansehen und ggf. Klassen abändern.
Find ich komfortabler.
12/24/2012 16:23 MrSm!th#9
Da ist nichts komfortabler dran, erst recht nicht, wenn du mit einem nativen Debugger wie Olly Java Code debuggen willst. Da hast du nämlich auch das ganze JVM Gedöns zwischen.
12/24/2012 16:44 Tyrar#10
Im übrigen ist der Grund dafür dass WPE javaw nicht anzeigt, dass WPE nur 32 bit Prozesse anzeigt und du vermutlich ein 64 Bit System hast.
12/25/2012 00:28 qkuh#11
Quote:
Originally Posted by MrSm!th View Post
Da ist nichts komfortabler dran, erst recht nicht, wenn du mit einem nativen Debugger wie Olly Java Code debuggen willst. Da hast du nämlich auch das ganze JVM Gedöns zwischen.
Das JVM Gedönds interessiert doch keinen. BP setzen, starten, fertig.
12/25/2012 18:31 kapitanjack#12
Erklärt mir jemand wie ich ein Breakpoint setze?
12/25/2012 18:53 Eerox#13
Quote:
Originally Posted by kapitanjack View Post
Erklärt mir jemand wie ich ein Breakpoint setze?
zeile selektieren -> F2 drücken -> starten
12/25/2012 19:04 kapitanjack#14
Ich versteh das irgendwie nicht. Ich möchte ja wissen ob das Programm WSASend/WSARecv benutzt. Muss ich jetzt Minecraft.exe oder Minecraft.jar auf Ollydbg ziehen? Und dann steht da ja der Assembler kram also mov..... was bringt mir dort ein BP?
12/26/2012 00:02 MrSm!th#15
Quote:
Originally Posted by qkuh View Post
Das JVM Gedönds interessiert doch keinen. BP setzen, starten, fertig.
Du kapierst es nicht ganz oder? Java wird in Bytecode kompiliert und nicht vom Prozessor ausgeführt. Du wirst nur JVM Gedöns finden, denn dieses interpretiert den Bytecode.

Quote:
Ich versteh das irgendwie nicht. Ich möchte ja wissen ob das Programm WSASend/WSARecv benutzt. Muss ich jetzt Minecraft.exe oder Minecraft.jar auf Ollydbg ziehen? Und dann steht da ja der Assembler kram also mov..... was bringt mir dort ein BP?
Weder noch. Minecraft.exe ist der Launcher, Minecraft.jar das Java Executable. Du müsstest Olly an java(w).exe attachen. Minecraft nutzt die Java Bibliotheken für Netzwerkkommunikation. Wie die intern in der JVM implementiert sind, weiß ich nicht, ich tippe aber auf WSASend.
Was willst du erreichen?