PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c# / c++ /c ?



EpicByte
02.04.2010, 12:37
Moin,
ich möchte mich nun endlich mal auf eine von den oben genannten Programmiersprachen festlegen und nicht immer ein bisschen von allem lernen.
Ich möchte folgendes machen:
Botnet Viren
Crypter
Keylogger
Ich weiß ich bin ein 1337 H4xX0r007 und suche eiegntlich ein 1Klick Tool ;D
Was könnt ihr mir dafür empfehlen? Am besten noch mit Tutorials!
Was sind die Vor und Nachteile der einzelnen Sprachen?
Kennt jemand Boards die sich auf eine der Sprachen in dem von mir genanntem Bereich spezialisieren?

DoS
02.04.2010, 13:01
So, wie sich das bei dir anhört, würde ich dir glatt C# bzw. VB.NET empfehlen. Damit kannst du schnell Programme machen ohne wirklich zu wissen was die Fertig-Funktionen wirklich machen. Geht schnell, braucht man kaum Ahnung.

Wenn du aber etwas "Vernünftiges" machen willst, in das du mehr Zeit investieren musst, dann schau dir C bzw. C++ an. Das ist außerdem auch viel interessanter (finde ich) zu Lernen.

Aber ich kann dir einmal kurz darstellen, wie die Wahl enden kann.

Du nimmst C# bzw. VB.NET->

Du guckst dir hier im Forum Source-Codes und Tutorials an. Googelst manchmal ein bisschen und kannst schnell für andere Leute, die mit programmieren nichts am Hut haben, "imposante" Programme machen. Du klickst dir deine Programme zusammen, denkst manchmal und kopierst dir sonst Code (bzw. VB.NET/C# Quellcode bzw. -kot :) ).

Mit imposante Programme meine ich, dass du schnell GUI Programme erstellst, die jeder toll findet und benutzen kann.

Im Gegensatz dazu kannst du C/C++ nehmen. Damit kannst du erstmal nur rudimentäre Konsolenprogramme machen, die kaum einen normalen User interessieren, weil sie einen GUI haben wollen. Mit normalen User meine ich irgendwelche Freunde/innen, die nicht programmieren.

Intern ist es aber viel interessanter und du kannst in der Zukunft mehr machen. Natürlich brauchst du auch etwas mehr Durchhaltevermögen. In C++ wirst du dir vernünftigerweise einen gedrucktes Buch kaufen.

Wenn man das anhand der Benutzer hier betrachtet: "Framework Programmierer" lesen vielleicht am Computer etwas in Form von Tutorials oder vielleicht sogar noch eBooks. C++ Programmierer haben hier alle durchschnittlich ein vernünftig gedrucktes Buch gelesen.

Bei deiner Wahl sei noch das hier erwähnt: http://free-hack.com/showthread.php?t=16491

Wenn ich jetzt auf das eingehe, was du machen möchtest: Du möchtest nur eine Sprache lernen um Bots, Crypter und Keylogger zu programmieren. Bist wahrscheinlich auch ein RAT-Nutzer.
-> Lern gar keine Sprache und wenn C# oder VB.NET. Für solchen Scheiß, wie Keylogger, gibt es haufenweise Tutorials für Framework-Nutzer. Kannst auch schön "pasten", wie es sich gehört xD (Bitte nicht zu sehr, als Kritik für VB.NET usw. sehen, sondern natürlich als und nur für belustigende Zwecke Ironie).


Btw. Falsches Forum.

Mit freundlichen Grüßen
DoS

P.S. Ich sage es noch einmal: Falls irgendwer hier harte Kritik an Framework-Sprachen findet, so soll er das natürlich als nicht ernst gemeinte, lustige Ironie interpretieren. :D

B4n4n4
02.04.2010, 13:02
Naja manche geben an wenn sie mit "reinem" C etwas coden, aber mit C++ kannst du mehr machen. C# ist eine .net Sprache, habe ich mich nicht viel mit beschäftigt aber soll wohl etwas einfacher zu lernen sein als C/C++. Vermutlich sind die Möglichkeiten dann aber auch etwas eingeschränkter! Ich würde C++ lernen, bin auch gerade dabei. Brauchst halt nur eine Menge Ausdauer!

Hier noch ein auf C++ spezialisiertes Forum mit Tutorials etc.
http://www.c-plusplus.de/cms/index.php

MfG
B4n4n4

krypt0n
02.04.2010, 13:23
Naja manche geben an wenn sie mit "reinem" C etwas coden, aber mit C++ kannst du mehr machen.
o0 was kann man denn bitte mit C nicht was man mit C++ kann? Oder besser gefragt: was kann man mit C nicht programmieren?

Zu der Frage vom Threadersteller:
Lern C und dannach C++. Kauf dir ein dickes fettes C(++) Buch und arbeite es durch. Dann kannst du dir Sourcecodes von pub Tools ansehen und kannst nach einiger Zeit evt. sogar die eigenen Tools veröffentlichen.
Sei dir aber bewusst, dass C ziemlich kompliziert sein kann und das du nicht in 2 Wochen deine eigenen Bots und FUD Crypter schreiben wirst. Ausserdem wirst du mit C zumindest anfangs nur Konsolenprogramme schreiben.

EpicByte
02.04.2010, 13:38
Thx an alle :D

@DoS:
Möchte nicht nur böse Tools coden :D
Wollte nur fragen mit welcher der Sprachen ich die meisten Optionen in diesem Bereich habe.

@all:
Was ist eigentlich der genaue Unterschied zwischen C++ und C?
Warum haben so viele was gegen .NET Sprachen :D
Was sind die Vor- und Nachteile von .NET?

PS: Ich mag diesen ---> :D Smiley.... :D

Sawyer
02.04.2010, 13:57
Der Unterschied von C und C++ liegt in erster Linie darin, das C++ Objektorientierte ist (was es allerdings nicht aufzwingt). Natürlich liefert C++ auch viele neue Bibliotheken mit. Im Endeffekt kannst du gleich mit C++ anfangen.

Und die Behauptung man müsse keine Ahnung haben um in .NET Programmieren zu können, ist eine völlig unhaltbare Aussage. Es ermöglicht so gut wie alles was unter der Normalen Anwendungsentwicklung fällt. Das bedeutet wenn du kein eigenes Betriebssystem schreiben willst, reicht .NET völlig aus.

Die .NET Technologie ist innerhalb der Szene noch eher schwach vertreten. Das liegt zum einen daran das es eine Interpretierte Programmiersprache ist, welche zur Ausführung eine Laufzeitumgebung benötigt. Manche sehen das als Nachteil, ich jedoch nicht. Die daraus Resultierenden Vorteile wie: Automatische Speicherverwaltung, Programmoptimierungen und Anpassung zur Zielplattform sind nur einige Vorteile die daraus Resultieren.

Im Business der Softwareentwicklung ist .NET eine etablierte und häufig verwendende Plattform zur modernen Softwareentwicklung.

Ich finde es generell unerheblich in welcher Programmiersprache man Programmiert, die möglichen Ziele sollten umsetzbar sein. Des weiteren sollte man sich nicht durch Aussagen anderer Beeinflussen lassen, zumal diese meist Religiös motiviert sind. Deshalb solltest du selbst entscheiden mit welcher Programmiersprache du Arbeiten möchtest.

MfG, Sawyer

Sensus
02.04.2010, 14:12
Kann Sawyers Post unterschreiben.
Ich schätze du möchtest eh nur Windows als Host für deine guten sowieso bösen Apps nutzen.
Ich kann dir daher C# empfehlen, gerade weil diese Sprache noch so wenig Anklang gefunden hat, obwohl eh jeder Winrechner das .Net Framework draufhat.
Wer weiß, was uns Microsoft so durch seine nette Umgebung realisieren lässt ;)

Egal für was du dich nun entscheidest, du wirst keine Probleme damit haben.

Viel Spaß =)

DoS
02.04.2010, 14:23
Gut gesprochen Sawyer :).

Natürlich kann .NET auch vorteilhaft sein. Dass ich so negativ von .NET rede liegt daran, dass viele der User im .NET Forum "copy&paste" betreiben.

C# kann natürlich auch, wenn man es richtig anwendet, versteht und ein schönes Buch gelesen hat (wovon ich bei dir ausgehe) auch net(t ;)) sein.
Nur zeigen mir eben zu viele User, dass sie .NET für ihre Faulheit nutzen.

Allerdings ist .NET performancetechnisch gesehen eher schlechter, da die Programme wie du schon sagtest, zur Laufzeit übersetzt wird. Im Weiteren bringen die fertigen Funktionen zum Teil auch viel Balast (weil sie allgemein sind- hoffe du verstehst mich :) ) mit, welchen man für eine bestimmte Aufgabe gar nicht braucht.

Strings (STL) zum Beispiel (sehr schlechtes Beispiel) sind langsamer als Cstrings. Strings (STL) sind nur einfacher anzuwenden und damit fehlerunanfälliger.

Im Weiteren setzt man sich bei .NET , wenn ich mich nicht täusche, kaum mit internen Dingen auseinander, da alles schon in Funktionen vorgefertigt wird. Man bekommt also eine ungefähre Einführung und der Rest ist zur Benutzung der Funktionen?

Außerdem hilft man mit "Framework- Programmierung" Microsoft den Markt zu übernehmen (etwas drastisch formuliert).

Mal eine Frage: Wieso benutzten viele .NET zur kommerziellen Programmierung? Ich kann mir das irgendwie nicht vorstellen, da .NET doch vergleichsweise einfach zu dekompilieren ist.

Mit freundlichen Grüßen
DoS

P.S. Ich mag vernünftiges Diskutieren :)

Sawyer
02.04.2010, 14:44
Natürlich kann .NET auch vorteilhaft sein. Dass ich so negativ von .NET rede liegt daran, dass viele der User im .NET Forum "copy&paste" betreiben.
Das ist allerdings noch keine Rechtfertigung mit Verallgemeinerungen um sich zu werfen ;)


Allerdings ist .NET performancetechnisch gesehen eher schlechter, da die Programme wie du schon sagtest, zur Laufzeit übersetzt wird. Im Weiteren bringen die fertigen Funktionen zum Teil auch viel Balast (weil sie allgemein sind- hoffe du verstehst mich ) mit, welchen man für eine bestimmte Aufgabe gar nicht braucht.
Die geringere Performance ist zwar rein theoretisch da, fällt aber in der Praxis heutzutage kaum mehr auf (dank JIT-Compiler). Außerdem sind die Systeme heute so Leistungsfähig das es so oder so kaum ins Gewicht fällt. Was du allerdings mit "Balast" meinst kann ich nicht nachvollziehen. Es ist zwar richtig das .NET mit einer Zwischensprache arbeitet, jedoch dient das nur zur allgemeinen Verständigung der .NET Programme unter sich und natürlich für den Compiler. Wenn man es genau nimmst stellt diese Zwischensprache die Befehle nur "vereinfacht" dar.


Im Weiteren setzt man sich bei .NET , wenn ich mich nicht täusche, kaum mit internen Dingen auseinander, da alles schon in Funktionen vorgefertigt wird. Man bekommt also eine ungefähre Einführung und der Rest ist zur Benutzung der Funktionen?
Das ist aber bei C/C++ meiner Auffassungsgabe nicht anders. Auch dort werden viele Klassen für Häufig benötigte Arbeiten mitgeliefert. Das ist bei .NET nicht anders.


Mal eine Frage: Wieso benutzten viele .NET zur kommerziellen Programmierung? Ich kann mir das irgendwie nicht vorstellen, da .NET doch vergleichsweise einfach zu dekompilieren ist.
Weil es eine gute Basis zur Software-Entwicklung unter Windows-Systemen ist. Des weiteren lässt sich das dekompilieren mit verschiedenen Techniken zumindest erschweren (nichts ist sicher)

MfG, Sawyer

Cristhecrusader
02.04.2010, 14:53
c++ ist im prinzip die erweiterung der objektorientierung von c

DoS
02.04.2010, 16:27
"Das ist allerdings noch keine Rechtfertigung mit Verallgemeinerungen um sich zu werfen ;)"

Ok, da war ich ungenau ;) . Allerdings ist die Wahrscheinlichkeit dann (wenn mehrere Leute schon C&P nutzen) höher, dass man später auch C&P nutzt.

"sind die Systeme heute so Leistungsfähig das es so oder so kaum ins Gewicht fällt"

Da hast du bei Desktop PCs recht. Allerdings gibt es auch immer mehr Benutzer von Notebooks (lange Akkulaufzeit, einigermaßen großer Bildschirm 13/15 Zoll, einigermaßen leicht und schlechteren CPU) bzw. Netbooks. Ich denke schon, dass die Laufzeitübersetzung bei größeren Programmen etwas ausmacht.

Balast hatte ich versucht mit dem unglücklichen Beispiel der Strings zu erklären. Strings (STL) machen einfach selber automatisch mehr gegenüber den Cstrings. Sind dadurch fehlerunanfälliger, aber auch perfomancetechnisch gesehen schlecher. Mit Balast meinte ich also automatische Prüfungen usw. die man nicht zwingend braucht, sondern nur das Leben erleichtern.

"Das ist aber bei C/C++ meiner Auffassungsgabe nicht anders. "

Doch^^, denn bei C/C++ lernt man viel genauer, wie das Interne funktioniert. Am Beispiel der Cstrings versteht man also, dass das in Wirklichkeit char-Arrays sind, die sich mit einer Nullterminierung abschließen.

"Des weiteren lässt sich das dekompilieren mit verschiedenen Techniken zumindest erschweren"

Ich denke du redest von Obfuscatoren u. a. . Das stimmt zwar, allerdings ist das noch lange nicht so schwer, wie bei C/C++.

Mit freundlichen Grüßen
DoS

Sawyer
02.04.2010, 16:37
Doch^^, denn bei C/C++ lernt man viel genauer, wie das Interne funktioniert. Am Beispiel der Cstrings versteht man also, dass das in Wirklichkeit char-Arrays sind, die sich mit einer Nullterminierung abschließen.
Für mich ist es einfach nur unschlüssig wenn man behauptet so etwas lernt man bei .NET nicht. Es ist doch wohl klar das ein String intern mit einem Char Array arbeitet. Also für mich ist das reine Auslegungssache.

MfG, Sawyer

EpicByte
02.04.2010, 16:43
Sowas hab ich gesucht^^
Ne geile Diskussion welche Programmiersprache besser ist :D

Sawyer
02.04.2010, 16:59
Es ist nicht meine Absicht klar zustellen welche Sprache besser ist, ich betohne immer wieder das es nicht 'die beste Sprache' gibt. Es ist abhängig davon welche Dinge man Realisieren will.

MfG, Sawyer

DoS
02.04.2010, 17:12
Für mich ist es einfach nur unschlüssig wenn man behauptet so etwas lernt man bei .NET nicht. Es ist doch wohl klar das ein String intern mit einem Char Array arbeitet. Also für mich ist das reine Auslegungssache.


Zum Beispiel hier http://openbook.galileocomputing.de/csharp/ wurde nirgendwo gesagt, dass ein String intern ein Char-Array ist. Habe das kurz überflogen und Google zu Hilfe genommen. Für dich ist das klar ( du hast ja auch C++ gelernt ;) ) ,aber für Leute die nur .NET-Sprachen lernen nicht.

Die anderen Dinge, die ich in meinem Post zuvor erwähnt habe, sind nun mal in C++ vorteilhafter.

Für den Threadersteller: Grundlegend kann man sagen, dass C# durch das Framework einfach viel mehr fertige Funktionen hat, die man einfach nutzen kann. Bei C++ hingegen musst du mehr selbst machen.

Man kann also mit C# schneller ein Programm realisieren. Mit C++ dauert das länger, aber man sieht unter Umständen besser, was intern passiert, da man das selber programmieren muss.
Zudem kann man mit C/C++ etwas schnellere Programme schreiben. C# ist dafür allerdings unter Umständen fehlerunanfälliger. Außerdem ist dein Code in C++ ohne weiteres hinzutun nach der Kompilierung "sicherer" als in C#.

In einer Liste halte ich fest:

C/C++ Vorteile:
-etwas schneller beim Laufen (Programm)
-mehr Einblick in das Innere (unter Umständen)
-Quellcode ist erst einmal sicherer
-braucht kein Framework auf dem Computer
-portabel

C# Vorteile:
-Schneller Programme schreiben
-fehlerunanfälliger (unter Umständen, wobei C/C++ auch Strings aus der STL einbinden kann)
- einigermaßen ~portabel auf Linux durch Mono (Ich schreibe das jetzt, weil ich schon weiß das Sawyer das sonst später sagt ;) )

Das ist soviel , wie ich jetzt mit Zähne zusammen Beißen an Negatives an C++ entbehren kann ;) . Ich hoffe das Sawyer jetzt auch einigermaßen zufrieden ist :) .

Falls jemand noch weitere Vorteile in einer Sprache sieht, so fühle er sich frei uns davon zu infomieren ;).

Mit freundlichen Grüßen
DoS

EpicByte
02.04.2010, 17:30
Thx für die Zusammenfassung :D

@Sawyer:
Hab ich falsch formuliert ich meinte eher welche für mich die bessere ist ;D

BA2SER
02.04.2010, 17:39
ich habe mir das buch c++ in 21 tagen geholt (http://books.google.com/books?id=DurMy3Nh04gC&printsec=frontcover&dq=c%2B%2B+in+21+tagen&source=bl&ots=c6S_aPYY5A&sig=bNixrxdJgfbBqTEUobnLH0iQNAM&hl=de&ei=Fx22S6OSI4WwnQONwtwj&sa=X&oi=book_result&ct=result&resnum=2&ved=0CAgQ6AEwAQ#v=onepage&q=&f=false)

is alles sehr gut erklärt

krypt0n
02.04.2010, 17:46
Der Unterschied von C und C++ liegt in erster Linie darin, das C++ Objektorientierte ist (was es allerdings nicht aufzwingt). Natürlich liefert C++ auch viele neue Bibliotheken mit. Im Endeffekt kannst du gleich mit C++ anfangen.
Es macht sehr wohl Sinn sich erstmal mit C zu beschäftigen. Wie du sagst basiert C++ auf C90 und ist dazu auch vollständig kompatibel. Trotzdem gibt es im Verständnis einige grundlegende Differenzen (unter anderem die Möglichkeit OO zu programmieren). Darum würde ich eher empfehlen sich erst einmal in C einzuarbeiten und nachher darauf aufbauend noch C++ zu lernen (respektive die Dinge, die C++ "mehr hat").


Die .NET Technologie ist innerhalb der Szene noch eher schwach vertreten. Das liegt zum einen daran das es eine Interpretierte Programmiersprache ist, welche zur Ausführung eine Laufzeitumgebung benötigt. Manche sehen das als Nachteil, ich jedoch nicht. Die daraus Resultierenden Vorteile wie: Automatische Speicherverwaltung, Programmoptimierungen und Anpassung zur Zielplattform sind nur einige Vorteile die daraus Resultieren.
Garbage collection hört sich anfangs gut an, ist aber meistens doch nicht so magisch wie man es sich vorgestellt hat.
Die anderen Vorteile sind nicht wirkliche Vorteile, Optimierung hat man schon beim Compiler.


Im Business der Softwareentwicklung ist .NET eine etablierte und häufig verwendende Plattform zur modernen Softwareentwicklung.
Es stimmt, dass .NET Sprachen mittlerweile ziemlich oft genutzt/gefordert werden, doch ist C(++) noch immer DIE Sprache schlechthin. Dies fällt also als Grund weg.


Die geringere Performance ist zwar rein theoretisch da, fällt aber in der Praxis heutzutage kaum mehr auf (dank JIT-Compiler). Außerdem sind die Systeme heute so Leistungsfähig das es so oder so kaum ins Gewicht fällt. Was du allerdings mit "Balast" meinst kann ich nicht nachvollziehen. Es ist zwar richtig das .NET mit einer Zwischensprache arbeitet, jedoch dient das nur zur allgemeinen Verständigung der .NET Programme unter sich und natürlich für den Compiler. Wenn man es genau nimmst stellt diese Zwischensprache die Befehle nur "vereinfacht" dar.
Haha "theoretisch"... So einen Mist hab ich ja schon lange nicht mehr gelesen... Es ist zu 100% relevant, dass Applikationen in C# DEUTLICH (Ich schätze so Faktor 5) weniger schnell sind als Programme in C (C++ ist auch etwas langsamer als C AFAIK) und die Behauptung, dass dies keine Rolle spiele ist schlichtweg Unsinn. Es spielt also keine Rolle, wenn ein ZIP-Tool doppelt so lange braucht? Oder wenn ein Videocodec nur 720p anstatt 1080p unterstützt? Auserdem ist es genau der falsche Ansatz, langsame Sprachen mit der schnellen Hardware zu erklären...



Das ist aber bei C/C++ meiner Auffassungsgabe nicht anders. Auch dort werden viele Klassen für Häufig benötigte Arbeiten mitgeliefert. Das ist bei .NET nicht anders.
Meistens lernt man mit den Grundlagen von C/C++ gleich auch noch die absoluten Basics der Hardware und erhält tiefe einblicke in die Funktion des OS etc.



C/C++ Vorteile:
-etwas schneller beim Laufen (Programm) etwas ist wirklich untertrieben! C IST die schnellste Sprache nach ASM
-mehr Einblick in das Innere (unter Umständen)
-Quellcode ist erst einmal sicherer Auch C lässt sich dekompillieren nur ist der vom Compiler optimierte Code meistens unlesbar und extrem kompliziert :D
-braucht kein Framework auf dem Computer
-portabel Kannst gleich sagen, dass es auf (evt. beinahe) jedem System einen C Compiler gibt

C# Vorteile:
-Schneller Programme schreiben Nicht unbedingt - Ich finde C# nicht wirklich viel "einfacher" als C++
-fehlerunanfälliger (unter Umständen, wobei C/C++ auch Strings aus der STL einbinden kann) verstehe ich nicht genau?!?
- einigermaßen ~portabel auf Linux durch Mono (Ich schreibe das jetzt, weil ich schon weiß das Sawyer das sonst später sagt ;) ) Mono als Argument für C# zu verwenden finde ich ziemlich dreisst. Nur weil Winzigweich zu faul war ihre Sprache auch auf alternativen Betriebsystemen lauffähig zu machen muss Novell das bezahlen...

Wie ihr seht erachte ich C# als eine ziemlich sinnlose Sprache, von VB(.NET) fange ich lieber gar nicht an zu reden. Wenn du die Studentensprache schlechthin lernen willst guck dir JAVA an, sonst empfehle ich dir C und als Skriptsprache Python.

Sawyer
02.04.2010, 18:15
Ich wollte damit nur sagen das bei Normalen Anwendungen kein Geschwindigkeitsnachteil festzustellen ist. Es ist sicherlich richtig das bestimmte Anwendungen Langsamer Ablaufen als ein Native Compiliertes, das will ich auch nicht abstreiten. Ich habe bei einigen Test zu dieser Frage gelesen, das der Geschwindigkeitsnachteil gegenüber C++ gerade einmal 10 % beträgt.

Ich kann dazu nur sagen das die Geschwindigkeit nicht alles ausmacht. Ich habe auch mehrfach erwähnt das es mir nicht darum geht welche Sprache besser ist, sondern welche die eigenen Anforderungen erfüllt.

MfG, Sawyer