[Vb.net] Créer un MITM pour dofus 2.0 [PARTIE 2]

    Publicités

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)

[.Ator]

Membre
May 5, 2014
15
0
126
Bonjour à tous, nous sommes partis pour la seconde partie du tuto pour créer son MITM pour Dofus2.0


1ère partie: Les principes basiques

Premier schéma :

1415400701-tutomitm1.png

Sachez que la classe Stream est une classe avec laquelle nous pourrons gérer la partie communication (Envoie/Réception ...)

Second schéma (partie interne de l'application) :

1415401930-tutomitm2.png


Comme vous pouvez le constater, l'avantage de ce procédé et le fait que les paquets passent tous par un seul et même chemin (ici le NetworkManager) avant d'être envoyés, ce qui permet de les traiter très facilement en rejoutant par exemple un parser.



2ème partie: Création de la base

1) Les serveurs d'écoutes:

Une chose à savoir, c'est que Dofus ne contient pas qu'un seul serveur... En vérité, il y a un serveur dit de "Login", puis un serveur pour chaque serveur "In Game" (Jiva, Raval ...) C'est pour cela que nous devons lancer deux serveurs, un pour que le client puisse se connecter au serveur de "Login", et un autre pour que le client puisse se connecter à un serveur "In Game"

Pour celà, nous allons créer une classe, "Server" permettant de lancer nos serveurs (Du deux en un ! :champagne:)

Imports System.Net.Sockets

Namespace Network.Server
Public Class Server

#Region "Public Vars"

' Le type sert à savoir si le serveur est destiné à la partie Login ou Game
' True = Login
' False = Game

Public MyType As Boolean = False
Public IsStarted As Boolean = False
#End Region

#Region "Private Vars"
Private MyTcpListener As TcpListener
#End Region

Public Sub New(ByVal type As Boolean)
MyType = type
End Sub

Public Function Start() As Boolean
Try

Select Case MyType
Case False 'Pour le serveur de login
MyTcpListener = New TcpListener(443)
MyTcpListener.Start()
Case True 'Pour le serveur de jeu
MyTcpListener = New TcpListener(5555)
MyTcpListener.Start()
End Select

IsStarted = True

Dim ThreadBeginWait As New Threading.Thread(AddressOf BeginWait)
ThreadBeginWait.Start()

Return True

Catch ex As Exception
Return False
End Try

Return False

End Function

Private Sub BeginWait()
While IsStarted
Dim NewClient As TcpClient = MyTcpListener.AcceptTcpClient 'Réception d'un nouveau client, le Client officiel se connecte au MITM
Other.Log.Log.Write("Un client se connecte au MITM", ConsoleColor.White, "Info", ConsoleColor.White)
'Ici on créera une nouvelle instance de la classe "Client"
End While
End Sub

End Class

End Namespace

Namespace Other.Log
Public Class Log
Shared Sub Write(ByVal message As String, ByVal color As ConsoleColor, Optional ByVal Suffix As String = "", Optional ByVal SuffixColor As ConsoleColor = Nothing)

Threading.Thread.Sleep(10)

If Suffix <> "" Then
Console.ForegroundColor = SuffixColor
Console.Write("[" & Suffix & "] ")
Console.ForegroundColor = color
Console.WriteLine(message)
Else
Console.ForegroundColor = color
Console.WriteLine(message)
End If

End Sub

End Class
End Namespace

Maintenant il ne vous reste plus qu'a créer et lancer les deux serveurs. Vous pouvez ensuite injecter la Dll No.Ankama.Dll, téléchargée auparavant (Personnelement j'utilise Extreme-Injector, qui est gratuit Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!).

Lancez maintenant le MITM et essayez de vous connecter avec votre Dofus patché, MAGIE, la console affiche quelque chose :hophopeeha:

1415545127-tutomitm3.png


La suite arrive prochainement !

 
Last edited:

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
C'est assez bien illustré, au moins des gens pourront facilement comprendre dorénavant.
 

[.Ator]

Membre
May 5, 2014
15
0
126
J'ai pas vraiment le temps en ce moment, désolé pour l'attente, la suite arrive prochainement (normalement) ;)
 

Adharna

Membre
Sep 22, 2015
67
0
427
30
Désole pour le mauvais up, j'essaye d'utiliser cette classe pour faire un mitm 1.29

J'ai modifié mon config.xml de dofus comme suis :

<connserver name="localhost" ip="127.0.0.1" port="443" />

Une idée du pourquoi mon server.vb ne detecte aucun client ?