1.29 D1.29 Questions protocole

Inscrit
28 Avril 2017
Messages
9
Reactions
0
#1
Bonsoir a tous ,

J'aurais donc comme le titre l'indique quelques questions concernant le protocole 1.29 , je vous explique mon problème , ayant décidé de me faire un petit bot sur la 1.29 ( officiel ) je bloque sur la réception d'un packet qui ne se fait pas du tout alors que le personnage est bien connecté en jeu, je ne recois pas le packet " ASK " qui contient l'inventaire , je vous joins ma fonction de connexion :

Code:
Public Sub ThreadConnexion()

        While (SocketClient.Connected)

            Dim Bytes(95536) As Byte
            Dim Recu As Integer


            Try
                Recu = SocketClient.Receive(Bytes)

            Catch ex As Exception '

                If IsDisposed Then
                    MsgBox("Erreur men")

                End If
            End Try

            Message = Encoding.ASCII.GetString(Bytes)

            Message = Message.Substring(0, Recu)

            If (Message <> "") Then
                Invoke(New dEcrire(AddressOf Ecrire), Message)
            End If

            If (Mid(Message, 1, 2) = "HC") Then
                SocketClient.Send(Encoding.UTF8.GetBytes("1.29.1" & vbCrLf & TextBox1.Text & Chr(10) & PassEnc(MaskedTextBox1.Text, Mid(Message, 3)) & vbCrLf & "Af" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "1.29.1....LOGS..")

            ElseIf (Mid(Message, 1, 4) = "AlEf") Then
                MsgBox("[Erreur] Mauvais nom de compte ou mot de passe.")

            ElseIf (Mid(Message, 1, 4) = "AlEf") Then
                MsgBox("[Erreur] Mauvais nom de compte ou mot de passe.")

            ElseIf (Mid(Message, 1, 4) = "AlEb") Then
                MsgBox("[Erreur] Compte banni.")

            ElseIf (Mid(Message, 1, 4) = "AlEk") Then
                MsgBox("[Erreur]IP/Compte banni temporairement .")

            ElseIf (Mid(Message, 1, 4) = "AlEv") Then
                MsgBox("[Erreur] Mauvais version du jeu.")

            ElseIf (Mid(Message, 1, 2) = "Ad") Then
                SocketClient.Send(Encoding.UTF8.GetBytes("Ax" & vbCrLf))

            ElseIf (Mid(Message, 1, 3) = "AxK") Then
                SocketClient.Send(Encoding.UTF8.GetBytes("AX602" & vbCrLf)) 'Henual = AX602
                Invoke(New dEcrire(AddressOf Ecrire2), "AX602")

            ElseIf (Mid(Message, 1, 3) = "AXK") Then

                idconnexion = Mid(Message, 15)
                SocketClient = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

                Try
                    Dim MonEp As IPEndPoint = New IPEndPoint(IPAddress.Parse("80.239.173.168"), 443)
                    SocketClient.Connect(MonEp)

                Catch ex As Exception 'En cas d'erreur.
                    RichTextBox1.Text = RichTextBox1.Text + " Erreur ip/port"
                End Try

            ElseIf (Mid(Message, 1, 2) = "HG") Then
                SocketClient.Send(Encoding.UTF8.GetBytes("AT" & idconnexion & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "AT")

            ElseIf (Mid(Message, 1, 3) = "ATK") Then
                SocketClient.Send(Encoding.UTF8.GetBytes("Ak0" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "Ak0")
                SocketClient.Send(Encoding.UTF8.GetBytes("AV" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "AV")



            ElseIf (Mid(Message, 1, 3) = "AV0") Then

                SocketClient.Send(Encoding.UTF8.GetBytes("Agfr" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "Agfr")
                SocketClient.Send(Encoding.UTF8.GetBytes("AL" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "AL")
                SocketClient.Send(Encoding.UTF8.GetBytes("Af" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "Af")

            ElseIf (Mid(Message, 1, 3) = "ALK") Then

                Dim sep1() = Split(Message, "|", 3)
                Dim sep2() = Split(sep1(2), ";", 4)
                Dim name As String
                name = sep2(1)
                nomperso = name
                MsgBox(sep2(0))
                Invoke(New DName(AddressOf Infoperso), name, "Nom")
                Invoke(New DName(AddressOf Infoperso), sep2(2), "LVL")
                SocketClient.Send(Encoding.UTF8.GetBytes("AS" & sep2(0) & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "AS" & sep2(0))
                SocketClient.Send(Encoding.UTF8.GetBytes("Af" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "Af")




            ElseIf (Mid(Message, 1, 3) = "ASK") Then

                RecupéreInventaire = Message
                SocketClient.Send(Encoding.UTF8.GetBytes("GC1" & vbCrLf))



            ElseIf (Mid(Message, 1, 3) = "GCK") Then
                'Invoke(New DInventaire(AddressOf AjoutInventaire))

            ElseIf (Mid(Message, 1, 2) = "Aq") Then
                wait(4000)
                SocketClient.Send(Encoding.UTF8.GetBytes("AL" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "AL")



            End If



        End While




    End Sub
Les fonctions (Ecrire et Ecrire2 ) servent uniquement a afficher les packets envoyés et reçus , ma questions est donc la suivante : ma fonction est elle correct ? manque il des choses pour afficher le packet " ASK " ( inventaire )

Voici les logs actuels :
Code:
Debut de la connexion ...
[06:32:05][RECV]HCoiexnovakjnlyidtlolcbrjxmtatdtvk
[06:32:05][SEND]1.29.1....LOGS..
[06:32:05][RECV]Af1|2|0||-1
[06:32:05][RECV]Adbababapapa
[06:32:05][RECV]AxK1187639720|602,3|602,3|602,3
[06:32:05][SEND]AX602
[06:32:05][RECV]AXK50>?:=:8bwZ3986846
[06:32:05][RECV]HG
[06:32:05][SEND]AT
[06:32:05][RECV]ATK0
[06:32:05][SEND]Ak0
[06:32:05][SEND]AV
[06:32:05][RECV]BN
[06:32:05][RECV]AV0
[06:32:05][SEND]Agfr
[06:32:05][SEND]AL
[06:32:05][SEND]Af
[06:32:05][RECV]BN
[06:32:05][RECV]BN
[06:32:05][RECV]Aq1
[06:32:09][SEND]AL
[06:32:09][RECV]ALK1187635185|3|603509;efcfr;114;80;ffffff;0;0;b4,2412~16~2,2411~17~20,,;0;602;;;|623598;crfcrf;1;61;-1;-1;-1;,,,,;0;602;;;|620894;crfcfr;1;70;-1;-1;-1;,,,,;0;602;;;
[06:32:11][SEND]AS603509
[06:32:11][SEND]Af
[06:32:11][RECV]BN
[06:32:11][RECV]Rx0
[06:32:11][RECV]7;1|447;0|226;0|496;0|5;1|275;2|54;1|324;0|103;1|152;1|201;0|471;2|250;0|29;1|299;0|78;0|127;0|446;0|225;0|495;0|4;1|274;0|53;2|323;0|102;1|151;0|200;0|470;0|249;0|28;1|298;0|77;0|126;0|175;0|445;0|224;0|494;0|3;1|273;0|322;0|101;0|150;0|469;2|248;0|27;1|297;0|76;2|125;0|174;0|444;0|223;0|493;0|2;1|272;0|51;1|321;0|100;0|149;0|468;1|247;0|26;0|296;0|75;2|124;0|173;0|443;0|222;0|492;1|1;1|271;0|50;1|320;0|99;0|148;0|467;1|246;0|25;2|295;0|74;1|123;1|442;0|221;0|491;0|0;0
[06:32:16][RECV]TT32
Merci d'avance pour le temps que vous m'accorderez :)
 
Dernière édition:

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#2
En Général ce genre de problème surgit quand on oublie d’envoyer un paquet (sûrement une question d’activation de frame côté serveur Ankama). As tu sniffé avec WPE pro ou encore Wireshark ?
Il existe aussi un diagramme du protocole 1.29 que tu peux trouver facilement sur gogole. J’esserai de te le trouver une fois chez moi.
Good luck ;)
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#3
En Général ce genre de problème surgit quand on oublie d’envoyer un paquet (sûrement une question d’activation de frame côté serveur Ankama). As tu sniffé avec WPE pro ou encore Wireshark ?
Il existe aussi un diagramme du protocole 1.29 que tu peux trouver facilement sur gogole. J’esserai de te le trouver une fois chez moi.
Good luck ;)
Merci pour ta réponse , c'est peut être un oublie de packet je retesetrais ça avec le diagramme en question si tu le retrouve :)
 

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#4
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#5
Merci pour le diagramme Kyu.
Apres lecture de ce dernier , je ne vois pas quel packet j'ai pu oublier d'envoyer a part le packet " Ai + id unique client " ( quand on reçoit le packet AV ) mais en lisant les sources de M4x0uBot j'ai remarqué que lui aussi ne l'avait pas dans sa fonction ( ce qui n'empeche pas la bonne réception du packet ASK ( inventaire ) )
Voila donc la fonction de Maxou :
Code:
                ElseIf (Mid(packet, 1, 2) = "AV") Then

                    ' Envoi de la langue
                    If (.idServeur = 6002) Then
                        .sock.Envoyer("Agen")
                    Else
                        .sock.Envoyer("Agfr")
                    End If
                    .sock.Envoyer("AL")
                    .sock.Envoyer("Af")
Et la mienne :
Code:
ElseIf (Mid(Message, 1, 3) = "AV0") Then

                SocketClient.Send(Encoding.UTF8.GetBytes("Agfr" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "Agfr")
                SocketClient.Send(Encoding.UTF8.GetBytes("AL" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "AL")
                SocketClient.Send(Encoding.UTF8.GetBytes("Af" & vbCrLf))
                Invoke(New dEcrire(AddressOf Ecrire2), "Af")
Je présume donc que le probleme ne vient pas d'ici :/
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#6
C'est surement le paquet TT32 qui fait bloquer, d'après les sources c'est le lancement d'un tutoriel.
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#7
Voila les logs pour le meme compte sur M4x0uBot , je ne vois aucun packet de different , mis a part apres le " Rx0 " il recoit directement le TT32 et saute une bonne partie des packets xD

Code:
Recv: HCtkcjpxqtvurmcfrqobrcxqjcylwdsmbd
Send: 1.29.1
Send: cdvcfrvf# - Crypt -
Send: Af
Recv: Af1|2|0||-1
Recv: Adbababapapa
Recv: Ac2
Recv: AH601;1;75;1|602;1;75;1
Send: Ax
Recv: AlK0
Recv: AQQuel+%C3%A9tait+mon+premier+num%C3%A9ro+de+t%C3%A9l%C3%A9phone+%3F
Recv: AxK1088194445|602,3|602,3|602,3
Send: AX602
Recv: AXK50>?:=:8ag73986846
Recv: HG
Send: AT3986846
Recv: ATK0
Send: Ak0
Send: AV
Recv: BN
Recv: AV0
Send: Agfr
Send: AL
Send: Af
Recv: BN
Recv: BN
Recv: Aq1
Send: Af
Recv: ALK1088194028|3|603509;dzedzed;114;80;ffffff;0;0;b4,2412~16~2,2411~17~20,,;0;602;;;|623598;dazda;1;61;-1;-1;-1;,,,,;0;602;;;|620894;dzada;1;70;-1;-1;-1;,,,,;0;602;;;
Send: AS603509
Recv: Af0|0|0|1|602
Recv: BN
Recv: Rx0
Recv: ASK|603509|czezzed|114|8|0|80|ffffff|0|0|8145baf~1c54~1~0~7d#2f#0#0#0d0+47,7e#23#0#0#0d0+35,7b#1f#0#0#0d0+31,b2#4#0#0#0d0+4,6f#1#0#0#0d0+1,d4#9#0#0#0d0+9;8145bb0~b4~1~1~6f#1#0#0#0d0+1,80#1#0#0#0d0+1,64#10#14#0#1d5+15,75#1#0#0#0d0+1,9d#11#0#0#0d0+17,7c#19#0#0#0d0+25,7e#26#0#0#0d0+38,3dc#0#0#0#Dakness;8145bb1~1c50~1~2~7c#15#0#0#0d0+21,7e#1e#0#0#0d0+30,73#2#0#0#0d0+2,b2#4#0#0#0d0+4,d3#6#0#0#0d0+6;8145bb2~1c48~1~3~7d#28#0#0#0d0+40,7e#37#0#0#0d0+55,73#5#0#0#0d0+5,b2#4#0#0#0d0+4,70#3#0#0#0d0+3,f4#5#0#0#0d0+5,f3#5#0#0#0d0+5,;8145bb3~9a5~1~4~3d9#0#0#0#Revoltoso,80#1#0#0#0d0+1,6f#1#0#0#0d0+1;8145bb4~1c4c~1~5~7e#14#0#0#0d0+20,77#24#0#0#0d0+36,73#2#0#0#0d0+2,80#1#0#0#0d0+1,b0#7#0#0#0d0+7;8145bb5~1c3c~1~6~7d#2c#0#0#0d0+44,7c#15#0#0#0d0+21,7e#1c#0#0#0d0+28,b0#a#0#0#0d0+10,d5#6#0#0#0d0+6,d4#6#0#0#0d0+6,3ca#0#0#2412,3cd#0#0#10,3cb#0#0#0,3cc#0#0#2,328#283#32d#70a,3ce#0#0#19a;8145bb6~1b53~1~7~7d#4b#0#0#0d0+75,7c#19#0#0#0d0+25,7e#30#0#0#0d0+48,b2#8#0#0#0d0+8,b0#f#0#0#0d0+15,f3#7#0#0#0d0+7,f2#a#0#0#0d0+10,3dc#0#0#0#Jeannos,3d9#0#0#0#Two-dezdez,3ca#0#0#2411,3cd#0#0#11,3cb#0#0#0,3cc#0#0#14,328#283#1a7#924,3ce#0#0#1bc;8145bb7~3cc~1~e~7c#1e#0#0#0d0+30,;8145bb8~224~25~23~258#0#0#1;8145bb9~234b~b~24~33e#0#0#2;8145bba~211d~8~~;8145bbb~2843~2~~;8145bbc~2836~1~~325#287#38c#4bf;8145bbd~21e1~2~~;8145bbe~250f~1~~325#287#461#da;8145bbf~250c~1~~105#2#0#0#0d0+2,fa#2#0#0#0d0+2;8145bc0~1deb~5~~;8145bc1~1ded~5~~;8145bc2~1b3~5~~;8145bc3~1c5e~5~~;8145bc4~1c5f~5~~;8145bc5~1c60~5~~;8145bc6~64c~5~~;8145bc7~1cb~5f~~;8145bc8~96b~1~~76#27#0#0#0d0+39,7e#b#0#0#0d0+11;8145bc9~6a7~1~~9e#315#0#0#0d0+789;8145bca~311~1~~76#19#0#0#0d0+25;8145bcb~1a5c~1~~76#14#0#0#0d0+20;8145bcc~1de2~1~~64#2#4#0#1d3+1,ae#a#0#0#0d0+10;8145bcd~98b~1~~76#16#0#0#0d0+22,7e#e#0#0#0d0+14;8145bce~977~1~~76#2b#0#0#0d0+43;8145bcf~98c~1~~9e#1e8#0#0#0d0+488,7d#35#0#0#0d0+53,73#5#0#0#0d0+5,70#1#0#0#0d0+1;8145bd0~7b6~7~~;8145bd1~6ea~2~~;8145bd2~9fc~1~~;8145bd3~6f1~1~~;8145bd4~220~1~~;8145bd5~221~1~~;8145bd6~6ef~2~~;8145bd7~6ed~1~~;8145bd8~676~1~~;8145bd9~c8~1~~64#b#f#0#1d5+10,6f#1#0#0#0d0+1,7d#28#0#0#0d0+40,7c#19#0#0#0d0+25,9a#28#0#0#0d0+40,73#1#0#0#0d0+1;8145bda~1e99~1~~3e3#83c8#1610b7d5a60#0,3e4#0#0#0#dezfze,3e6#13#1#2f;8145bdb~1db4~1~~-1#0#0#5a,3b4#0#0#0,32c#21ea#21ea#2328;8145bdc~1db4~1~~-1#0#0#5a,3b4#0#0#0,32c#21b4#21b4#2328;8145bdd~1db4~1~~-1#0#0#5a,3b4#0#0#0,32c#20b6#20b6#2328;8145bde~1db4~1~~-1#0#0#5a,3b4#0#0#0,32c#2205#2205#2328;8145bdf~1db4~1~~-1#0#0#5a,3b4#0#0#0,32c#21d0#21d0#2328;8145be0~1e56~1~~-1#0#0#5a,3b4#0#0#0,32c#1ebf#1ebf#2328;8145be1~1e56~1~~-1#0#0#5a,3b4#0#0#0,32c#1e77#1e77#2328;8145be2~1e56~1~~-1#0#0#5a,3b4#0#0#0,32c#1d96#1d96#2328;8145be3~1e56~1~~-1#0#0#5a,3b4#0#0#0,32c#1f0b#1f0b#2328;8145be4~1e56~1~~-1#0#0#5a,3b4#0#0#0,32c#1f02#1f02#2328;8145be5~1e42~1~~-1#0#0#5a,3b4#0#0#0,32c#1f18#1f18#2328;8145be6~1e42~1~~-1#0#0#5a,3b4#0#0#0,32c#21a1#21a1#2328;8145be7~1e42~1~~-1#0#0#5a,3b4#0#0#0,32c#1ce1#1ce1#2328;8145be8~1e42~1~~-1#0#0#5a,3b4#0#0#0,32c#2158#2158#2328;8145be9~1e42~1~~-1#0#0#5a,3b4#0#0#0,32c#2108#2108#2328;
Send: GC1
Recv: OS+37|7252;7248;7240;7244;7228|7d#28#0#0,b2#8#0#0,ae#96#0#0
Recv: OS+6|2469|
Recv: eL520|0
Recv: JS|65;171~9~0~0~99,182~8~0~0~99|26;74~4~15~0~2000,71~6~23~0~2000,68~6~27~0~2000,160~4~15~0~2000,73~4~17~0~2000,69~6~25~0~2000,72~6~20~0~2000,23~8~0~0~99
Recv: JX|65;100;581687;638688;-1;|26;100;581687;585688;-1;
Recv: JO0|0|0
Recv: JO1|0|0
Recv: ZS0
Recv: cC+*#%$:?pi
Recv: gSPink Party|8|9d9lc|17|983bz|1
Recv: al|270;0|49;1|319;0|98;0|147;0|466;1|245;0|515;2|294;0|73;1|122;1|171;1|441;0|220;0|490;1|269;0|48;1|318;0|97;0|146;0|465;0|244;0|514;1|23;2|293;0|72;2|121;1|170;1|440;0|219;0|268;0|47;1|317;0|96;0|145;0|464;2|243;0|513;1|22;1|292;0|71;2|120;1|169;1|218;0|488;1|267;0|46;1|316;2|95;0|144;0|463;0|512;1|21;0|291;0|70;2|119;1|168;1|217;0|487;0|266;0|536;0|45;1|315;2|94;0|143;1|462;0|511;2|20;0|290;0|69;1|339;0|118;2|167;2|216;0|486;1|44;1|314;2|93;2|461;2|510;2|19;0|289;0|68;2|338;0|117;1|166;2|215;0|485;1|43;1|313;0|92;0|141;0|460;0|509;2|18;0|288;0|67;1|337;0|116;1|165;2|214;0|484;1|42;0|312;0|91;1|140;0|459;0|508;2|17;0|287;0|66;1|336;0|115;1|164;2|213;0|483;1|41;0|311;0|139;0|507;2|16;0|286;0|65;1|335;0|114;2|163;2|212;0|482;1|261;0|40;0|310;0|89;0|138;0|457;2|236;0|506;2|15;0|285;0|64;1|334;2|113;1|162;2|211;0|481;1|260;0|39;0|309;0|88;0|137;0|235;2|505;2|14;0|284;0|63;1|333;0|112;1|161;2|210;0|480;1|259;0|38;2|308;0|87;0|136;0|455;1|234;2|504;2|13;0|62;1|332;0|111;1|209;2|479;1|258;0|37;1|307;0|86;0|135;0|454;1|233;2|503;2|12;1|61;2|331;0|110;0|159;0|208;0|478;1|257;0|306;0|85;0|134;0|453;1|232;2|502;2|11;2|281;0|60;0|330;0|109;1|158;0|207;0|477;1|256;0|35;0|84;0|133;0|182;2|452;0|231;2|501;0|10;1|280;2|59;2|329;0|108;1|157;0|206;0|476;1|255;0|34;0|304;0|83;0|132;0|181;0|451;0|230;2|500;1|9;1|279;1|328;0|107;1|156;0|205;0|254;0|33;1|303;0|82;0|131;0|180;0|450;0|229;0|499;2|8;1|278;0|57;2|327;0|106;1|155;0|204;0|474;0|253;2|32;1|302;0|81;2|130;0|179;1|449;0|228;0|498;0|7;1|277;1|56;1|326;0|105;1|154;0|203;0|473;0|252;0|31;1|301;0|80;2|129;0|178;1|448;0|227;0|497;0|6;1|276;1|55;2|325;0|153;0|202;0|472;2|251;0|30;0|300;0|79;2|128;0|177;1|447;0|226;0|496;0|5;1|275;2|54;2|324;0|103;1|152;1|201;0|471;2|250;0|29;2|299;0|78;0|127;0|446;0|225;0|495;0|4;1|274;0|53;2|323;0|102;1|151;0|200;0|470;0|249;0|28;1|298;0|77;0|126;0|175;0|445;0|224;0|494;0|3;1|273;0|322;0|101;0|150;0|469;2|248;0|27;1|297;0|76;2|125;0|174;0|444;0|223;0|493;0|2;1|272;0|51;1|321;0|100;0|149;0|468;1|247;0|26;0|296;0|75;2|124;0|173;0|443;0|222;0|492;1|1;1|271;0|50;1|320;0|99;0|148;0|467;1|246;0|25;2|295;0|74;1|123;2|442;0|221;0|491;0|0;0
Recv: SLo+
Recv: SL156~5~b;149~5~c;142~6~d;151~4~e;148~1~f;158~3~g;150~5~h;153~5~i;159~5~j;155~1~k;143~6~l;144~1~m;147~1~n;160~5~o;145~1~_;154~1~_;152~1~_;413~1~_;141~5~_;146~1~_;157~1~_;
Recv: AR6bk
Recv: Ow1581|4000
Recv: FO-
Recv: Im189
Recv: Im0152;2017~12~30~22~07~84.103.63.171
Recv: Im0153;84.103.63.171
Recv: OCO8145bb
Recv: 5~1c3c~1~6~7d#2c#0#0#0d0+44,7c#15#0#0#0d0+21,7e#1c#0#0#0d0+28,b0#a#0#0#0d0+10,d5#6#0#0#0d0+6,d4#6#0#0#0d0+6,3ca#0#0#2412,3cd#0#0#10,3cb#0#0#0,3cc#0#0#2,328#283#32d#70a,3ce#0#0#19a;
Recv: OCO8145bb6~1b53~1~7~7d#4b#0#0#0d0+75,7c#19#0#0#0d0+25,7e#30#0#0#0d0+48,b2#8#0#0#0d0+8,b0#f#0#0#0d0+15,f3#7#0#0#0d0+7,f2#a#0#0#0d0+10,3dc#0#0#0#Jeannos,3d9#0#0#0#Two-Temple,3ca#0#0#2411,3cd#0#0#11,3cb#0#0#0,3cc#0#0#14,328#283#1a7#924,3ce#0#0#1bc;
Recv: GCK|1|rgrtgtr
Recv: As164327018,163640000,169655000|121761|1|4|0~0,0,0,0,0,0|866,866|10000,10000|471|135|7,3,0,0,10|3,3,0,0,6|0,-17,0,0|0,246,0,0|188,122,0,0|0,31,0,0|0,36,0,0|0,254,0,0|0,1,0,0|1,0,0,0|0,3,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,28,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,9,0,0|0,0,0,0|47,30,0,0|47,30,0,0|0,5,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,0,0,0|0,6,0,0|0,0,0,0|0,0,0,0|0,10,0,0|0,15,0,0|0,0,0,0|0,0,0,0|0,12,0,0|0,6,0,0|0,0,0,0|0,0,0,0|16
Send: BD
Recv: ILS2000
Recv: GDM|4206|0706131721|2c5334643656623a5e2361215c25323551287b644f323233695f757c232e3e5d473b72702a2a732c253242783422676e7b38356f2532422532423e3c705940766154473d40234e225236457e3543563829344b6669473f5c253242482e6d5d677c4476404639507248707736445c4872216821205a77674b287127753e422f767a5d5f3041663f6c7452783a3e6f202f31253242537a7e42705a4178585b7c6e6a2763642678214c5f523d29632a57422532423a7951646b503934494b4c796843
Send: GI
Recv: BT1514671778636
Recv: fC0
Recv: GDO+652;7694;1;8094;9000
Recv: GDO+672;7694;1;8215;9000
Recv: GDO+671;7694;1;8417;9000
Recv: GDO+652;7694;1;8090;9000
Recv: GDO+596;7694;1;7720;9000
Recv: GDO+633;7694;1;8157;9000
Recv: GDO+672;7694;1;8211;9000
Recv: GDO+671;7694;1;8413;9000
Recv: GDO+672;7694;1;8207;9000
Recv: GDO+671;7694;1;8409;9000
Recv: GDO+672;7694;1;8203;9000
Recv: GDO+652;7694;1;8086;9000
Recv: GDO+652;7694;1;8082;9000
Recv: GDO+672;7694;1;8201;9000
Recv: GDO+652;7694;1;8078;9000
Recv: GDO+596;7694;1;7716;9000
Recv: GDO+633;7694;1;8155;9000
Recv: BD647|11|30
Recv: GA;1;-18;aknfj6
Recv: hP245|kankansey;0
Recv: hP247|Nox-zz;1
Recv: hP247|Nox-zz;1
Recv: hP246|iEgnima;0
Recv: hP248|teamdof;0
Recv: Rp6534;0;5;5;Pink Party;8,9d9lc,17,983bz
Recv: GDO+596;7694;1;7716;9000|672;7694;1;8201;9000|671;7694;1;8409;9000|652;7694;1;8078;9000|633;7694;1;8155;9000
Recv: GM|+579;1;0;603509;dezfze;8;80^100;0;0,0,0,603623;ffffff;0;0;b4,2412~16~2,2411~17~20,,;1;;;Pink Party;8,9d9lc,17,983bz;0;;
Recv: GM|+63;1;200;-1;296,296;-3;1192^95,1192^100;40,60;-1,-1,-1;0,0,0,0;-1,-1,-1;0,0,0,0;
Recv: GM|+653;1;-1;-19;;-9;7002^100;dezfze;5;43;100|+634;1;-1;-18;;-9;7002^100;dezfze;5;43;100|+653;1;-1;-17;;-9;7002^100;dezfze;5;43;100|+653;1;-1;-16;;-9;7002^100;dezfze;5;43;100|+615;1;-1;-15;;-9;7002^100;dezfze;5;43;100
Recv: GDK
Recv: EW+603509|
Recv: GDE|652;2
Recv: TT32
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#8
Avant d’envoyer un AX602 il envoie un Ax juste après la réception du AH et pas toi, c’est peut être une bêtise du genre
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#9
Pas faux mais dans mon cas je ne le recois meme pas le " AH " xD

On m'a parlé de la façon dont je fais mes sockets :

Code:
   SocketClient = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) 'Je refais mon SocketClient.
Faut il peut etre passé par du async ?
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#10
Jettes un œil à la classe TcpClient c’est le plus simple pour débuter ;)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#11
quitte a refaire tes sockets , profites en pour faire un MITM (ou un genre de proxy locale) au moins pour le debug , pour sniffer , tu seras au moins certain que tout sera envoyé/recu puis ensuite tu vires la partie "serveur" si tu veux revenir a un bot "normal"
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#13
C'est surement le paquet TT32 qui fait bloquer, d'après les sources c'est le lancement d'un tutoriel.
Ca marche merci :D

quitte a refaire tes sockets , profites en pour faire un MITM (ou un genre de proxy locale) au moins pour le debug , pour sniffer , tu seras au moins certain que tout sera envoyé/recu puis ensuite tu vires la partie "serveur" si tu veux revenir a un bot "normal"
Question béte certe ( et je m'en excuse d'ailleurs je debute xD ) , techniquement quel est la difference entre un MITM et un "normal" ? (Je sais que MITM = utiliser le client ? ) mais ma question est plus orienté niveau code , comment par exemple gérer la connexion avec le client offi en VB ( ou en C#) ?
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#14
un MITM c'est en realité un "normal" avec seulement en plus une partie "serveur" (le serveur sert juste a chopper les paquets du client officiel et les passer au bot "normal" (donc au client du bot) qui lui va les envoyer au serveur officiel pour boucler la boucle et pareil dans l'autre sens) ca a surtout l'avantage de ne pas avoir a s'occuper de tout les paquets :
un paquet (peu importe qu'il vienne du serveur officiel ou du client officiel) qui t'interresse pas parceque ca sert pas a recolter une herbe magique ou je ne sais quelle connerie (enfin qui sert pas a ton bot) alors tu le laisses passer s'en t'en occuper , tu n'as meme pas besoin de savoir a quoi il sert ni de coder quoique ce soit pour eux
tu as juste a filtrer les paquets qui t'interressent et coder seulement pour ceux la , tu gagnes donc enormement de temps

pour gerer la connexion avec le client officiel il faut le forcer a se connecter sur 127.0.0.1 (je sais plus du tout comment ca marche sur 1.29 , d'ailleurs je sais plus non plus comment ca marche sur 2.XX pour les forcer a se connecter sur 127.0.0.1 mais c'est pas tres difficile ou au pire tu utilises ca https://korben.info/logiciel-interface-reseau.html) et apres niveau code c'est tout bete , c'est ca :
https://code.msdn.microsoft.com/windowsdesktop/Simple-Chat-Application-3f7f4ec5
sauf que biensur a la place de "papa : a table , arrete de trainer sur cadernis" ca sera des paquets (et ca tombe super bien parceque sur 1.29 c'est aussi des strings)
 
Dernière édition:

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#15
@Valwex Pour faire des diagrammes j'utilise DIA
 
Inscrit
31 Mars 2016
Messages
33
Reactions
0
#16
Pour faire du MITM et forcer le client à se connecter en local, il faut modifier la config.xml :
Code:
<conf name="En ligne">
        <connserver name="NOM_CHOISI" ip="127.0.0.1" port="PORT_CHOISI" />
        <dataserver url="data/" type="local" priority="3" />
        <dataserver url="http://staticns.ankama.com/dofus/gamedata/dofus/" priority="1" />
        <dataserver url="http://gamedata.ankama-games.com/dofus/" priority="0" />
    </conf>
Il y a juste la balise <connserver/> a rajouter normalement.
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#17
Merci pour vos réponse :D
Je vais test tous ça et up le sujet en cas de pépin.
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#18
Du coup petit up , j'ai essayer de faire une classe qui me connecte au login en asynchrone mais je ne recois pas le tout premier packet avant l'envoi des ID ( enfaite je ne recois vraiment rien du tout )
Pour le moment mon but est juste de recevoir et d'afficher le tout premier packet
Voici mon code complet , si quelqu'un peut me dire la ou sa cloche :
Code:
Imports System.Net.Sockets
Imports System.Threading
Imports System.Net
Imports System.Text

Public Class Socket_Connect

    Private Const port As Integer = 443

    ' ManualResetEvent instances signal completion.
    Private Shared connectDone As New ManualResetEvent(False)
    Private Shared sendDone As New ManualResetEvent(False)
    Private Shared receiveDone As New ManualResetEvent(False)
    Private Shared Connected As Boolean = False

    Private Shared response As String = String.Empty


    Public Sub Connexion()
        Dim ipAddress As IPAddress = (IPAddress.Parse("80.239.173.166"))
        Dim remoteEP As New IPEndPoint(ipAddress, port)
        Dim client As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
        Try
            client.BeginConnect(remoteEP, New AsyncCallback(AddressOf ConnectCallback), client)
            connectDone.WaitOne()
            Logs(response)
            Logs("Connexion effectuée")

        Catch ex As Exception
            Logs("Erreur connexion client")
        End Try

        connectDone.WaitOne()


        Receive(client)
        'receiveDone.WaitOne()
        Logs(response)
        client.Shutdown(SocketShutdown.Both)
        client.Close()
    End Sub


    Private Sub ConnectCallback(ByVal ar As IAsyncResult)
        ' Retrieve the socket from the state object.
        Dim client As Socket = CType(ar.AsyncState, Socket)

        ' Complete the connection.
        Receive(client)
        client.EndConnect(ar)



        Logs("Socket connected to {0}" & client.RemoteEndPoint.ToString())

        connectDone.Set()
    End Sub 'ConnectCallback


    Private Sub Receive(ByVal client As Socket)

        ' Create the state object.
        Dim state As New StateObject
        state.workSocket = client

        client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, New AsyncCallback(AddressOf ReceiveCallback), state)
    End Sub 'Receive


    Private Sub ReceiveCallback(ByVal ar As IAsyncResult)


        Dim state As StateObject = CType(ar.AsyncState, StateObject)
        Dim client As Socket = state.workSocket
        Dim bytesRead As Integer = 0

        ' Read data from the remote device.


        Try
            bytesRead = client.EndReceive(ar)
        Catch ex As Exception
            Logs("Erreur lors de la reception de donnée")
        End Try

        If bytesRead > 0 Then
            state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead))

            ' Get the rest of the data.
            client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, New AsyncCallback(AddressOf ReceiveCallback), state)
        Else
            ' All the data has arrived; put it in response.
            If state.sb.Length > 1 Then
                response = state.sb.ToString()
                Logs(response)
            End If
            ' Signal that all bytes have been received.
            receiveDone.Set()
        End If
    End Sub 'ReceiveCallback


    Private Sub Send(ByVal client As Socket, ByVal data As String)
        Dim byteData As Byte() = Encoding.ASCII.GetBytes(data)

        client.BeginSend(byteData, 0, byteData.Length, 0, New AsyncCallback(AddressOf SendCallback), client)
    End Sub 'Send


    Private Sub SendCallback(ByVal ar As IAsyncResult)
        Dim client As Socket = CType(ar.AsyncState, Socket)

        Dim bytesSent As Integer = client.EndSend(ar)
        MsgBox("Sent {0} bytes to server.", bytesSent)

        sendDone.Set()
    End Sub 'SendCallback

    Public Sub Logs(ByVal data As String)
        Form1.RichTextBox1.Text &= Environment.NewLine & data
    End Sub


   

End Class
 
Inscrit
28 Avril 2017
Messages
9
Reactions
0
#19
Petit up si quelqu'un a une solution s'il vous plait :)
 
Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#20
Je ne me rappel plus du 1.29 je te conseil d'essayer de voir avec wireshark pour voir dans l'ordre ce que tu es sensé recevoir, ce que tu envoies etc etc.
À partir de là tu prends le tout premier message (qu'il soit reçu et envoyer) et tu fais en conséquence, tu regardes si c'est un message reçu vérifie bien l'ip.

Après ... L'ip est peut être dynamique donc difficile à repéré sur shark donc on peut chercher une plage d'ip par exemple "80.239.173.xxx" en faisant simplement:

Code:
ip.dst == 80.239.173.166/11 || ip.src == 80.239.173.166/11

(Pour ceux qui souhaitent l'utilisez en 2.X il faut mettre /12 car l'ip sans la plage à 1 chiffre de plus)
 
Haut Bas