2010-02-22 19 views
2

Je joue avec un moyen de lancer des tricheurs dans Modern Warfare 2 (lorsque vous êtes l'hôte). J'ai été capable d'utiliser winpcap pour renifler des paquets afin d'identifier les noms des joueurs et leurs adresses IP.Bloquer toute adresse IP sur un ordinateur en codant en .Net (C#)

J'ai besoin d'un moyen de bloquer tout le trafic (ou juste le trafic UDP des IP cibles vers ma machine). Par conséquent, le joueur sera timeout/lagout.

Est-ce que quelqu'un sait d'une bibliothèque disponible qui me permet de le faire facilement. Je pourrais y aller à la dure et installer Windows DDK et déconner en C++ pour créer un pilote NDIS de bas niveau, mais étant tout à fait rouillé sur C++ et tous les problèmes de compilation typiques qui se produisent lors de la compilation du code de template, je préfère bibliothèque codée prête pour ceci.

Ou peut-être que quelqu'un a une meilleure idée qui fonctionnerait?

Solution: utilisez le pare-feu Windows. API facile à créer et supprimer des règles à la volée. Any way to turn the "internet off" in windows using c#?

Et un programme de test qui fonctionne maintenant. J'ai sorti 2 personnes du jeu.

+0

Si le lecteur est derrière un proxy Internet, vous bloquerez tout le trafic provenant de n'importe qui sur le même serveur proxy. –

+0

True. Mais les chances pour que ce soit un problème ici est minime, car ce jeu nécessite presque tout le monde de ne pas être derrière un proxy (héberger). Et si cela devait arriver, les chances sont que le tricheur joue avec un ami. Et puis ils devraient partir tous les deux. Oh. Si vous pouvez également bloquer par Port, vous pouvez isoler 1 personne derrière une adresse IP commune. – Wolf5

Répondre

1

Utilisez-vous un pare-feu? Peut-être que vous pourriez utiliser l'API du pare-feu pour rejeter les demandes de connexion de l'hôte fautif. Par exemple, le "Windows Firewall with Advanced Security" API est probablement disponible sur beaucoup de PC.

+0

Je pensais à peut-être distribuer cela entre amis, donc je veux avant tout quelque chose que je peux distribuer (ou qui est facilement réinstallable si je réinstalle mon système d'exploitation). Si je ne peux rien faire d'autre, ce que vous dites pourrait être une voie à suivre. Mais quels firewalls viennent avec une API prête à l'emploi? – Wolf5

+0

Pare-feu Windows – Wolf5

0

Vous devriez être en mesure de mettre une entrée invalide pour cette adresse IP dans le fichier Windows Hosts. Voici un code C# qui pourrait fonctionner pour vous.

This place décrit un moyen d'utiliser IPSec pour filtrer les adresses IP. C'est très manuel cependant. Voici le processus:

Sous Stratégies de sécurité Paramètres/IP Local Security

  1. Créer une nouvelle liste de filtres IP
  2. IP source est mon adresse IP
  3. Destination (dans cet exemple) est 129.74.250.101 (nd.edu)
  4. Protocole est une
  5. Créer une nouvelle stratégie de sécurité IP (utiliser l'authentification Kerberos 5)
  6. Ajouter un I P Règle de sécurité (cette règle n'est pas un tunnel) (toutes les connexions réseau)
  7. Ajoutez la nouvelle liste de filtres IP que vous venez de créer. (Exiger une garantie)
  8. Affectez la nouvelle politique

Si vous pouviez savoir comment faire en C#, vous êtes un gagnant.

+0

L'OP veut bloquer les demandes entrantes. Est-ce que l'édition du fichier hosts fera cela? Je pensais que cela ne concernait que le trafic sortant. – ChrisF

+0

@ChrisF: Est-ce important?Si votre ordinateur ne peut renvoyer aucune information, sa connexion sera interrompue. Leur ordinateur ne sera pas en mesure d'obtenir des informations de position ou d'état du jeu, de sorte qu'ils ne peuvent pas continuer à tricher. –

+0

@Scott - c'est vrai, mais vous ne voulez peut-être pas le surcoût des demandes entrantes. BTW Je n'ai pas voté en bas, j'essayais juste de comprendre d'où vous veniez avec votre suggestion. – ChrisF