Welche Sprache nehmen?

09/01/2012 19:22 Mr.Rockst4r#1
Hallo,

Ich will nun anfangen programmieren zu LERNEN.
Mein Ziel ist das ich in 1-2Jahren perfekt Bots schreiben kann :).

Ich würde gerne einen Packet Bot für das Browsergame Darkorbit erstellen.
Die Packets sind verschlüsselt .

Also zur Frage:
Welche Sprache sollte ich am besten angehen und anfangen zu lernen?
Also ich wünsche mir von der Sprache das sie einfach zu lernen ist und am Wichtigsten ist das ich eben viele Funktionsmöglixhkeiten habe :).
Und noch sehr wichtig das ich alles im Internet lernen kann.


Beste Gruße

E:
Bücher kann ich mir ja über ebook laden also doch kein problem.
Noch was: deutsche tuts sind natürlich am besten^^
09/01/2012 20:10 Temphis#2
AutoIt.

Eigentlich ganz gut um Bots zu schreiben. (Meiner seits)
09/01/2012 20:13 AtzenPower'#3
c++ und Java
09/01/2012 20:17 Mr.Rockst4r#4
Quote:
Originally Posted by xWeedy View Post
AutoIt.

Eigentlich ganz gut um Bots zu schreiben. (Meiner seits)

AutoIt behersche ich ein wenig.
Nun ich weiß das autoIt extrem langsam ist und die möglichkeiten begrenzt sind.
Ich hab es nicht nötig "erfolgsmomente " zu haben^^ also will ich direkt eine anständige sprache lernen.
09/01/2012 20:27 SmackJew#5
Wenn du dich auf Packet Bots konzentrierst ist die Sprache sogut wie egal, fast jede moderne Programmier-oder Scriptsprache bietet dir eine Schnittstelle zum OS Netzwerktreiber, die dir erlaubt Packets zu verschicken. Dein Problem wird eher beim Reverse Engineering liegen, und im Fall Darkorbit, das ist soweit ich weiß in Flash, müsste also dekompiliert und analysiert werden.
09/01/2012 20:33 Mr.Rockst4r#6
Reverse engineering?

Also ich will nicht nur packet bots schreiben . Ich will einfach eine sprache wo ich im pc alltag verwenden kann :) also einfach für alles ein tool machen können.
09/01/2012 20:34 Beni#7
C für den anfang? dann kannst ja immernoch C++ oder C# machen..
09/01/2012 20:42 Mr.Rockst4r#8
Was ist da der unterschied also C ,c#,c+++?
09/01/2012 20:47 SmackJew#9
Quote:
Originally Posted by adjion View Post
Reverse engineering?

Also ich will nicht nur packet bots schreiben . Ich will einfach eine sprache wo ich im pc alltag verwenden kann :) also einfach für alles ein tool machen können.
Einen Cheat zu schreiben besteht aus zwei Arbeitsfeldern:

1. Reverse Engineering, die eigentliche Herausforderung, zu verstehen wie das Spiel bzw. Teile davon funktionieren.

2. Das Gefundene auszunutzen um das vom Entwickler vorgesehene Spielverhalten zu ändern, oder im Beispiel des Packet Bots den gesamten Clientverkehr zu emulieren sowie eine Evaluierung der Serverinformationen durchzuführen.

Um Alltagsprogramme zu schreiben wirst du selten Reverse Engineering verwenden, es sei denn du möchtest fremden, undokumentierten Code verwenden. Ein Programmierhintergrund ist bei Reverse Engineering immer hilfreich, aber nicht unbedingt notwendig.
09/01/2012 21:16 Mr.Rockst4r#10
Okay.
Und mit welcher sprache kann ich sowas anstellen?
09/01/2012 21:46 Mental Wreck#11
adjion, lern erstmal ein wenig ASM damit du dich überhaupt durch Olly und co durchschlagen kannst.
Dann würde ich dir zu C++ raten.
09/01/2012 21:57 Mr.Rockst4r#12
ASM?
09/01/2012 22:08 Mental Wreck#13
Assemblersprache

Da bitte :) Ist aufjedenfall von Vorteil wenn du bestimmte Sachen suchst. (In einem Programm / Game whatever)
09/01/2012 22:18 Mr.Rockst4r#14
Also momentan denke ich ,ich nehme c#.

Mein Kumpel meinte das wären die Unterschiede zwichen c++ und c# die ihm auf die schnelle einfallen:
c#
-leicht und schnell zu erlernen
-läuft nur unter windows aber unter umständen auch unter linux
-benötigt eine sogenannte laufzeitumgebung um die programme später die starten,deine zielgruppe muss das dan ebenfalls installier haben
-GUI's können SEHR leicht erstellt werden
-code kann unter umständen leicht decompiliert werden

c++
-dauert eine weile zu erlernen
-für anfänger eher ungeeignet
-windows und linux programme können erstellt werden
-benötigt keine laufzeitumgebung wie c#
-schneller code
-code kann nur schwer decombiliert werden


----
Und da hat anscheinend c# die besseren sachen ^^
09/02/2012 01:54 SmackJew#15
Quote:
Originally Posted by adjion View Post
Also momentan denke ich ,ich nehme c#.

Mein Kumpel meinte das wären die Unterschiede zwichen c++ und c# die ihm auf die schnelle einfallen:
c#
-leicht und schnell zu erlernen
-läuft nur unter windows aber unter umständen auch unter linux
-benötigt eine sogenannte laufzeitumgebung um die programme später die starten,deine zielgruppe muss das dan ebenfalls installier haben
-GUI's können SEHR leicht erstellt werden
-code kann unter umständen leicht decompiliert werden

c++
-dauert eine weile zu erlernen
-für anfänger eher ungeeignet
-windows und linux programme können erstellt werden
-benötigt keine laufzeitumgebung wie c#
-schneller code
-code kann nur schwer decombiliert werden


----
Und da hat anscheinend c# die besseren sachen ^^
Klingt nicht als hätte dein Kumpel allzu viel Erfahrung mit beiden Sprachen. Die Behauptung C# wäre leichter zu erlernen als C bzw. C++ rührt daher, dass Leute die mit dem Programmieren in C# anfangen schneller Ergebnisse sehen, einfach weil, wie dein Freund richtig aufführt, das erstellen von GUIs erheblich simpler ist als in C. Dazu gibt es allerdings einiges zu sagen:

Ein GUI ist immer OS spezifisch und gehört nicht zu den Sprachgrundlagen. Die grundlegenden Sprachkonstrukte gleichen sich in nahezu allen Sprachen, ob du diese in C++ oder C# lernst ist völlig egal. Eine Schleife, die Arbeitsweise von Funktionen, Klassen, Variablen und allen anderen Grundlagen sind in C# und C++ semantisch und syntaktisch so gut wie identisch. Was also übrig bleibt ist alles was nicht grundlegend zur Sprache gehört: externe Bibliotheken und APIs. Diese zu benutzen ist nichts weiter als sich anzulesen wie genau sie benutzt werden, eine Aufgabe die du sowohl in C# als auch in C++ hast.

Macht C# die Entwicklung unter Windows besonders einfach? Ja, die Sprache gehört Microsoft, go figure!

Ist C# einfacher zu erlernen? Nein.

Ist C# langsamer als C++? Sicher, ist es ein signifikanter Unterschied? Nein, virtuelle Maschinen sind heutzutage soweit entwickelt, dass der Geschwindigkeitsunterschied höchstens in Hochperformance Berechnungen eine Rolle spielt.

Ist C# die optimale Sprache um Cheats zu schreiben? Leider ein Nein, du hast zwar Zugriff auf die WinAPI, aber die Beschränkungen die dir die VM und das Sprachdesign aufdrücken sowie das Fehlen von Zeigern macht das Manipulieren von Speicher umständlich wenn nicht sogar unmöglich. Du kannst nun mal keinen C# Code in einen nativen Prozess injizieren, C# wird in Bytecode kompiliert, der von der virtuellen Maschine interpretiert und als Befehl an die CPU weitergeleitet wird, diese Ebene fällt bei nativen Sprachen weg. C++ wird in Assembler Instructions kompiliert und von der CPU direkt ausgeführt.

Zum Schluss möchte ich sagen, wenn du dich mit dem Programmieren vertraut machen willst und deine ersten Schritte mit bunten Fenstern schmücken möchtest, ist C# eine gute Wahl. Fühlst du dich dann in den Grundlagen sicher, ist der Umstieg auf C++ eine Sache von wenigen Stunden, da beide Sprachen syntaktisch nahezu identisch sind. Willst du sofort mit der Cheatentwicklung anfangen? Dann bist du mit C# gegenüber C++ klar im Nachteil.