| Internet Allgemein Flatrates, Webspace, Protokolle und alles rund ums Internet hier rein. |
Diskussion: Socketprogrammierung im Forum Internet Allgemein, in der Kategorie Web, Network & Multimedia Palace; Anzeige Abend, Ich hätte 2 Fragen: 1. Wie gefragt sind denn Netzwerkprogrammierer in C und C++ heutzutage? 2. Welche Rolle ...
![]() |
| | #1 (permalink) |
| Registriert seit: 29.06.11 ![]() Likes: 0 | Anzeige Abend, Ich hätte 2 Fragen: 1. Wie gefragt sind denn Netzwerkprogrammierer in C und C++ heutzutage? 2. Welche Rolle spielt Socketprogrammierung in C, C++ in der Security-Branche? Oder werden eher andere Programmiersprachen und Bibliotheken genutzt? Auf Antworten würd ich mich freuen. |
| | |
| | #2 (permalink) |
| Registriert seit: 15.01.12 ![]() Likes: 0 | hallo deine Fragen kann ich zwar nicht direkt beantworten. aber wenn du dich dafür interessierst kann ich dir das Tutoriel empfehlen: Winsock Tutorial: Grundlagen und TCP vieleicht hilft es dir ja^^ |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Du kannst auch gleich eine High Level Bibliothek benutzen. Z.b. die SFML bietet hierfür ein Netzwerk Packet an. sfml-dev.org Freundliche Grüße Stazer | |
| | |
| | #4 (permalink) |
| Registriert seit: 31.07.06 ![]() Likes: 32 | Prinzipiell gibt es für alle Standardaufgaben Bibliotheken. Ich rate Dir von ihnen ab. Warum? Weil Du nichts dabei lernst wenn Du eine fertige Funktion aufrufst. Wenn es Dir darum geht etwas bis ins Detail zu verstehen, solltest Du das Rad neu erfinden. Für Sortieralgorithmen wie Heapsort, Quicksort, Selectionsort, Mergesort, Bubblesort, gibt es viele fertige Funktionen, die man einfach aufrufen kann. Dennoch wirst Du durch den Aufruf keine einzige davon verstehen, geschweige denn deren asymptotische Laufzeitkomplexität berechnen können. Es geht den Universitäten bei der Vermittlung solcher Inhalte natürlich nicht darum, dass Du irgend eine fertige Funktion aufrufen kannst, sondern Du selbst sollst eine solche Funktion entwickeln können. Du sollst also nicht bloß Anwender, sondern Denker/Entwickler sein, denn das ist es was den Hacker vom Skriptkiddy unterscheidet. Niemand bewirbt sich als "Netzwerkprogrammierer in C". Firmen sind eher an Lösungen interessiert. Am Markt bist Du gut, wenn Du viele Technologien, Paradigmen und Sprachen drauf hast. Ansi-C ist da nur ein geringer Teil. Zum Verständnis einer TCP-basierten Socketverbindung ist Ansi-C sehr geeignet, da Du hier eben nicht einfach eine fertige Funktion aufrufst, sondern jeden Teilschritt der Kommunikation verstehen und programmieren musst und nur so lernt man es. Du fragtest noch nach Security. Nun, um einen DDOS-Angriff zu programmieren, sind das die Grundlagen. |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 29.06.11 ![]() Likes: 0 | Aber heutzutage merkt man irgendwie, dass C und C++ sehr selten, vor allem in der Security-Branche verwendet werden. Viel mehr werden Python, Rubby, Perl verwendet (auch für Exploits..). Da fragt man sich dann ob es wirklich sinnvoll ist Socketprogrammierung in C zu lernen.. |
| | |
| | #6 (permalink) |
| Registriert seit: 31.07.06 ![]() Likes: 32 | Deine Annahme ist nicht korrekt. Es gibt weltweit sehr viel mehr Codezeilen in C als in Ruby, Perl oder Python, vermutlich sogar mehr Codezeilen in C als in den o.g. drei Skriptsprachen zusammen. Unix, Linux, Windows, ... Kernel und komplette Betriebssysteme sind in C geschrieben. Die meisten Anwendungen werden in C / C++ geschrieben (Winzip, Amarok, Ktorrent, ...) allein schon wegen der Performance. Seit ein paar Jahren macht sich auch Java ganz gut. Versuche mal einen Web-Server wie den Apache in einer rein skriptbasierten Sprache zu schreiben. Das geht performancetechnisch gar nicht. Du darfst auch eine Skriptsprache nicht mit einer Programmiersprache vergleichen, denn diese erfüllen einen anderen Zweck. Bitte nicht missverstehen, ich liebe Skriptsprachen und habe mehrere hundert Skripte in Form kleiner bis mittelgroßer Problemlösungen auf den unterschiedlichsten Systemen geschrieben. Für größere und komplexere Anwendungen muss jedoch eine Programmiersprache her, aus guten Grund. Exploits kann man auch mit Skriptsprachen schreiben, das ist korrekt. IT-Security besteht jedoch nicht nur aus Exploits, sondern aus sehr viel mehr. Letzten Endes ist es irrelevant in welche Programmier- oder Skriptsprache man einen Exploit schreibt. Funktionieren muss er, nur darauf kommt es an. Ich für meinen Teil schreibe u.a. Crypto-Anwendungen und Decrypter. Da kommt es extrem auf die Performance an, die Du mit keiner Scriptsprache der Welt hinbekommst. Audit-Tools wie "John" sind daher selbstverständlich auch in C geschrieben. Meine Empfehlung lautet das eigene Wissen nicht auf eine bestimmte Skript-Sprache zu beschränken, sondern sich mit vielen Dingen zu befassen, die gängig sind. Hierzu gehören Perl, Python, PHP ebenso wie C, C++ und Java. ... Keep an open mind ... |
| | |
| | #7 (permalink) | |
| Senior Member Registriert seit: 07.01.03 ![]() Likes: 19 | Zitat:
2. Was ist der gute Grund? | |
| | |
| | #8 (permalink) | |
| Registriert seit: 21.08.10 ![]() Likes: 10 | Zitat:
BTT. Socketprogrammierung gehört zum Standartrepertuar eines jeden Programmierers. Es gibt zig Kommunikationsprotokolle, aber alle Kommunizieren über einen Weg: Sockets. Schau dir mal die Dokumentation vom Zotteljedi an btw. /€1: Nichts deato trotz, es gibt genügend Große Projekte die in Skriptsprachen umgesetzt sind. Heutige Rechner haben die Leistung. Schließlich lasse ich einfach mal so im Raum stehen, dass Java - die aktuell populärste Sprache - interpretiert wird. Geändert von blue182 (18.01.12 um 09:07 Uhr) | |
| | |
| | #9 (permalink) | ||
| Senior Member Registriert seit: 07.01.03 ![]() Likes: 19 | Zitat:
Und "Skriptsprachen" von "Programmiersprachen" abzugrenzen, ist genauso Schwachsinn. Das sind keine disjunkten Mengen, sondern Unter- und Obermenge. Auch in einer Skriptsprache wird programmiert. Zitat:
| ||
| | |
| | #10 (permalink) | |
| Registriert seit: 31.07.06 ![]() Likes: 32 | Zitat:
Verbieten möchte ich nichts. Du kannst auch Äpfel mit Birnen vergleichen, wenn Du Spaß daran hast. Vielmehr wollte ich mit meiner Nachricht ausdrücken, dass es Teile der Informatik gibt, die man mit Programmiersprachen effizienter abbilden kann und Teile, die man mit Skriptssprachen effizienter abbilden kann. Sicherlich gibt es auch Dinge, die man mit beiden abbilden kann. Ich habe das Ganze hier beschrieben, vielleicht wird's dann deutlicher. | |
| | |
| | #11 (permalink) | |||
| Senior Member Registriert seit: 07.01.03 ![]() Likes: 19 | Zitat:
![]() Zitat:
Ansonsten: Brauchen wir nen Mod, der hier wieder aufs Thema zurücklenkt? Ich versuchs mal. >1. Wie gefragt sind denn Netzwerkprogrammierer in C und C++ heutzutage? "Kaum", da "Netzwerkprogrammierer" und "C/C++" schon sehr einschränken. Es gibt sicher Leute, die nichts anderes machen, aber sich von vornherein nur auf Netzwerk und C/C++ darauf zu beschränken, klingt nicht sinnvoll (falls es überhaupt geht). >2. Welche Rolle spielt Socketprogrammierung in C, C++ in der Security-Branche? Oder werden eher andere Programmiersprachen und Bibliotheken genutzt? Das sind einfach zwei verschiedene Aspekte. Du kannst auch in vielen anderen Sprachen ein (raw) Socket aufmachen und deine Pakete selbst zusammenbauen, vermutlich sogar bequemer als in C/C++. Die Thematik ist sicher nicht unwichtig. Die Sprachwahl sollte davon abhängen, ob das Ergebnis den Aufwand rechtfertigt. Ich möchte aber anmerken, dass jede größere Software aus unterschiedlichen Komponenten besteht, von denen nicht alle die gleichen Anforderungen an die Sprache stellen: Die Sprachwahl richtet sich also nicht zwingend nach den Gesamtpaket, sondern nach der Komponente - im Grunde genau das, was Hackse in seinem verlinkten Post schreibt. Ansonsten zitier ich mal Hackse: Zitat:
| |||
| | |
| | #12 (permalink) | |
| Registriert seit: 31.07.06 ![]() Likes: 32 | Zitat:
Sieh Dir mal folgende beiden Links an: Universität Paderborn Wikipedia Geändert von Hackse (18.01.12 um 14:50 Uhr) | |
| | |
| | #13 (permalink) |
| Senior Member Registriert seit: 07.01.03 ![]() Likes: 19 | Sorry, vielleicht hab ich mich falsch ausgedrückt, der Begriff "Skriptsprache" ist natürlich etabliert. Aber der erste Satz des Wikipedia-Artikels bringt es doch auf den Punkt: "Skriptsprachen (häufig auch Scriptsprachen) sind Programmiersprachen". |
| | |
| | #14 (permalink) | |
| Registriert seit: 31.07.06 ![]() Likes: 32 | Zitat:
Der Grund meiner initialer Unterscheidung zwischen Programmiersprachen und Skriptsprachen unterlag meiner These, dass es Dinge gibt, die man nicht ausschließlich in Skriptsprachen schreiben kann, einfach weil die Performance es nicht zulässt oder weil es eben bestimmte Dinge gibt, die sich nur in Binärcode abbilden lassen (z.B. Kernelmodule). Du kannst keinen performanten Web-Server in einer Skriptsprache abbilden. Ich meine hiermit nicht die Web-Applikation in PHP, sondern die Serversoftware, die die Anfragen von etlichen Usern annimmt und verarbeitet. Du kannst keinen performanten Bruteforcer (z.B. für MD5) in einer rein skriptbasierten Sprache abbilden Du kannst keine performante CAD-Applikation rein skriptbasiert schreiben Skriptsprachen sind, so sehr ich sie schätze und täglich verwende, für manche Aufgaben zu langsam und aufgrund des zu interpretierenden Codes ungeeignet. EDIT: Solltest Du der Ansicht sein, dass meine These hinsichtlich Performance und Skriptsprachen nicht korrekt ist, können wir einen Performance-Vergleich durchführen. Hierzu wird es eine rechenintensive Aufgabenstellung geben, die ich z.B. in Ansi-C löse und Du in einer beliebigen Skriptsprache. Dann können wir fundiert bewerten, ob die These korrekt ist oder nicht. :-) Geändert von Hackse (18.01.12 um 15:17 Uhr) | |
| | |
| | #15 (permalink) |
| Registriert seit: 12.08.10 ![]() ![]() Likes: 30 |
__________________ http://www.openvas.org |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Socketprogrammierung C,Problem mit accept() | sw33tlull4by | Code Kitchen | 3 | 01.09.07 19:53 |
| Socketprogrammierung mit Dev C++ - "ws2_32.lib" verlinken... | link | Code Kitchen | 1 | 24.11.04 12:42 |