Package: voo-evasion
.evasion-APIAyant découvert cepostsur le forum de VOO et ceGitHubparlant de la création d'une API pour la box .evasion, je me suis lancé dans la création d'une API permettant de contrôler la box par le biais du réseau...Mais aussi, de trouver son adresse IP (probable), d'afficher les commandes connues et d'effectuer une conversion du nom de la commande au code envoyé et vice versa.Attention, il est possible que votre pare-feu bloque l'exécution de cette API. Si tel est le cas tester l'API sans pare-feu et ajouter une autorisation pour le script (normalement seul le port 5900 ou le port 38520 est utilisé, voir plus bas pour plus de détails).LICENSE​voo_evasionis a Python module which allows to detect and control a .évasion box from VOO (Belgium)​    Copyright (C) 2019 Vincent STRAGIER (vincent.stragier@outlook.com)​    This program is free software: you can redistribute it and/or modify​    it under the terms of the GNU General Public License as published by​    the Free Software Foundation, either version 3 of the License, or​    (at your option) any later version.​    This program is distributed in the hope that it will be useful,​    but WITHOUT ANY WARRANTY; without even the implied warranty of​    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the​    GNU General Public License for more details.​    You should have received a copy of the GNU General Public License​    along with this program.  If not, seehttps://www.gnu.org/licenses/.InstallationL'API a été développé sous Python 3 (sous Windows 11 et Debian).Sous LinuxInstallation depython3et depip3en ouvrant un terminal ou via SSH :sudoaptupdate&&sudoaptupgrade
sudoaptinstall-ypython3python3-pip
python3-mpipinstallvoo_evasionSous WindowsInstallation dePython 3(pipest installé automatiquement) :télécharger la dernière version stable de Python 3 sur le site du logiciel;installer l'exécutable.Installation devoo_evasion:en tant qu'administrateur, dans l'invité des commandes (Windows+R,cmd,SHIFT+MAJ+ENTER) ou dans PowerShell (Windows+X,A, "Oui");saisirpy -3 -m pip install voo_evasion.Description de l'APIL'API est un simple script Python qui se trouve dans une machine qui est sur le même réseau que la box .evasion. Il suffit donc de lancer le script (sansles droits de l'administrateur) avec les options souhaitées.py -m voo_evasion -hlance l'aide de l'API et affiche toutes les options disponibles :Remarque :pypeut-être remplacé parpy -3sous Windows et parpython3sous Linux qui ne reconnait pas cette commande (py)$py-mvoo_evasion-h
usage:py-3-mvoo_evasion[-h][-v][-http|-rfb][-f][-s][-aADDRESS][-pPORT][-cCOMMAND[COMMAND...]][-chCHANNEL][-cvCONVERT_COMMAND[CONVERT_COMMAND...]][-lc]options:-h,--helpshowthishelpmessageandexit-v,--verboseincreaseoutputverbosity-httpusetheHTTPmodeforVOOTV+.evasionboxes(default).-rfbuseRFBforlegacy.evasionboxes(defaultistouseRFB).-f,--findreturnalistofpotential.evasionboxes.-s,--statusreturn'success'ifthecommandhasbeensendelseitreturn'fail'.-aADDRESS,--addressADDRESSIPaddressofthe.evasionbox-pPORT,--portPORTportofthe.evasionbox,defaultis5900(inmodeRFB)[optional],notethatVOOTV+uses38520(defaultinmodeHTTP)-cCOMMAND[COMMAND...],--commandCOMMAND[COMMAND...]commandtosendtothe.evasionbox(thecommandischecked),nameofthecommandandvalueareaccepted-chCHANNEL,--channelCHANNELsendthecommandtothe.evasionboxtochangethechannel(mustbeaninteger)-cvCONVERT_COMMAND[CONVERT_COMMAND...],--convert_commandCONVERT_COMMAND[CONVERT_COMMAND...]convertavalidcommandfromnametovalueorfromvaluetoname-lc,--list_commandsdisplaythelistofknowncommandsListe des options-h,--help: affiche l'aide du programme et le quitte;-v,--verbose: permet au programme d'afficher plus d'informations lors de son exécution;[-http|-rfb] si aucune de ces options mutuellement exclusives n'est spécifiée, c'est le mode-httpqui sera utilisé.-http: signale au programme que la box .évasion utilise le protocole HTTP (ce qui est le cas avec l'interface VOO TV+);-rfb: signale au programme que la box .évasion utilise le protocole RFB (interface antérieure à VOO TV +);-f,--find: permet d'effectuer une recherche de la box .evasion en se basant sur l'ouverture du port utilisé pour le protocoleRFBet en effectuant une connexion ainsi qu'unhandshaketypique à la box;-s,--status: permet de savoir si l'envoie de la commande a bien eu lieu (on ne sait cependant pas si elle sera prise en compte par la box);-a,--address: permet de spécifier l'adresse vers laquelle envoyer la commande;-p,--port: permet de changer le port de destination (par default, le port 38520 est utilisé pour le mode-httpet le port 5900 est le port utilisé pour le mode-rfbetil ne sert donc à rien de fournir une valeur);-c,--command: permet de spécifier la commande (nom ou valeur) à envoyer à la box (voirliste des commandes), le programme n'est pas sensible à la casse;-ch,--channel : permet de changer de chaîne en envoyant un entier (seul la valeur absolue est prise en compte);-cv,--convert_command: permet de convertir une commande en son nom ou en sa valeur;-lc,--list_commands: affiche la liste des commandes connues.A priori, les options qui nous intéresse le plus sont-a,-c,-s,-fet-lc. L'option-vest plus destinée à réalisé du débogue,-cvn'est pas vraiment utile.Liste des commandes (avant la mise à jour  VOO  TV+)Nom de la commandeValeurREMOTE_058112REMOTE_158113REMOTE_258114REMOTE_358115REMOTE_458116REMOTE_558117REMOTE_658118REMOTE_758119REMOTE_858120REMOTE_958121FAST_REVERSE58375FAST_FORWARD58373PLAY58368MUTE57349STAND_BY57344STOP58370RECORD58371TV57360VOD61224GUIDE57355INFO57358MY_RECORDINGS61235VIDEO_WALL61234APPLICATION57352BE_ON_DEMAND61236BACK57346HOME61184VOL_UP57347VOL_DOWN57348UP57600DOWN57601LEFT57602RIGHT57603RED_KEY57856BE_TV57359OK57345Utilisation de l'APIDémonstration des fonctionnalités de l'API.Scan du réseaupy -m voo_evasion -f -vlance un scan du réseau en modeverbosedepuis l'hôte sur lequel le script est exécuté. L'interface réseau par défaut est utilisée, ensuite, les adresses IP du réseau sont calculés pour finalement être analysées par différents process.$py-mvoo_evasion-f-v
Verbosityturnedon.

Arguments:'verbose':True'find':True'status':False'port':5900'command':None'raw_command':None'convert_command':None'list_commands':False

Startscanningnetwork(thisisaCPUintensivetask,whichneedsthe'netifaces'module):192.168.0.0/24
Poolsize(max=256):200['192.168.0.15']ScanisdonePotential.evasionbox:
IP:192.168.0.15py -m voo_evasion -fidem ici, mais sans toutes les informations apportées par l'optionverbose.$py-mvoo_evasion-f
Startscanningnetwork(thisisaCPUintensivetask,whichneedsthe'netifaces'module):
Potential.evasionbox:
IP:192.168.0.15Affichage de la liste des commandespy -m voo_evasion -lcaffiche la liste des commandes connues.$py-mvoo_evasion-lcAPPLICATION=57352BACK=57346BE_ON_DEMAND=61236BE_TV=57359DOWN=57601FAST_FORWARD=58373FAST_REVERSE=58375GUIDE=57355HOME=61184INFO=57358LEFT=57602MUTE=57349MY_RECORDINGS=61235OK=57345PLAY=58368RECORD=58371RED_KEY=57856REMOTE_0=58112REMOTE_1=58113REMOTE_2=58114REMOTE_4=58116REMOTE_6=58118REMOTE_7=58119REMOTE_8=58120REMOTE_9=58121RIGHT=57603STAND_BY=57344STOP=58370TV=57360UP=57600VIDEO_WALL=61234VOD=61224VOL_DOWN=57348VOL_UP=57347Conversion de commandespy -m voo_evasion -cv NOM_COMMANDE_OU_VALEUR_1 [NOM_COMMANDE_OU_VALEUR_2] [...]permet de convertir un nom ou une valeur de command en sa valeur ou en son nom.py-mvoo_evasion-cvtv57360py-mvoo_evasion-cv57600UPEnvoie de commandespy -m voo_evasion -a 192.168.0.x -c NOM_COMMANDE_OU_VALEUR_1 [NOM_COMMANDE_OU_VALEUR_2] [...]où192.168.0.xest l'adresse IP de votre box .evasion (pensez à lui imposer une IP fixe sur base de son adresse MAC depuis le modem VOO).Veuillez noter que cette commande ne retourne rien. L'utilisation de l'option-sest donc une bonne option si vous souhaitez avoir un retour sur le statut de l'envoie ("Success"/"Fail").Changer de chaînepy -m voo_evasion -a 192.168.0.x -ch NUMÉRO_DE_CHAÎNE, tout comme la commande précédente il n'y a aucun retour et l'option-speut être utilisée de la même manière.