Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
[VBS][Beta] XooB64Encoder Reconstructeur de commande externe
Auteur Message
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
A ce que je vois, on reprend les principes de mes commandes pour en faire d'autre (comme j'ai repris Bexa), ça ne me pose pas de soucis car c'est le principe du "libre".

Shaxa n'est pas en soit un .exe, en fait, dans l'archive, il n'y a pas de .exe mais d'autres choses qui rendent Shaxa customisable et Open Source :



Shaxa n'est pas totalement programmé en C# mais plutot en Batch avec commandes externes (d'où le [C#/Batch]) générées par build.bat à partir des fichiers de code (sauf template.cs et template_big.cs qui sont utilisées pour une autre chose).

GetCode permet d'insérer les données (comme le fichier en base64 et la sortie du fichier) dans les "templates.cs".
Et Cutfile permet de contourner la limitation du 8192 caractères par ligne en découpant le fichier temporaire qui contient tout le code après GetCode en une série code écrit à la suite ligne par lignes.

En faisant quelques modifications sur le buffer de CutFile.cs, on arrive à un générateur plus optimisé, par exemple pour Affpng : https://up1.ca/#FUrfKR2NlHCmdVE9qPiBlw

Revenons donc à la commande de Sacha.

J'ai testé et comparer, et :
Shaxa : ~4.5sec (759 655 octets)
Shaxa (optimisé) : 4 sec (758 816 octets)
XooB64Encoder : 6 sec (763 515 octets)

La compilation n'est pas la tache la plus longue car le compilateur JIT lit trés rapidement les chaines de caractères.



Dernière édition par TSnake41 le Dim 27 Déc 2015 - 22:25; édité 2 fois

______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
J'ai refais un UP en diminuant la taille du buffer !

Réessaye !

Citation:
A ce que je vois, on reprend les principes de mes commandes pour en faire d'autre


Ce que j'aime faire c'est de montrer des alternatives avec des codes non compilés. Maintenant au niveau des perfs il n'y a pas photo, et c'est logique

J'ai bien ainé ta comparaison :

Citation:
J'ai testé et comparer, et :
Shaxa : ~4.5sec (759 655 octets)
Shaxa (optimisé) : 4 sec (758 816 octets)
XooB64Encoder : 6 sec (763 515 octets)



Comme quoi l'interpreté n'est pas beaucoup à la traîne (je pensais un peu plus quand même) Mais j'ai également optimisé l'utilisation des 8192 caractères sinon ça prenait plus d'une minutes pour affpng.


Citation:
Et Cutfile permet de contourner la limitation du 8192 caractères par ligne en découpant le fichier temporaire qui contient tout le code après GetCode en une série code écrit à la suite ligne par lignes.


Tu ne contourne pas le problème vu que tu génère un code BAT qui et lui par définition limité à 8192 octets.
Je crois ue tu veux dire que tu optimises le code pour que chaque lignes ont 8192 octets et pas moins.

C'est ça ?




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Citation:
Citation:
Et Cutfile permet de contourner la limitation du 8192 caractères par ligne en découpant le fichier temporaire qui contient tout le code après GetCode en une série code écrit à la suite ligne par lignes.

Tu ne contourne pas le problème vu que tu génère un code BAT qui et lui par définition limité à 8192 octets.
Je crois ue tu veux dire que tu optimises le code pour que chaque lignes ont 8192 octets et pas moins.

C'est ça ?


A l'origine, je voulais tout mettre sur une seule et même ligne mais ça ne marchais pas car la ligne n'était pas traitée entièrement, du-coup, j'ai du découper le tout par lignes de 8192 caractères maximum (4096+7=4103 par defaut, 8191 en version optimisée).

Voila le code qui s'occupe de cette partie là (C#), ce code peut être réutilisé pour intégrer un générateur de fichier texte dans CR ni LF et autres caractères spéciaux du batch.

Code:
/*
 Copyright (C) 2015 Astie Teddy (TSnake41)

 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
 "Software"), to deal in the Software without restriction, including
 without limitation the rights to use, copy, modify, merge, publish,
 distribute, sublicense, and/or sell copies of the Software, and to
 permit persons to whom the Software is furnished to do so, subject to
 the following conditions:

 The above copyright notice and this permission notice shall be
 included in all copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

using System;
using System.IO;

class CutFile
{
    static void Main(string[] args)
    {
        string line = File.ReadAllText(args[0]);
        int i = 0;
        string str = "";
        Console.Write("(");
        foreach (char Char in line)
        {
            str += Char;
            i += 1;
            // Taille de buffer - 1 (defaut: 4096)
            if(i==4095)
            {
                i = 0;
                Console.WriteLine("set/p =" + str);
                str = "";
            }
        }
        Console.WriteLine("set/p =" + str);
        Console.Write(")>_.cs <nul");
    }
}





______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Oui c'est bien ça moi j'ai fais ça de cette manière :

La fonction qui encode en base64 me mets un LineFeed tous les 80 Caractères

donc je lie les lignes 90x on pourrait théoriquement aller jusqu'a 100.

Voici la partie du code :


Code:

'je split au linefeed
strline = Split(base64encoded,chr(10))
dim count
dim line2
count=1

'je cree une ligne tout les 90 LineFeed

For Each line In strLine
 if count <90 then
  line2=line2&line
  count = count + 1
 end if
 if count = 90 then
   objOutFile.Write "echo "&(chr(39) & Line2 & ">>"&Infile&".vbs" &vbcrlf)
   count=1
   Line2=""
 end if
Next


Vous pouvez donc optimiser en allant jusqu'a 100. Après ça ne fonctionnera plus

Wink




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
J'ai fais un test sur des fichiers de grande taille (xonotic.exe (http://www.xonotic.org/download/) 11.8 mo) et XooB64Encoder à eu un peu de mal.

Shaxa : ~32 sec
Shaxa (optimised) : ~28 sec
XooB64Encoder : ~7 min 10 sec
XooB64Encoder (optimisé (buffer à 100%)) : ~7 min 1 sec

Fichiers utilisées (compressé au format .7z pour des économies du à la ressemblance des fichiers) : https://up1.ca/#cZwGxk9ooid7IPGSM19hqQ

ces résultats restent approximatifs et dépendent du PC mais on peu remarquer que Shaxa est plutôt rapide par rapport à XooB64Encoder sur des fichiers de grande taille.



Dernière édition par TSnake41 le Dim 27 Déc 2015 - 23:37; édité 1 fois

______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Intèressant !

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
J'ai également remarquer quelque chose dans Shaxa à propos de sa vitesse,
la génération est très courte lorsqu'on as @Echo off.

De mon coté, xonotic.exe est généré à la vitesse astronomique de 5 sec.
https://up1.ca/#B_IX4WXMwtdrYtAVJe3G7Q




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Pour le @echo off c'est la première chose que j'ai faîtes lorsque je l'ai testé !

Il n'y a rien qui ralentie plus un code !

C'est vrai que pour les gros fichiers ça demenage shaxa Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Nouvelle Release :

Temps de reconstruction optimisé =>

2 -2.5 secondes pour un fichier de 8 Mega
contre 6 secondes pour shaxa

Download XooB64Encoder V1.0B


Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Oh le copieur ...

Mais je n'ai pas encore fini.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
sachadee a écrit:
Nouvelle Release :

Temps de reconstruction optimisé =>

2 -2.5 secondes pour un fichier de 8 Mega
contre 6 secondes pour shaxa

Download XooB64Encoder V1.0B


Okay


TSnake41 a écrit:
Oh le copieur ...

Mais je n'ai pas encore fini.


ça sent la concurrence Mort de Rire

A vos paris ! Mr. Green

Bonne chance en tout cas Okay Razz




______________________________________________________
Coucou, tu veux voir mon Site Web ?? Mort de Rire
Visiter le site web du posteur Skype
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Mais il y a une chose où Shaxa est meilleur que XooB64Encoder, c'est au niveau de la taille.

xonotic.exe
-> Shaxa (optimisé) :

-> XooB64Converter :


La version optimisée de Shaxa revient à définir la taille du buffer de CutFile.cs à 8183.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Heu vous pouvez me dire comment à partir d'un fichier faire tout ça ? xD car vous balancez les sources sans explications ^^
Et c'est plus rapide que de générer par de l'Hexa ?




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Skywalker a écrit:
Heu vous pouvez me dire comment à partir d'un fichier faire tout ça ? xD car vous balancez les sources sans explications ^^
Et c'est plus rapide que de générer par de l'Hexa ?


J'ai expliqué le fonctionnement de Shaxa dans mon Post :
TSnake41 a écrit:
Fonctionnement :
Shaxa fonctionne en générant du code C# qui créer un fichier à partir d'un texte au format Base64 (contre l'Hexa (16) pour bexa). Ce code est ensuite compilé puis exécuté grâce au compilateur du code C# qui est présent dans tout les PC à partir de Windows XP :

Il y aura une autre version qui corrige plusieurs soucis de Shaxa avec de gros fichiers mais qui est moins intéressante que celle de base pour des petits fichiers.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 
Voila des comparaisons sur la taille et la vitesse entre Shaxa, ShaxaV2 (bientôt disponible) et XooB64Encoder :
J'ai fais en sorte d'enlever le surplus et donc de garder uniquement le code de génération.

Shaxa (version optimisée) est le plus compact suivi de très prés par ShaxaV2, XooB64Encoder est avant ces deux, Shaxa (default) est le moins compact dans ce cas là.

Fichiers : https://up1.ca/#lBXzQpxjd6alLZ1-CqNjmw

Benchmark :
Citation:
Auto_xonotic.exe.bat : 2077 ms
Shaxa_Xonotic(optimised).bat : 3385 ms
Shaxa_Xonotic.bat : 3601 ms
Xonotic_ShaxaV2.bat : 1635 ms

Fichiers : https://up1.ca/#SBBMmsLJphONF2m1Nsja1g

Shaxa (version optimisée) est encore le plus compact, mais cette fois ci, Shaxa, en est très prés et est devant ShaxaV2, XooB64Encoder semble être inadapté pour des fichiers de cette taille est donc est environ 1ko plus grand que les autres.

Fichiers : https://up1.ca/#7Nmw-9cT1tN0ZVp41zYynA

Benchmark (ces tests varient en fonction de stopwatch) :
Citation:
SockeT_ShaxaV2.bat : 265 ms
Auto_SockeT.exe.bat : 149 ms
SockeT_Shaxa(optimised).bat : 274 ms
SockeT_Shaxa.bat : 322 ms
Malgré sa taille, XooB64Encoder est dans ce cas le plus rapide.
Shaxa(optimisé) et ShaxaV2 sont à peu prés équivalent.

Fichiers : https://up1.ca/#Xlksx9PtFOCv7s2SbsQ5WQ

Code:
[lang=csharp]using System;
using System.Diagnostics;
using System.Threading;

namespace ExecTime
{
    class Program
    {
        static void Main(string[] args)
        {
            TestProcess(args);
            Console.WriteLine("Test finished !");
            Console.ReadKey();
        }
        static void TestProcess(string[] testprocess)
        {
            foreach (string process in testprocess)
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();
                Process.Start(process).WaitForExit();
                watch.Stop();
                Console.WriteLine("{0} : {1} ms", process, watch.ElapsedMilliseconds);
                Thread.Sleep(1000);
            }
        }
    }
}




Dernière édition par TSnake41 le Mar 8 Mar 2016 - 20:58; édité 1 fois

______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message [VBS][Beta] XooB64Encoder Reconstructeur de commande externe 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch