- Comment ce fait-il qu'un script compilé en 32Bit avec une seule ligne de code peut faire 598Ko (ou 283 Ko si j'utilise la compression UPX) ?
- Comment peut-on en réduire la taille ?
L'explication est relativement simple.
Un script AutoIt3 compilé ce compose de deux partie distincte.
La première partie correspond à la partie binaire de l'interpréteur AutoIt3.exe (AutoItSC.bin pour du 32Bit et AutoItSC_x64.bin pour du 64Bit).
La seconde partie correspond au script compilé en a3x.
Ce qui nous donne :
Il existe trois solutions pour réduire la taille d'un script AutoIt3 compilé :
- - La première solution consiste à utiliser l'option UPX.
Par défaut le compilateur Aut2exe.exe utilise cette compression, tout comme Scite4AutoIt, si la directive #AutoIt3Wrapper_UseUpx=n n'a pas été stipulée.
Par contre, gardez à l'esprit que le fait d'utiliser la compression UPX rend votre script compilé suspect pour la plupart des logiciel antivirus car UPX est une compression très largement utilisée par la plupart des logiciels malveillants.
- La deuxième solution consiste à utiliser un autre compresseur, mais le gain octroyé par ce type de manipulation n'est pas significatif et donc n'est pas une solution intéressante.
- La troisième solution consiste à compiler votre script en a3x et à utiliser AutoIt3.exe pour exécuter votre/vos scripts.
Le format a3x correspond au code compilé tel quel et sans fioritures, par conséquent la taille s'en trouve extrêmement réduite.
Par contre comme je l'ai stipulé précédemment, il ne peut être exécuté seul sur une machine ou AutoIt3 ne serait pas installé. Il lui faut impérativement l'interpréteur associé, qui en l'occurrence est AutoIt3.exe.
Vous pouvez lancer un script a3x de différentes manières :- - Le simple glissé/poser du fichier a3x sur le programme AutoIt3.exe
- L'utilisation de la ligne de commande : "AutoIt3.exe" "C:\Prog\MonSript.a3x"
- L'association de fichier (placez AutoIt3.exe sur la machine de destination dans Windows par exemple puis en faisant un double clic sur le fichier .a3x, créez l'association de l'exécution).
- - Le simple glissé/poser du fichier a3x sur le programme AutoIt3.exe
Code : Tout sélectionner
MsgBox(0, '', 'Hello World')
- Script compilé en Exe sans compression UPX = 613 236 octets
- Script compilé en Exe avec compression UPX = 290 576 octets
- Script compilé en A3x sans compression UPX = 429 octets
- Script compilé en A3x avec compression UPX = 383 octets
- Script compilé en Exe sans compression UPX = 613 445 octets
- Script compilé en Exe avec compression UPX = 290 793 octets
- Script compilé en A3x sans compression UPX = 639 octets
- Script compilé en A3x avec compression UPX = 591 octets
- Script compilé en Exe sans compression UPX = 615 327 octets
- Script compilé en Exe avec compression UPX = 292 675 octets
- Script compilé en A3x sans compression UPX = 2 521 octets
- Script compilé en A3x avec compression UPX = 2 473 octets
Par contre, on peut constater qu'un script de 5000 lignes peut être 116 fois moins gros en a3x non compressé que le script compilé en Exe avec compression UPX.
Donc si vous devez utiliser un script qui utilise ceci, alors le format compilé en EXE est la seule solution.
Maintenant que vous avez les éléments en main, à vous de choisir votre format.
Salutations.
Thierry