C# [MITM] Problème de connexion persistant !

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#1
Bonjour à tous , après avoir passé mon premier problème à l'aide d'BlueDream , je me trouve là face à un problème plus 'dûr' .En effet , ça concerne , je crois , le nouveau cryptage de l'AthentificationTicket , le serveur me kick directement après l'envoie du 110 (contenant le ticket) pourtant je ne fait que transférer les packets (en changeant l'ip et le port du 42 bien sûr :mrgreen: ) .
Donc je veux savoir si quelqu'un a déjà fait face à ce problème pour m'aider , merci !
 
Dernière édition par un modérateur:

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#2
Le serveur te kick ? C'est à dire ? soit plus précis, la connexion ce ferme toute seul, tu reçois un paquet donnant la raison du kick...
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#3
Oui , la connexion se ferme tout seul , j'ai même essayé d'envoyé un BasicPing mais le socket était fermé (Send bytes but not running) .J'ai cru que je transférais pas correctement le 42 (un mauvais deserialize) mais j'ai comparé mes sources avec celles de DofusInvoker , tout parait bien .
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#4
Re , voilà , j'ai essayé d'envoyer un ping au serveur mais celui-ci n'est pas connecté , je ne reçois même pas un AuthentificationRefusedMessage :/

EDIT : l'AthentificationTicket contient un string vide ...
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#5
Up ?
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
150
#6
On a pas vraiment les moyens de t'aider avec ce que tu nous donne.
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#7
Tu veux dire quoi par 'les moyens' ?
Edit : J'ai une question plus directe là qui peut m'aider ; à votre avis , quel sont les cas dans lesquels le client n'arrive pas décrypter le Ticket sachant que je transfert le ticket exactement comme il le faut (j'ai comparé le Input et le output du bot) ?
ReEdit : Le client envoie un 110 dont le lang est 'fr' et le ticket est un string vide .
Merci .
 
Inscrit
15 Mai 2015
Messages
41
Reactions
0
#8
J'ai exactement le même problème avec mon bot socket. J'envoie un paquet 110 de taille 38 bytes mais dès que le paquet est envoyé, le serveur coupe la connexion sans me renvoyer un accepted ou refused...
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#9
Le ticket est pas censé être vide, trouve pourquoi.
Récupère les sources de ta version de Dofus et regarde le code en rapport au ticket et son chiffrement.
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
150
#10
Comment veux-tu que le serveur de jeu sache qui tu es si tu n'as pas de ticket ?

Avant de quitter le serveur de connexion, tu reçois le SelectedServerDataMessage ou un dérivé.
Le ticket se trouve dedans sous forme d'une liste de byte, a mon avis tu rediriges mal certaines données.
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#11
Alex , je vous ai dit , j'ai comparé le ticket entrant du serveur et celui que je transmets , les mêmes données , il n'y a quasiment rien qui change , j'ai comparé Byte par Byte .
Merci pour ta réponse :) .
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#12
Fait une capture pcap avec RawCap sur ton interface de loopback et envoi nous le dump.
http://www.netresec.com/?page=RawCap

Précise également les ports que tu utilise (ça nous éviteras de chercher dans le dump)
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#13
Ok , ça fait plaisir de voir autant de gens intéressés à mon problème . Je go capturer .
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#14
Voilà , J'ai sniffer l'interface loopBack jusqu'à ce que la connexion avec le serveur soit coupée .
Merci .
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#15
Je pense que ya une couille dans ton paquet SelectedServerDataMessage.



Pour commencer le serverId, tu est sûre qu'il est codé sur 1 octect ? C'est un readVarUhShort() pourtant.

Code:
this.serverId = input.readVarUhShort();
address, port, canCreateNewCharacter OK

Pareil pour ticketLen, je pense que tu fait simplement un readUShort() à la place d'un readVarInt()

Code:
var _ticketLen:uint = input.readVarInt();
(le code hexa devrais être 0x0120)

Je crois que cette feature à était retiré sur la release, mais essaye de créer un fichier debug.txt à la racine du jeu (Dofus.exe) et de faire F11 une fois que le serveur te kick, autrement test avec le client de la bêta.

Analyse :
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#16
Premièrement , ta réponse vraiment très complète m'a éblouie , niveau fonction , j'utilise bel et bien le readvarint et le readvaruhushort , et je vais essayer avec le debug.txt , merci !
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#17
Re , je trouve un problème avec le fichier debug , suis-je sensé tester mon bot sur la bêta pour pouvoir utiliser le F11 , ou le client normal peut logger . Car là , je n'arrive ni à injecter le client bêta , ni recevoir de logs de l'offi bien que j'ai créé le fichier debug .
Meg
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#19
Re , non , j'ai pas vu ce lien merci , en fait le debug sur l'offi a marché mais je n'y vois rien d'anormal .Peut-être que vous verrez quelque chose , je vous le mets en pièce jointe .
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#20
En fait , merci à BlueDream , il m'a aidé à résoudre mon problème de ticket vide .c'était que je mettais un WriteUShort sur la taille au lieu de WriteVarInt , mais le problème est toujours persistant ^^' .
 
Dernière édition par un modérateur:
Haut Bas