VB/VB.Net [Résolue]Problème Connection

Inscrit
7 Avril 2010
Messages
151
Reactions
2
#1
Bonjour tout le monde,
Ayant vue que ToOns ait poster les sources d'une Base d'un MITM, je l'utilise actuellement pour mon projet (Xerv Project).
Mais lorsque j'essais de me connecter, j'obtient ceci dans la console de sortit :
Code:
Recu Serveur : 
00 05 08 00 00 05 AE 00 00 05 B3 
recu : id->1 len->8

Recu Serveur : 
00 0E 01 4A 00 20 68 34 6F 66 65 74 70 36 4B 3E 
4A 37 5C 4B 26 24 4A 2D 4B 26 58 66 7E 52 51 66 
28 39 42 49 7A 62 01 26 30 82 01 22 30 0D 06 09 
2A 86 48 86 F7 0D 01 01 01 05 00 03 82 01 0F 00 
30 82 01 0A 02 82 01 01 00 B9 8B F8 4C 51 E4 5D 
28 18 E4 3A 30 E9 42 2C 6D 16 18 AC 40 23 75 7E 
F9 4B E0 4D A9 D8 7A 33 1C 6D 33 4D 75 48 CC 3B 
CF 86 A4 6A 2A DB 25 85 E2 CF 8C 8E A1 DF 31 68 
AD 70 A2 7E 07 56 DF 89 13 74 67 3B 12 C9 6C 56 
DC 07 1B A8 3C F0 67 C0 80 4C B8 13 D3 20 C1 2E 
2A CB 04 71 4F 94 F2 56 27 98 DB 30 AE F9 20 00 
0F 8F 1E 55 E2 72 75 9B C0 A2 F4 57 17 04 B5 B6 
66 F9 14 C1 67 13 E4 F4 2F 1D FF 23 68 FB 55 A2 
16 0C 41 26 F5 87 86 B3 EF BC A9 34 5B 0E 85 BC 
EB 39 94 FC 3F FB 9E 77 20 44 D5 7B 10 67 CF 78 
FE C8 7B F0 97 E0 23 D9 EE E2 52 22 79 08 45 21 
37 7C C1 BC 0D AB 59 26 CC C3 59 F3 90 26 4B 99 
55 36 AE 1C 25 8D 56 25 2F 9A 3D DA D9 FD 7D FE 
B7 43 D2 70 91 5E 99 60 4C 83 6E ED CB 1C 70 3C 
3B 9E C3 E1 97 37 24 C9 73 B8 ED 50 45 C1 69 3E 
A0 1F 39 A2 4B B9 12 7B E1 02 03 01 00 01 
recu : id->3 len->330

envoie : id -> 4 len -> 282

Recu Serveur : 
00 29 04 00 CB 00 CB 
recu : id->10 len->4

Recu Serveur : 
62 A8 
recu : id->6314 len->0

Recu Serveur : 
00 29 04 00 C6 01 15 
recu : id->10 len->4

Recu Serveur : 
00 29 04 00 7F 01 0E 
recu : id->10 len->4

Recu Serveur : 
00 29 04 00 00 00 A2 
recu : id->10 len->4

Recu Serveur : 
00 59 5F 00 00 06 7A 79 7A 65 32 37 00 09 7A 79 
7A 65 32 37 31 34 30 02 F3 D5 01 00 00 34 51 75 
65 6C 20 65 73 74 20 6C 65 20 6E 6F 6D 20 64 65 
20 6D 6F 6E 20 70 72 65 6D 69 65 72 20 61 6E 69 
6D 61 6C 20 64 65 20 63 6F 6D 70 61 67 6E 69 65 
20 3F 42 73 BA 4D 15 EF 80 00 42 73 1B AD 00 BF 
00 00 00 A9 37 00 1B 00 0E 32 31 33 2E 32 34 38 
2E 31 32 36 2E 34 39 15 B3 00 00 20 33 30 31 33 
66 63 38 35 34 39 35 64 39 32 37 38 63 32 64 37 
63 32 66 62 62 30 32 36 35 33 39 34 
recu : id->22 len->95
recu : id->42 len->55
envoie : id -> 42 len -> 1

envoie : id -> 182 len -> 1
Voila La connexion reste bloquer au packet 182.
J'aimerais savoir d'ou sort se packet.
Si vous avez une solution pour passer se packet ?
Merci de votre aide.
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#2
Re: Problème Connection

Salut J'aimerais savoir comment tu envoi ton packet 42 car tu n'est pas le seul a avoir des problèmes avec sa :p.
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#3
Re: Problème Connection

Voila le packet 42 :
Code:
Case (42)
                    ID_Message = New Messages.Connection.SelectedServerDataMessage
                    ID_Message.Deserialize(PacketData)
                    Consoles.Address = ID_Message.Address ' on recupere l'ip de serveur de jeu
                    ID_Message.initSelectedServerDataMessage(ID_Message.serverId, "127.0.0.1", 5555, ID_Message.canCreateNewCharacter, ID_Message.ticket)

                    Dim Message As New Dofus.DofusMessage
                    ID_Message.serialize(Message)
                    Data_out = Dofus.DofusMessage.Send(ID)
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#4
Re: Problème Connection

maintenant que ta sa tu doit le reconnecté dans ton parsing si je me trompe pas.
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#5
Re: Problème Connection

Le parsing :
Code:
Imports System.Net.Sockets
Imports System.Text
Public Class Parsing
    Public Shared Waiting As Integer
    Public Shared Data_out() As Byte
    Public Shared Data() As Byte
    Public Shared Launched As Boolean
    Public Sub parsing(ByVal data() As Byte)
        Try
            Dim Serveur As String = Consoles.ServerSock.RemoteEP.Address.ToString 'pour savoir sur quel serveur on est
            Dim sock As BazSocket = CType(Consoles.lstClient.Items(0), Client).Socket
            If Serveur <> "213.248.126.180" Then ' si pas serveur de loging on copie data vers le jeu
                If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                    sock.Send(data)
                End If
            End If
            Launched = True
            Dim index As Integer ' pour savoir ou on est
            Dim id_and_length As UShort ' les 2 premiers octets (16 bits)
            Dim packet_id As UShort ' les 14 premiers bits des 16
            Dim packet_length_of As Byte ' les 2 derniers bits des 16
            Dim packet_length As Integer ' la longueur du packet

            Dim Packet_Start As Integer
            Dim Packet_End As Integer

            If Waiting > 0 Then
                'Array.Copy(data, Packet_Start, Data_Out, Waiting, Data_Out.Length - Waiting)
                Dim data_temps(data.Length + Data_Out.Length - 1) As Byte

                Array.Copy(Data_Out, 0, data_temps, 0, Data_Out.Length)
                Array.Copy(data, 0, data_temps, Data_Out.Length, data.Length)
                data = data_temps
                'Application.DoEvents()
            End If

            Do Until index = data.Length
                Packet_Start = index
                id_and_length = data(index) * 256 + data(index + 1)
                packet_length_of = id_and_length And 3 ' on veut les 2 derniers bits donc on masque (and) avec 11 en binaire (3 en decimal)
                packet_id = id_and_length >> 2 ' on veut les 14 premiers bits donc on decale les 16 bits de 2 bits vers la droite

                index += 2 + packet_length_of  ' on avance des 2 octets de  id_and_length + du nombre d'octets de la taille de taille 

                Select Case packet_length_of
                    Case 0
                        packet_length = 0
                    Case 1
                        packet_length = data(index - 1)
                    Case 2
                        packet_length = 256 * data(index - 2) + data(index - 1)
                    Case 3
                        packet_length = 65536 * data(index - 3) + 256 * data(index - 2) + data(index - 1)
                End Select

                If index + packet_length > data.Length Then
                    Waiting = packet_length + index - Packet_Start
                    ReDim Data_Out(data.Length - Packet_Start - 1)
                    Array.Copy(data, Packet_Start, Data_Out, 0, data.Length - Packet_Start)
                    Exit Sub
                End If

                Console.WriteLine("recu : id->" & packet_id & " len->" & packet_length)

                If packet_id = 0 Then
                    Beep()
                    Exit Sub
                End If

                Dim packet(0) As Byte
                If packet_length > 0 Then
                    ReDim packet(packet_length - 1)
                    Array.Copy(data, index, packet, 0, packet_length)
                End If

                If Consoles.Debug.Checked Then
                    For i As Integer = 0 To packet_length - 1 ' on fait defiler tout les octets recus
                        Console.Write(packet(i).ToString("X2")) ' on ecrit l'octet proprement
                    Next ' au suivant
                    Console.WriteLine()
                End If

                DataCheck(packet_id, New Dofus.DofusReader(New IO.MemoryStream(packet)))

                index += packet_length
                'If Packet_End + index > data.Length Then
                '    Waiting = index
                '    ReDim Data_Out(Packet_End - Packet_Start - 1)

                'End If

                Packet_End = index
                Dim data_temps(Packet_End - Packet_Start - 1) As Byte
                Array.Copy(data, Packet_Start, data_temps, 0, data_temps.Length)
                If Serveur = "213.248.126.180" Then ' si serveur de loging 
                    If packet_id = 42 Then 'si c'est packet qui contient l'ip de serveur de jeu
                        If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                            sock.Send(Data_Out) ' on envoie au jeu un faux paquet qui contient 127.0.0.1 pour l'ip de serveur de jeu
                        End If
                        CType(Consoles.lstClient.Items(0), Client).Socket.Close()
                        Do Until Consoles.Log.Text = "Serveur : Déconnecté"
                            Application.DoEvents()
                        Loop
                        Consoles.ServerSock.Connect(Consoles.Address, 5555)
                    Else
                        If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                            sock.Send(data_temps)
                        End If
                    End If
                End If

                If Packet_End = data.Length Then
                    Waiting = 0
                    ReDim Data_Out(0)
                End If
            Loop
            Launched = False
            Console.WriteLine()
        Catch e As Exception
            Console.WriteLine("parsing() " & e.TargetSite.Name & " -> " & e.Message)
        End Try
    End Sub
    Private Sub DataCheck(ByVal ID As Integer, ByVal PacketData As Dofus.DofusReader)
        Dim ID_Message As Object = Nothing
        Try
            Select Case ID
                Case 0
                    Beep() ' ne doit jamais passer ici
                Case (42)
                    ID_Message = New Messages.Connection.SelectedServerDataMessage
                    ID_Message.Deserialize(PacketData)
                    Consoles.Address = ID_Message.Address ' on recupere l'ip de serveur de jeu
                    ID_Message.initSelectedServerDataMessage(ID_Message.serverId, "127.0.0.1", 5555, ID_Message.canCreateNewCharacter, ID_Message.ticket)

                    Dim Message As New Dofus.DofusMessage
                    ID_Message.serialize(Message)
                    Data_out = Dofus.DofusMessage.Send(ID)
            End Select
        Catch e As Exception
            Console.WriteLine(e.TargetSite.Name & " -> " & e.Message)
        End Try

    End Sub
End Class
Pour tant des fois il se connecte correctement et des fois non
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#6
Re: Problème Connection

Essaye avec un point d'arête etc car la c'est flou
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#7
Re: Problème Connection

Voila j'ai regarder,
J'obtient pas mal d'erreur :
Voila si sa peut aider.
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#8
Re: Problème Connection

Miniteck je viendrais voir sa demin sur tv si tu veux. Si tu veux envoi moi ton skype en mp
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#9
Re: Problème Connection

Salut , je n'ai plus cette base et celle que j'ai en ce moment a beaucoup de problemes car j'ai voulu supprimer presque tout pour retrouver juste une base , si tu peux me renvoyer celle que tu as pour que je regarde ? il me semble que celle que tu as ne gerais pas les reconnexions , essais pour voir de stopper le mitm et le relancer a chaque deco.

Autre chose (ca c'est pour moi) , aujourd'hui je n'ai plus les cartes qui s'affichent sur le jeu , chez toi quand ca fonctionne tu vois les cartes ?
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#10
Re: Problème Connection

Oui je voit les cartes en faite sa dépend si je me connecte correctement je les voit mais si je coupe le MITM alors je voit les cartes en noir.
Ce n'est pas une question de reconnexion, Je cherche pas encore à faire la reconnexion. c'est juste la connexion.
Je t'envoi sa par MP les souces.
Et Tifoux Je t'envoi sa aussi par MP le TV
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#11
Re: Problème Connection

re , c'est a cause de ca dans parsing :
Code:
Do Until Consoles.Log.Text = "Serveur : Déconnecté"
                            Application.DoEvents()
                        Loop
donc il attend que Consoles.Log.Text = "Serveur : Déconnecté"
mais a ce moment Consoles.Log.Text ="
Serveur : Déconnecté-- Server Deconnecté --
-- Jeu Connecté : 2 (127.0.0.1) - (1 Jeu) --"

donc il boucle a l'infini

il faudrait essayer avec
Code:
 Do Until Consoles.Log.Text.Contains("Serveur : Déconnecté")
                            Application.DoEvents()
                        Loop
meme avec ta version je n'ai pas la map qui s'affiche :roll: pourtant une reinstallation ce matin , je retenterais en installant avec le l'ancien chemin par default "D0fus 2" et pas le nouveau "D0fus2"
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#12
Re: Problème Connection

ToOnS tu te rapel la correction on avait fait sur notre ancienne Mitm =>

le code c'été sa :

Code:
   If packet_id = 42 Then 'si c'est packet qui contient l'ip de serveur de jeu
                            If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                                sock.Send(Data_Out) ' on envoie au jeu un faux paquet qui contient 127.0.0.1 pour l'ip de serveur de jeu
                            End If
                            CType(Form1.lstClient.Items(0), Client).Socket.Close()
                            Do Until Form1.lblStatServeur.Text = "Serveur : Déconnecté"
                                Application.DoEvents()
                            Loop
                            Form1.ServerSock.Connect(Form1.Address, 5555)
                        Else
                            If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                                sock.Send(data_temps)
                            End If
                        End If
et sa fonctionne toujours :p
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#13
Re: Problème Connection

Merci ToOnS et Tifoux,
Cela fonctionne mieux.
Sinon pour les maps elles fonctionne bien la preuve :

Voila c'est résolue
 
Haut Bas