[Java] Bot programmieren?

08/04/2012 16:53 galaxyo#1
Hallo Leute,

da ich eine Ausbildung zum Fachinformatiker Anwendungsentwicklung begonnen und auf Grund dessen viel mit Java zu tun habe, wollte ich mich mal erkundigen ob es damit möglich ist einen hochwertigen Bot z.B. für World of Warcraft zu programmieren.

Meine Kenntnisse spielen dabei aber keine Rolle. Das nötige Know-How werde ich während meiner Ausbildung erlangen, daran soll's nicht scheitern. :cool:

Ich freue mich über eure Antworten!

gez. galaxyo
08/04/2012 17:41 epiTR#2
Mit Java ist das nicht möglich, da du nicht auf den Speicher zugreifen kannst und somit nötige Daten (wie z.B. Position, Leveln...) auslesen kannst.
Das müsstest du dann in Verbindung einer anderen Programmiersprache machen (C++, C#)
08/04/2012 17:53 Dr. Coxxy#3
Theoretisch möglich - ja.
praxistauglich - eher nicht.

sollte da eher zu einer programmiersprache greifen, bei der man nicht über 4 ecken auf die winapi zugreifen muss, wie C/C++.
ansonsten, wenn du auf java bestehst, kannst du mal hier lesen:
[Only registered and activated users can see links. Click Here To Register...]
08/04/2012 18:46 SmackJew#4
Wenn du sowieso Java lernst ist sich nebenbei selbst in C oder C++ einzulesen keine große Sache. Die meisten Unterschiede finden sich oberflächlich ohnehin nur in der OOP und du wirst auch auf keine beruflichen Programmierer treffen die nur Java können. Habe ich zumindest noch nicht, einfach weil erstens der Sprung vom C/C++ zu Java oder auch von Java zu C/C++ sehr einfach ist und weil zweitens wenige Firmen Software entwickeln die nicht wenigstens teilweise auf nativen Bibliotheken aufbaut.

Die Herrausforderung bei der Bot-Entwicklung liegt immer im Reversing Prozess, sei es ein Bot der den laufenden Client-Prozess missbraucht oder ein alleinstehendes Programm das Packets versendet und sich somit wie der Client verhält (was in Java übrigens genauso möglich ist wie in jeder anderen Sprache die das Versenden und Erhalten von Daten übers Netzwerk unterstützt). Sich über die Programmiersprache zu sorgen bevor man überhaupt ein Protokoll oder ein Programm reversen kann ist vergleichbar mit Leuten die sich sorgen zu muskulös zu werden bevor sie überhaupt angefangen haben zu trainieren.
08/04/2012 19:44 galaxyo#5
Quote:
Originally Posted by SmackJew View Post
Sich über die Programmiersprache zu sorgen bevor man überhaupt ein Protokoll oder ein Programm reversen kann ist vergleichbar mit Leuten die sich sorgen zu muskulös zu werden bevor sie überhaupt angefangen haben zu trainieren.
Quote:
Originally Posted by galaxyo View Post
Meine Kenntnisse spielen dabei aber keine Rolle. Das nötige Know-How werde ich während meiner Ausbildung erlangen, daran soll's nicht scheitern. :cool:
Es liegt ja selbstverständlich auch nicht in meinem Interesse nur eine Sprache zu beherrschen um im Endeffekt gegenüber bewanderteren Programmierern im Nachteil zu sein.

Meine Frage dürfte dann soweit geklärt sein. Ich bedanke mich!

Cö mit ö
08/04/2012 19:54 kissein#6
Kann man eine Sprache von C/Java/Python, kann man im Prinzip 6-7 weitere Sprachen. Man muss sich jan nur noch den Syntax aneignen.

Generell würde ich jedem empfehlen der ernsthaft entwickelt, sich ein set aus 6-7 Sprachen anzueignen. (Handwerker fürs Haus kommt auch nicht mit nur einem Hammer vorbei ;))
08/05/2012 02:15 Dr. Coxxy#7
naja, C/C++ ist wegen nichtautomatischer speicherverwaltung und dem ganzen pointerkram schon ein wenig anders und kann für leute die von java drauf umsteigen schon ein schlag ins gesicht sein :P

außerdem hat jede sprache immer irgendwelche besonderheiten, ist also nicht so, dass man so eben mal 6-7 sprachen lernen kann und dann auch vollständig beherrscht, sprachen haben schon unterschiede, ansonsten würde es nur eine geben.
08/05/2012 11:10 xNopex#8
Es gibt in Java die [Only registered and activated users can see links. Click Here To Register...] - Klasse. Damit dürften billig-Bots (á la AutoIt) möglich sein. Und das erstmal Plattformunabhängig, was dann interessant wird, wenn das Spiel z.B. auch auf einem Mac läuft.
Aber wenn du was hochwertiges willst, was über das stupide Tastensenden hinaus geht, dann s. andere Beiträge.
08/05/2012 13:00 SmackJew#9
Quote:
Originally Posted by Dr. Coxxy View Post
naja, C/C++ ist wegen nichtautomatischer speicherverwaltung und dem ganzen pointerkram schon ein wenig anders und kann für leute die von java drauf umsteigen schon ein schlag ins gesicht sein :P

außerdem hat jede sprache immer irgendwelche besonderheiten, ist also nicht so, dass man so eben mal 6-7 sprachen lernen kann und dann auch vollständig beherrscht, sprachen haben schon unterschiede, ansonsten würde es nur eine geben.
Von einer 3 (?) jährigen Ausbildung würde ich mir allerdings erhoffen, dass das Konzept von Speicher und Adressierung gelehrt wird, und dass man sich auch mal den Bytecode seiner Java Programme anschaut. Wie dann in C ein Zeiger verwendet wird sollte dann auch schnell begriffen sein.
08/07/2012 17:29 tnd0#10
Ein bekannter hat Anwendungsinformatik an der Uni studiert. 3 Jahre lang Java - "was ist ein pointer nochmal gleich?".
08/07/2012 19:41 galaxyo#11
Quote:
Originally Posted by tnd0 View Post
Ein bekannter hat Anwendungsinformatik an der Uni studiert. 3 Jahre lang Java - "was ist ein pointer nochmal gleich?".
Ich möchte weder dir noch deinem "bekannten" zu nahe treten, aber er ist eine Pfeife. Weißt du, wenn ich "Pointer" im Bezug auf Speicher definieren kann, dann finde ich es doch ziemlich lächerlich, dass dein studierter "bekannter" nicht weiß was das ist, zumal man sowas innerhalb von 2 Minuten nachlesen kann.