Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Vulcan, ou comment modifier des binaires quand bon vous semble

Posté par pasBill pasGates (). Modéré le 21 décembre 2002.
Voici un article de MS Research sur Vulcan, un outil developpé pour permettre l'analyse et la modification de binaires de manière soit statique soit dynamique (en gros, vous pouvez modifier un soft de maniere arbitraire pendant qu'il tourne ou modifier l'executable sur disque).

Cet outil est déjà utilisé en interne chez Microsoft pour différentes analyses/optimisations sur les produits que l'on crée.

L'article est assez technique mais ne devrait pas etre completement obscur pour les non initiés.

> Lire la dépêche (41 commentaires, moyenne: 3,3).  

Vous avez demandé le commentaire #160303.

Re: Vulcan, ou comment modifier des binaires quand bon vous semble

Posté par gnap gnap (page perso, ) le 21/12/2002 à 10:05. (lien). Évalué à 0.

C'est génial pour les virus ça ! J'imagine qu'un portage GNU/Linux est sponsorisé par l'équipe MS? :))

  • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

    Posté par Beretta_Vexee () le 21/12/2002 à 10:57. (lien). Évalué à 15.

    C'est surtous genial pour les cracker et les moder de tous poils.
    Mais j'ai encore du mal saisire la difference fondamental, entre Vulcan et un Debugger avancé genre Softice ( puisqu'on parle d'environement windows je parle de debugegr windows, mais oui j'utilise GDB qui est trés bien ).

    Apres du coté non fondamental, mais sacrement pratique visiblement Vulcan ne recrache pas de l'ASM x86/i64 mais aussi du source celon le language de son choix ( parmis les langugaes MS ), pour les parties des applications codés en MSIL ( MicroSotf Intermediate Language, le pseudo language universelle qui sert de backend a tous les languages .NET ), vue que ces parties sont plus ou moin intepretés par le framework cela permet de modifier l'application pendant le debuggage sans recompilation, ce qui risque de sacrement simplifier et accelerer le debuggage des applications MSIL, apres pour les autres on reste sur un debugger classique, avec breakpoint, asm et recompilation.

    En gros c'est genial pour les applis codés en C#/.NET pour le reste du monde ce n'est qu'un debugger de plus.

    P.S. C'est ce que j'en ais compris apres je peux me planter

    --
    Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
    • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

      Posté par pasBill pasGates () le 21/12/2002 à 11:09. (lien). Évalué à 13.

      Vulcan te permet de modifier un executable qui en train de tourner, ou de modifier un executable sur disque au choix.

      Par exemple tu peux lancer des runs de ton soft dans differents scenarios, voir quelles sont les parties de code les plus utilisees, et modifier l'executable pour les rapprocher histoire d'avoir une meilleure utilisation des caches. Ca serait un exemple de modification d'un binaire sur disque.

      Un autre exemple c'est de pouvoir patcher un binaire pendant qu'il tourne, plus besoin de rebooter ou arreter ton service pour patcher, c'est fait pendant que le service tourne.
      Cet exemple c'est en fait ce qui va se passer dans .NET Server, il sera possible dans bcp de cas(pas tous) de patcher le kernel, les differents services, etc... sans rebooter, et sans arreter le service.

      Vulcan se cree au moment de la compilation une representation de l'executable, et ca lui permet de travailler apres sur cet executable, il sait ou est quoi, comment il peut modifier, etc...

      • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

        Posté par Beretta_Vexee () le 21/12/2002 à 12:36. (lien). Évalué à 6.

        Bon pour la premiére partie, debugger et mùodifier un exe en mémoire ou sur le disque pendant l'execution beaucoup de debugger le font déjà.

        Apres j'avais pas compris l'idée de patch ou de remplacement des binaires a chaud, j'avais cure que ce n'était qu'un concepete lancé en l'air comme but ultime a atteindre, pour la béte, mais en effet si cela ne penalise pas trop les performance global ( a quoi bon economiser 5 min d'uptime pour un charge CPU 10% superieur ) c'est vraiment revolutionnaire, des update sans arret de service.

        --
        Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
        • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

          Posté par hastake () le 21/12/2002 à 13:08. (lien). Évalué à 0.

          GNU/Hurd le fait déjà depuis longtemps, dommage que cet OS ne soit pas encore à pleine maturité ...

          • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

            Posté par Beretta_Vexee () le 21/12/2002 à 13:16. (lien). Évalué à 3.

            Il est possible d'updater un service ou un demon, sans les relancer depuis quand sous GNU/Hurd ?

            --
            Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
            • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

              Posté par hastake () le 28/12/2002 à 08:12. (lien). Évalué à 1.

              "c'est vraiment revolutionnaire, des update sans arret de service."

              Sous GNU/Hurd, il me semble, qu'on peut remplacer des partie de système sans arret de services. * Mais bon, je suis pas un pro en Hurd, si j'ai dis une gros c#ner#e la haut, je m'excuse, j'ai parlé trop vite :)


              * It is possible to develop and test new Hurd kernel components without rebooting the machine (not even accidentally). Running your own kernel components doesn't interfere with other users, and so no special system privileges are required. The mechanism for kernel extensions is secure by design: it is impossible to impose your changes upon other users unless they authorize them or you are the system administrator.

          [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

          Posté par pasBill pasGates () le 22/12/2002 à 01:22. (lien). Évalué à 6.

          Ca ne penalise absolument rien en perf.
          Le kernel que tu as sur ta machine est un kernel "propre", sans aucune info non utile, par contre nous en interne on a a la compilation pris les infos sur le binaire, a quoi il ressemble, etc... et Vulcan grace a ces infos pourra patcher le binaire a chaud, le patch qu'on fournira contient toutes les infos necessaires pour que Vulcan fasse le boulot sur ta machine.

          • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

            Posté par Beretta_Vexee () le 22/12/2002 à 10:48. (lien). Évalué à 1.

            C'est pas trés flexible comme solution, il aurait put foutre les infos dans l'entéte PE ou autre des EXE, histoire que tous le monde puis modifier l'exe ( quoi que c'est peut étre pas le but recherché ... ), hum c'est de suite moin simpatique dans le cadre dun soft a release frequentes faut faire un patch et un systéme reconnaissance pour chaque version du binaires qui se balade dans la nature ...

            Je savais que c'était un peut trop beau.

            --
            Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
            • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

              Posté par pasBill pasGates () le 22/12/2002 à 10:58. (lien). Évalué à 0.

              Ben le truc est que sur Windows, personne d'autre que MS n'est sense modifier les binaires du systeme, il y a meme le SFP(system file protection) pour eviter que les gens ne modifient les binaires systemes.
              Resultat, il n'y a aucune raison d'avoir ces infos dans le binaire, ca ne fait que rajouter du poids inutile dans un binaire, grossir la place disque, ralentir le systeme a cause du merdoyage des caches,... sans aucune raison vu que personne a part MS n'en aurait l'utilite.

              Il faut bien voir que ce soft a ete developpe dans l'optique d'une utilisation par MS, notamment de par le fait qu'il n'est pas aise de creer un fix applicable "a chaud", il faut savoir exactement ce que fait le code pour decider si oui ou non le fix cree peut etre applique a chaud, et ca quelqu'un en dehors de MS ne peut pas le faire, et finalement nous on ne fait pas de releases frequentes, ce n'etait donc pas un critere de developpement pour le soft.

              • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

                Posté par Beretta_Vexee () le 22/12/2002 à 14:47. (lien). Évalué à 2.

                Je me doute bien, mais d'un coups le trucs passe du stade d'idée genial, a un bon systéme de patch pour les produit MS(tm), ce qui de suite est vachement moin glamour et limite vachement l'utilité de la chose et remet d'autent plus l'utilité de la new en question ( puisque visiblement les quelques personnes qui seront ammener a utiliser le bestio sont déjà au courant ).

                <Troll> Bon ba j'ai plus de raisons de porter Apache en C# .NET </troll>

                --
                Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.

                [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

                Posté par Beretta_Vexee () le 22/12/2002 à 15:08. (lien). Évalué à 2.

                Hum, j'ai vite fais relue l'article , mais celon le principe enoncé il a pas l'air si mechant que cela le fix a chaud, il attende ou provoque le dechargement d'un partie du binaire pour le remplacer a la volé, avec un peut ou si le soft a été prevue pour cela, les parties critiques correspondent a une section ou a un fonction explortée.
                En plus vue que c'est codé avec du MSIL, il doit pas faloir se forcer pour avoir une pletor de section et d'objet.
                Ca me rappel une vieillie astuce de cracker qui consister a interchanger une DLL apres qu'elle est était verifié, plus ou moin a l'arache en mémoire et en modifient les pointeur de fichier sur la DLL cracké, sauf que la au lieu des DLL, ce sont directement des sections de binaires.

                le cracking au service des produits MS, comme quoi le piratage et MS c'est une grande histoire :-)

                --
                Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.

    [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

    Posté par Benjamin () le 21/12/2002 à 14:06. (lien). Évalué à 4.

    Sans dec, s'aurait été bien d'avoir ca du temps de Netscape 4.. c'était limite gonflant, quand il freezait alors qu'on était en train d'écrire un post, de devoir grep-er /proc/kcore pour récupérer son message ;)

    Par contre, pour être plus sérieux, je m'étonne que ce genre d'outil ne soit pas interdit au pays de PBPG selon leur DMCA..

    • [^]Re: Vulcan, ou comment modifier des binaires quand bon vous semble

      Posté par Beretta_Vexee () le 21/12/2002 à 14:42. (lien). Évalué à 2.

      Du moment que personne n'a les moyens financier des soutenir un proces fleuve contre microsoft il y a peut de change.
      Mais bon logiquement on devrait interdir tous debugger qui permettent le cassage de protections, méme chose pour les deassembleur et autre .

      --
      Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.