# Protocôles de communication ## UDP * Port : 4242 * Contenu du paquet : - _Identifiant du bot_ : 6 octets - _Temps de vie (nombre de secondes depuis le démarrage)_ 4 octets ## TCP * Port : 4242 * Commandes : - _STAT_ : retourne le status du bot (la réponse comprend son temps de vie, le nombre de charges utiles téléversées, le nombre d'exécution de charges utiles) - _QUIT_ : deconnexion du C&C par rapport au bot ### Installation de la charge utile sur un bot _$C&C_ : "upload?\n" _$BOT_ : "OKupload\n" _$C&C_ : "%d\n", charge.name.size _$BOT_ : "OKname_size\n" _$C&C_ : "%s\n", charge.name _$BOT_ : "OKname\n" _$C&C_ : "%d\n", charge.data.size _$BOT_ : "OKdata_size\n" _$C&C_ : "%s\n", charge.data // On envoie octect par octet _$BOT_ : "bye"\n" // Lorsque tous les octets sont reçus _$C&C_ : "bye"\n" ### Exécution d'une charge sur un bot _$C&C_ : "execute?\n" _$BOT_ : "OKexecute\n" _$C&C_ : "%d\n", charge.name.size _$BOT_ : "OKname_size\n" _$C&C_ : "%s\n", charge.name _$BOT_ : "OKname\n" // si la charge n'est pas presente sur le bot alors se dernier envoi un autre message "NOKname\n" et ca stop l'echange _$BOT_ : "%d\n", id //indice de l'execution dans la structure de donne choisie (liste chaine, table de hashage...a definir) pour stocker les resultats d'execution sur le bot _$C&C_ : "OKid\n" _$BOT_ : "bye"\n" _$C&C_ : "bye"\n" ### Suppression d'une charge sur un bot _$C&C_ : "delet?\n" _$BOT_ : "OKdelet\n" _$C&C_ : "%d\n", charge.name.size _$BOT_ : "OKname_size\n" _$C&C_ : "%s\n", charge.name _$BOT_ : "OKname\n" //si la charge n'est pas presente sur le bot alors se dernier envoi "NOKname\n" et ca stop l'echange _$C&C_ : "bye"\n" _$BOT_ : "bye"\n" ### Demander à un bot de résultat de l'exécution d'une charge _$C&C_ : "result?\n" _$BOT_ : "OKresult\n" _$C&C_ : "%d\n", id _$BOT_ : "OKid" //si id existe pas, renvoie "NOKid\n" et stop l'echange _$BOT_ : "%d\n", executions[id].result.size _$C&C_ : "OKresult_size\n" _$BOT_ : "%s\n", executions[id].result //on envoi octect par octet _$C&C_ : "bye"\n" //qd a recu tt les packets _$BOT_ : "bye"\n" ### Demander l'état d'un bot (IDEM STAT) **En cours de discussion** _$C&C_ : "state?\n" _$BOT_ : "%d\n", nbCharge _$C&C_ : "OKnbCharge\n" _$BOT_ : "%d\n", nbExecs _$C&C_ : "OKnbExecs\n" _$BOT_ : "bye"\n" _$C&C_ : "bye"\n" **Veuillez ne pas modifier ce README sans en parler à tout le monde !**