Le hash commence d'abord par un simple hash en md5 des bytes du paquet, c'est censé logiquement ne jamais planter à cette étape et cela contient toutes les infos du paquet.
La probabilité la plus forte qu'il y ai eu un problème quelque part c'est quand on utilise l'algorithme de Rijndael pour encrypter la hashkey, les data et la clé IV.
C'est la partie la plus complexe du hash qui utilise parfois des fonctions et constantes inexistantes en .Net.
Si la première partie a planté, tu seras automatiquement déconnecté, cependant si c'est la seconde partie qui pose problème le serveur peut quand même lire les informations du paquet.
D'ou l’exécution du premier paquet qui a un cryptage incorrect.