66 votes

comment fonctionnent les robots cibles dans les jeux fps?

J'étais curieux de savoir si quelqu'un a une expérience ou des connaissances à propos de l'objectif de robots en ligne FPS jeux tels que Counter-Strike. Je suis curieux et souhaitez en savoir plus sur la façon dont le curseur sait comment verrouiller sur un joueur adverse. Évidemment, si je voulais tricher, je pouvais aller en télécharger certaines astuces si ce n'est plus un apprentissage chose. Ce que tout est impliqué? Ils accrochent les utilisateurs de la souris/du clavier pour déplacer le curseur à l'emplacement correct? Comment fonctionne le cheat application de savoir exactement où pointer le curseur? Le cheat application doit être en mesure d'accéder à des données dans l'application de jeu, comment est-ce possible?

EDIT: pour les peid réponse, comment font les gens d'obtenir les emplacements de mémoire pour saisir les données? EDIT2: Permet de dire que je trouve certaines valeurs que je veux au lieu 0xbbbbbbbb à l'aide d'un programme de débogage ou d'autres moyens. Comment puis-je maintenant accéder et d'utiliser les données stockées dans l'emplacement à l'intérieur de l'application car je n'ai pas de mémoire, le jeu ne. Ou dois-je maintenant avoir accès à ça depuis que j'ai injecté dans le processus et il suffit de copier la mémoire à cette adresse à l'aide de memcpy ou quelque chose?

Quelqu'un d'autre a quelque chose à ajouter? Essayer d'apprendre le plus possible sur ce que possible!

72voto

Ron Warholic Points 7479

Quelque part dans le jeu de mémoire est le X,Y et Z de la position de chaque joueur. Le jeu a besoin de connaître cette information de sorte qu'il sait où pour rendre le joueur du modèle et ainsi de suite (bien que vous pouvez limiter le client du jeu peut savoir par seulement envoyer les informations du joueur pour les joueurs en vue).

Un aimbot pouvez numériser connu emplacements de mémoire pour cette information et le lire, lui donnant accès à deux positions, le joueur et les ennemis. En soustrayant les deux positions (comme vecteurs) donne le vecteur entre les deux et c'est simple à partir de là calculer l'angle à partir du lecteur de l'aspect actuel est le vecteur de l'angle du vecteur.

Par l'envoi d'entrée directement dans le jeu (ce qui est trivial) et de réglage fin avec quelques constantes que vous pouvez l'obtenir pour viser automatiquement assez rapidement. La partie la plus difficile du processus est le clouer où les positions sont stockées dans la mémoire et l'ajustement des données dynamiques de la structure de déplacement des joueurs autour de vous (comme frustum culling).

Notez que ces derniers sont plus difficiles à écrire lorsque l'adresse de la randomisation est utilisé, mais pas impossible.

Edit: Si vous vous demandez comment un programme peut accéder à d'autres programmes de la mémoire, typique de la façon de le faire est par injection de DLL.

Edit: Puisque c'est encore obtenir quelques succès il y a plus de moyens que les aimbots de travail qui sont de plus en plus populaire maintenant, à savoir l'écrasement (ou des correctifs en place) Direct3D ou OpenGL DLL et en examinant les appels de fonctions pour dessiner la géométrie et de l'insertion de votre propre géométrie (pour des choses comme le mur-hacks) ou d'obtenir les positions des modèles pour un aimbot.

10voto

Drew Points 4332

Beaucoup de "But robots" ne sont pas des robots, mais à tous les déclencher des bots. Ils sont en processus d'arrière-plan que d'attendre jusqu'à ce que votre réticule est en fait sur une cible et le feu automatiquement. Ceci peut être accompli dans un certain nombre de façons différentes, mais beaucoup de jeux à faire, il est facile, en affichant le nom de quelqu'un chaque fois que votre cible passe au-dessus d'eux ou de quelque autre morceau de données dans la mémoire qu'un déclencheur bot peut cerner le point.

De cette façon, vous jouez en agitant la souris à votre cible et dès que vous passez la souris au-dessus d'eux, il va déclencher un tir sans avoir à réellement le feu vous-même.

Ils doivent encore être en mesure de repérer ce genre de chose dans la mémoire, et ont le même genre de questions que plus vrai "Objectif robots" ne.

10voto

Alan Points 3489

Une autre méthode utilisée par le passé consiste à effectuer un reverse engineering du formatage de paquets réseau. Une attaque interceptée sur le flux de paquets (qui peut être effectuée sur le même système que celui sur lequel le jeu fonctionne) peut fournir des positions de joueur et d'autres informations utiles. Les paquets falsifiés peuvent être envoyés au serveur pour déplacer le joueur, tirer ou faire toutes sortes de choses en fonction de la partie.

4voto

La chose que le piratage de l'industrie n'ai pas essayé, mais la sorcière j'ai fait des expériences avec, Internet est un détournement. Il peut sembler beaucoup plus que ce qu'il est réellement, mais, fondamentalement, il utilise le WinPCap les conducteurs de raccordement dans le processus de "l'Internet via des connexions TCP, sans même se rendre près le processus de" décalages.

Ensuite, vous aurez simplement à apprendre la façon dont les Signaux TCP sont en cours de transfert et de les stocker dans une Table de hachage. Puis, après la récupération de l'information et de la superposition de l'information sur la Fenêtre (pas accroché), juste des étiquettes transparentes et 2D cases sur l'écran de la fenêtre de jeu.

J'ai été le tester sur Call of Duty 4 et j'ai obtenu les emplacements des 4 joueurs via TCP, mais aussi comme Ron Warholic a dit: toutes les méthodes de piratage ne fonctionnera pas si un développeur de jeu a écrit un serveur de jeu à la sortie seulement les joueurs lorsque l'utilisateur actuel devrait voir le joueur.

Et après la coupe de la transmission de la localisation du joueur comme pour le X Y Z et le joueur ne seront plus stockées et pas rendus là pour arrêter le wallhack. Et aimbots sera dans une sorte de décrochage de travail, mais pas de manière efficace. De toute façon, si vous êtes à la recherche en faisant un wallhack, ne pas accrocher dans le processus, essayer d'apprendre WinPCap et crochet dans les signaux d'Internet. Comme pour les jeux, ne recherchez pas les processus d'inscription pour les transmissions sur l'Internet. Si vous avez besoin d'un exemple qui utilise cette, aller chercher la Rouille Radar que les sorties de la localisation du joueur, sur une carte, et également des sorties d'autres joueurs autour de vous qui est envoyé par l'intermédiaire de transmissions sur l'Internet TCP et n'est pas accroché au jeu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X