Source Defender : un outil pour protéger votre code Python
ven, 24/08/2018 - 15:29
Python est un langage de plus en plus populaire, à juste titre. En tant que langage de script il peut présenter, dans certaines situations, l'inconvéneient d'obliger les développeurs à fournir leur code en clair. Source Defender est un outil qui vient remédier à ce problème.
Vous l'avez deviné, Source Defender est un obfuscateur de code Python. Ses auteurs assurent que Source Defender n'a pas de répercussion sur les performances à l'exécution. Sachant toutefois que le temps de chargement d'une application sera forcément plus long que le chargement de son équivalent en clair, puisque dans le premier cas, le code doit être désobfusqué avant exécution.
Source Defender fonctionne très simplement. Soit un programmez Hello World en Python :
$ cat /home/ubuntu/helloworld.py
print("Hello World!")
que l'on exécutera ainsi :
$ python3 /home/ubuntu/helloworld.py
Hello World!
Supposons que nous ne voulons pas que quelqu'un puisse lire notre beau code qui est si complexe et qui a été si difficile à écrire :-) Supposons encore que nous voulons que le code ne puisse être exécuté que pendant un jour après son cryptage (Par exemple si l'on fournit une démonstration à un client). On procédera ainsi :
$ sourcedefender encrypt --ttl=1d /home/ubuntu/helloworld.py
ce qui produit cette sortie sur le terminal :
SOURCEdefender v1.0.35
Licence:
File : .sourcedefender
Created : Tuesday 19th of June 2018 at 19:33:09 PM
Status : Expires on Thursday 19th of July 2018 at 19:33:09 PM/home/ubuntu/helloworld.py
Voici le code obfusqué, qui peut être distribué :
$ cat /home/ubuntu/helloworld.pye
-----BEGIN SOURCEDEFENDER FILE-----
Version : 1.0.35
(OgTeLGFYrZ8IDM%`)4#dC;oVx@vdYq~eyqrFHtDsw@|o=0XwRoke`V$IpkXU2dR|}9G+bEHSO3M
j6~-cb`oOLSb11L|SM$8Q+=*{1=U|6(Ez#+BT7!07FDH$Mn`pVr+SV{jC{u)Q9Z;DBA=?_A*fU*H
Jk%*q8f%*IL&ytnz<a>kQa@y2b
------END SOURCEDEFENDER FILE------
Source Defender vient lui-même sous la forme d'un module Python. Ce qui permet d'exécuter du code crypté de cette manière :
$ python3 -m sourcedefender /home/ubuntu/helloworld.pye
Hello World!
Ou encore de cette manière
$ cd /home/ubuntu
$ ls
helloworld.pye
$ python3
>>>
>> import sourcedefender, helloworld
Hello World!
>>>
Source Defender est un outil commercial. L'achat d'une licence est requis si l'on souhaite que du code obfusqué puisse être exécuté au delà de 30 jours après son cryptage.