D'après WikiPedia :
Citation :
un protocole de communication est une spécification de plusieurs règles pour un type de communication particulier.
|
En ce qui nous concerne, cela précise de quelles façons envoyer des données entre un client et un serveur. Les 2 utilisent les mêmes règles pour se comprendre et savent donc utiliser le protocole pour envoyer et/ou recevoir des données.
Ces données viennent de quelque part et sont mises en forme par des fonctions en respectant certaines règles. Quelque soit la manière d'envoyer ces données, elles ne changeront pas. Seul leur agencement devra respecter le protocole.
Donc en étudiant ces fonctions de "mise en forme", on peut retrouver les règles du protocole. Par contre, on ne pourra évidemment retrouver que les spécifications utilisées par le logiciel. En fait, ça revient au même que documenter un format de fichier.
Donc pour répondre à ta question, oui il est tout à fait possible de retrouver un protocole réseau, ou du moins la partie utilisée par l'application, à partir d'un code désassemblé. Je dirais même que le reverse engineering sert à ça. D'ailleurs, tu parles de structures complexes compressées. Comment connaître l'algorithme de compression utilisé sans analyser le programme ?
La méthode que tu emploies peut donner des résultats pour des petits protocole très simples. Mais dès qu'on touche aux choses sérieuses, c'est beaucoup plus rapide et efficace d'analyser directement le programme. Evidemment, cela demande un gros travail d'analyse et les connaissances qui vont avec.
Si t'as d'autres questions, n'hésite pas, ici ou même en MP.