Utiliser des sockets raw avec C #
Je veux écrire un scanner de port en C# et je ne peux pas utiliser SocketType.Raw raw sockets ont été retiré de la version de bureau de windows. Je ne peux pas utiliser SharpPcap un ou l'autre ou les autres wrapper pour Winpcap comme je l'ai utiliser PPPoE pour la connexion à internet et Winpcap ne supporte pas les périphériques PPP.
J'ai besoin d'utiliser une bibliothèque qui implémente les sockets raw et ne pas compter sur winpcap.
Des idées? Essentiellement, j'ai besoin d'envoyer SYN, recevoir SYN/ACK ou la taxe de vente, mais ne pas envoyer d'accusé de réception de retour.
edit:
Pour les gens qui ne croient pas les sockets RAW sont allés de la version de bureau de Windows, voir ici: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740548(v=vs. 85).aspx
Sur Windows 7, Windows Vista, Windows XP avec Service Pack 2 (SP2) et Windows XP avec Service Pack 3 (SP3), la capacité à envoyer du trafic sur les sockets raw a été restreinte de plusieurs façons:
- TCP données ne peuvent pas être envoyés sur les sockets raw.
- Des datagrammes UDP avec une défaillance de l'adresse de la source ne peut pas être envoyé sur les sockets raw. L'adresse IP source pour les sortants du datagramme UDP doit exister sur une interface réseau ou le datagramme est supprimée. Ce changement a été fait pour limiter la capacité de code malveillant à créer distribuées de déni de service attaques et les limites de la possibilité d'envoyer de l'usurpation de paquets (paquets TCP/IP avec une fausse adresse IP source).
- Un appel à la
bind
fonction avec un socket raw pour leIPPROTO_TCP
protocole n'est pas autorisé.
Note Labind
fonction avec un socket raw est permis pour les autres protocoles (IPPROTO_IP
IPPROTO_UDP
ouIPPROTO_SCTP
par exemple).
source d'informationauteur Mack
Vous devez vous connecter pour publier un commentaire.
Prendre note sur la façon de nmap, il l'a fait et que pour l'instant je crois que votre option serait d'aller à un niveau inférieur à la trame ethernet.
"Nmap prend uniquement en charge les interfaces ethernet (y compris la plupart des cartes sans fil 802.11 et de nombreux clients VPN) pour des paquets bruts des analyses. Sauf si vous utilisez l'-sT -Pn options de connexions RAS (tels que les PPP numérotations) et de certains clients VPN ne sont pas pris en charge. Ce soutien a été abandonné lorsque Microsoft a supprimé raw socket TCP/IP sous Windows XP SP2. Maintenant Nmap doit envoyer de niveau inférieur trames ethernet à la place."
Donc - qui nous amène à:
http://www.codeproject.com/KB/IP/sendrawpacket.aspx
Comme cela:
http://www.winsocketdotnetworkprogramming.com/clientserversocketnetworkcommunication8h.html
Aussi, à quel point était-ce supprimés à partir de Windows? J'ai fait un client de chat pour un ami la semaine dernière; ainsi, http://msdn.microsoft.com/en-us/library/system.net.sockets.sockettype.aspx , encore qu'il énumère comme étant active.
Essayez d'exécuter Visual Studio que l'administrateur
Clic droit ---> exécuter en tant qu'administrateur
Puis d'exécuter des programmes avec les sockets raW..