IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Controller les paquets UDP sortant .


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Par défaut Controller les paquets UDP sortant .
    Bonjour,

    Voila dans le cadre d'un projet d'asser grande envergure que je V vous expliquez tout de suite je souhaite obtenir des informations sur le controle des paquets UDP entrant & sortant via le port 27960 et quelque autres.

    Le projet :

    Voila, comme certain d'entre vous je pratique le jeu en reseaux le soir pour me détendre mais comme vous le savez, ou est la détente lorsque l'on tombe nez a nez avec des cheater .

    Pour information je joue au FPS gratuit 'Wolfenstein : Enemy Territory', la plupart des programmes de triche rencontré est le trés connue AIMBOT, qui, comme son nom l'indique, améliore l'aim (la visée) jusqu'au point de porté le viseur directement dans la tete de l'énemie.

    Je voudrais donc dans un premier temps, tester 1 à 1 tout les aimbot disponible sur le net, est vérifier quel sorte de paquets UDP il envoie au serveur .
    Je voudrais ensuite les enregister dans un base de donné spécifique et placé du coté serveur une sorte de FireWall qui capterait avant le serveur chaque packet UDP entrant et vérfirer aux pret de la base de donné si une partie du packet (les trajectoire des balles) serait les memes que celle enregistrer précedament lors des testes .

    Si, le firewall trouve ceci il envoie une requete aux serveur avec l'ETPRO Guild (c'est un numeros unique atribué a chaque joueurs qui permet de l'identifier, il est basé sur le HardWare est cripté comme une empreinte MD5) et bannie temporairement le joueur automatiquement .

    Voila, je n'entre pas beaucoup dans les détails mais si vous voulez plus de présision sur le THEORIE, je me ferait un plaisir de tout bien expliquer .

    Donc maintenant,

    La question :

    Comment, coté client vérifier tout les packet sortant et les décortiquer AU MAXIMUM, mais vraiment AU MAXIMUM que toute ses entrails soit a jour pour pouvoir isolé chaque partie et gardé celle qui m'intéresse .

    Je n'ai pas de conaissance en programmation réseaux, car je débute en delphi mais meme si je ne meine pas mon projet a therme (ce qui me ferait biensur beaucoup de peine ) j'aurais quand meme, je pence, apris beaucoup !

    Voila, je m'excuse de mon ortographe et des quelque abréviation SMS qui ne font pas plaisir a certains .

    Je vous remercis tous d'avance et espere avoir une reponce concrete .

    Cordialement, Max

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 887
    Par défaut
    Salut Max,

    Le sujet de ton programme est vraiment interessant, et moi même je voulais écrire un programme similaire mais je n'ai pas encore pu par manque de temps. Le programme était aussi un programme anti-tricheurs dans le principe mais pas dans la forme. Je m'explique;

    En fait je vois mal quel type de paquet tu veux capter avec ton firewall logiciel : les programmes de triche n'envoie pas au serveur des messages du type "salut je suis un tricheur!" Blague à part, je pense que ta méthode serait extremement compliquée / couteuse en temps CPU ( à chaque envoi de paquets tu testerais si le gars triche ? T'imagine l'impact sur les performances, à la fois sur la machine locale, mais sur la vitesse de tir ? Ton gars il risque d'appuyer sur son bouton et d'attendre une seconde avant de voir son shoot !! )

    Tout ça mit à bout, je pense que l'idée reste interessante, sur le principe. Peut-être que je ne comprend pas quelque chose que tu as compris par rapport au problème. On est d'accord qu'un programme de triche permet à l'utilisateur d'avoir une visée parfaite, et donc déplace le curseur à l'écran comme pourrait le faire la souris; mais le problème est que ce qui est envoyé au serveur est un mouvement et une action de tir, rien de plus, donc tu ne pourras pas filtrer ( selon moi ) le type de tir.

    L'unique chose que tu puisses faire, c'est une sorte de programme de bas niveau, qui récupèrerait les actions de la souris, et comparerait en temps réel avec celle vraiment envoyé au serveur, mais c'est là que je te dis que les temps de réponses seraient totalement catastrophiques.

    L'idée que j'avais eu ( et si tu veux nous pourrions en discuter ensemble ) serait plutot de faire un programme en amont, un loader. Ce "loader" chargerait le jeu dans un processus, et empêcherait un autre processus de type "aimbot" d'interferer. Il scruterait constamment la zone mémoire correspondant pour vérifier que le jeu ou le loader lui même ne sont pas corrompus.

    Voici un lien vers un topic que j'ai ouvert, et malgré le fait que je manque de temps pour mettre tout cela en pratique, je pense qu'il y a matière à creuser et si ça te dit nous pourrions joindre nos forces dans la lutte envers les méchants vilains qui se croient fort avec leurs tirs automatiques

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Par défaut
    Salut KiLVaiDeN,

    Humm, je ce serait un plaisir de travaillait avec toi pour mettre au point un programme anti-triche, surtout que seul je n'aip as les conaissance suffisante.

    Ca mise apart, comprend bien que :

    En théorie, le client envoie aux serveur ses coordonné de tir et de déplacement ect... enfin tout ce qui ce rapporte aux jeu, le serveur lui meme execute chaque info envoyer par le client, donc d'une part il calcule les coordoné de tir par rapport aux client et, avec un aimbot c'est coordoné ne sont plus calculé par les mouvement de souris du client (jusqu'a la tu me suis ?) mais par le AIMBOT lui meme qui donne des coordonné tout faite par rapport a la position de l'énemie .

    Donc, si le serveur est capable d'interpretter differament les infos envoyer par le client, pourquoi pas nous .

    Ensuite, je pence que la charge imposé par un telle programme ne serait pas énorme,car les serveur sauf execption varie toujours entre 20/30 slots . Ensuite on ne bloquerais pas les paquets mais :

    Paquets client > [Firewall] > serveur , donc on filtre les paquet, ceux qui nous interesse onl es garde de coté, biensur on laisse passer toute les info meme celle de tir, pendant ce temps le firewall traite les donné tranquilou, et si il voient qu'il ya des probleme avec un joueur, il regarde l'etpro guild qui lui est associé (récuperait en meme temps que les trajectoire) et la il envoi un requete aux serveur en disant 'lui tout a l'heur il a cheater, on le kick' . en voila donc sauf pendant le temps de copié des donnés (je pence asser rapidement) le serveur n'est pas ralentit car il ne traite pas le sinfo avant de les renvoyer aus serveur, mais il enregistre et traite ensuite .

    Voila, je ne pence pas etre trés clair, car moi j'aicompris mais je ne suis pas le meilleur pour expliquer aux autres .

    Si tu veut on peu en discuter via msn : maxoudu328@hotmail.com .

    Voila, sinon ensuite pour ton idée de controller les processu actif c'est vraie que c'est interessant car il n'y pas d'erreur possible, mais alors il devrait avoir un patch coté client qui envoil es processus actif aux programme coté serveur (ca je sais fair trés simplement ) mais dans la mesure du possible aucun patch ne doit etre installer coté client . car les possiblité de hack je pence sont inmesurable .

    Sinon,, en théorie cela devient trés simple et trés rapide a mettre en place avec en plus, peu de chance de kicker un bon joueur .

    Mais bon un patch coté client :s .

    Sur ce, vient en parler sur msn .

    Cordialement, max

    Edit : biensur il effectue les teste régulirement pas tout le temps, sinon c'est sur que ca pomperait trop, mais ensuite il faut trouver le bon timming, ce qui n'est pas le plus dur .

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 887
    Par défaut
    Salut,

    Je ne peux pas me connecter sur MSN car je suis au travail, mais je t'ajouterais à l'occasion pour qu'on en parle

    Le problème de ta technique selon moi, mais j'ai l'impression de ne pas avoir bien compris le principe, est qu'en se mettant du point de vue du serveur, comment ferais-tu pour différencier le tir d'un joueur normal de celui d'un bot ? En effet, les deux correspondent à un mouvement précis, et à un tir déclenché...

    De plus, à celà s'ajoute un problème supplémentaire : deux joueurs ayant un "ping" différent, vont tirer plus ou moins vite, en fonction du décalage; le serveur est responsable de receptionner les coordonnées de tir, et l'instant du shoot en fonction du référent de la partie, et en fonction de ça de calculer si un evenement de collision se produit ou non; et encore une fois, comment différencier ces informations quand il s'agit d'un aimbot ou d'un joueur normal ? Franchement je ne vois pas...

    Le problème est encore plus complexe qu'une simple detection de processus; l'aimbot PEUT s'innoculer dans le exe du jeu, et donc par conséquent n'engendrer aucun processus supplémentaire... De plus, l'aimbot n'envoie pas les paquets directement, mais il modifie en temps réel les coordonnées du viseur dans le jeu ( en altérant la mémoire dynamiquement ) et donc du point de vue du serveur, une fois de plus, c'est bien le joueur, qui a fait une action avec son jeu...

    On en discutera sur msn, si tu veux en discuter ici plus longuement également, no problem ! A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Par défaut
    biensur, j'ai pencé a ca, c'est pour ca que je dit que j'explique mal La difficulté serait elevé, mais il faut comparé le client par raport a son quota : Tir/HS, si il approche les 80% il triche a 95%. Mais maintenant que j'y pence plus, il suffirait d'exploité en temps réelle les quotas de Shoot/HS et de tester égulierement pour voir le quelle triche :s, cette méthode serait plus simple, etant donné que les sources du jeu (a par le moteur) sont libre maintenant .

    Donc, nouvelle théorie :

    On modifie le jeu (sorte de mod), qui testerais lui meme, le quotas de shoot/HS de chaque player et lorsqu'il en trouve un aux desus d'une moyen il le prévient, et si aucun changement, il le kick !

    Voila, ce n'est peut etre pas plus simple en pratique mais en théorie ca l'é beaucoup plus

    Cordialement, Max

  6. #6
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 887
    Par défaut
    Ca marche pas, car les tricheurs de nos jours participent aux compétitions en ligne etc, ils s'en moquent de pouvoir tirer sur tout le monde à vue et de faire 300 kills; ce qui les interesse c'est de faire LA serie de 5 kills pour avoir le drapeau en CTF par exemple ou LA serie de 5 kills pour permettre à son équipe de gagner, même si pendant tout le reste du jeu ils ont super mal joué !

    La plupart des aimbots sont activables avec un bouton, donc du coup tu peux jouer normalement tout le long, SAUF quand ça t'arrange.... C'est pour ça que je pense que tu ne pourras pas faire de controle coté serveur malheureusement...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Par défaut
    oui, mais ce cheating blocker, serait appliquer sur en majorité des serveur francais, on on sait tous que les cheater francais sont trés con surtout ce qui ce balade sur le serveur qui va en etre équipé en tout 1er .

    Ensuite, il vienne tricher, non pas pour aider leur équipe oulalal non, meme les joueur en regle ne joue pas TeamPlay, mais seulement pour ce fair passer pour des LEet et fair chier le monde, parcequ'il on un ego imence, et aucun vie social, agée environ de 9/10 ans, bref des petit con

    Une personne qui cheat bien sur W:ET, ne cheatera pas

    Cordialement, Max

  8. #8
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 887
    Par défaut
    Du coup j'ai l'impression que l'ambition de nos projets est différente

    Je compte ( comptais? faute de temps... GRR ) faire un anti-cheat presque universel, qui permettrait d'éviter les cheaters, même occasionels, en faisant un filtre et un controle constant des traces mémoires... Mais hmmm c'est vraiment chaud à mettre en place ! Et comme tu dis, ça implique un logiciel "client", et donc vulnérable lui même aux hacks, mais avec un système "intelligent" ça devrait être possible de rendre ce hacking impossible

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Par défaut
    oui, mais comme tu la dit, l'aimbot peut dans certain cas modifier l'exe du jeu, il faudrais alors, enregistrer un hash d'un EXE normal, pour que si un cheat modifie l'exe il soit detecter car dans ce cas l'empreinte hash changerais ...

    Sinon, je veut dévelloper cette anti-cheat seulement (pour l'instant du moins) pour le jeu Wolfenstein - enemy territory .

    Ensuite, il ya des centaine de maniere d'y arriver mais la meilleur a mon gout est de modifier le jeu lui meme, comme en le patchant ou en fesant un MOD .

    Sinon, je V fair quelques testes sur different AIMBOT ce soir, on vera bien ce qu'il en sort, sinon aurait tu un sniffer UDP ou quelque chose dans le genre, qui me permettrait d'analyser les paquet UDP (en oui encor) mais cette fois seulement pour effectuer des teste de tout genre sur les aimbot, histoire de êut etre trouver des faille exploitable par un anti-cheat (a voir) donc si tu a des idées de teste, c'est le moment .

  10. #10
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 887
    Par défaut
    Je te conseille Ethereal

    Sinon oui pour les cas de figures dont tu parles ( par exemple un joueur qui ne rate presque jamais ses tirs, donc qui a un efficience supérieur à 66% à peu près je dirais ) un mod est la meilleure solution, car le calcul est facile à faire !

    Faire un Hash, c'est exactement ce à quoi j'ai pensé : regarde le lien que j'ai donné dans ma première réponse à ce thread, justement il parle de ce que je comptais mettre en place, peut-être aurais-je le temps de le faire un jour je sors trop et je bois trop le soir pffff c'est pas sérieux!!

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Par défaut
    (perso je prefere la fumette pour me concentré mais chacun son truc) Alors je V tester ton programme, et encor un fois si tu a des idées de testes qui pourais etre utile, dit moi tout .

Discussions similaires

  1. Vérifier et bloquer les paquets sortants
    Par energetik dans le forum VMware
    Réponses: 1
    Dernier message: 09/11/2013, 18h24
  2. controler les caractères présents dans un JTextField.
    Par heider dans le forum Composants
    Réponses: 5
    Dernier message: 26/12/2005, 12h24
  3. Controler les actions de la touche tabulation
    Par lipao17 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 16/12/2005, 15h52
  4. Builder/Interb :"Non Concordance dans les paquets de do
    Par pjtuloup dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2005, 09h53
  5. [MFC] Controler les splitter
    Par toune dans le forum MFC
    Réponses: 6
    Dernier message: 19/01/2005, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo