Voyagez dans le temps avec Macfly 1.0

Posté par  (site Web personnel) . Modéré par Jaimé Ragnagna.
Étiquettes :
0
25
mai
2007
Technologie
Macfly est un projet dont le but est de modifier l'horloge d'un programme tiers sans nécessiter les droits administrateur ni avoir à modifier l'horloge système. Toute application peut être ainsi lancée dans l'environnement Macfly. Le projet est conçu autour d'un démon, deloreand, qui va synchroniser le ou les programmes décalés dans le temps par macfly.

Le projet peut servir à tester les logiciels face aux sauts de temps provoqués par l'utilisateur ou par une synchronisation via NTP sans avoir à modifier la date de la machine. En particulier, on peut tester la date « 2038-01-19 04:14:07 » qui est la dernière du format Epoch (on boucle alors en décembre 1901 ou en janvier 1970).

Étant donné qu'on peut modifier la vitesse de l'horloge, on peut s'amuser à lire des vidéos en accéléré avec VLC, ralentir les jeux pour tricher, etc. On peut également imaginer d'autres usages comme envoyer des emails dans le passé ou le futur.

Le projet a été développé pour le Centre National d'Études Spatiales (CNES) par INL. Le projet est distribué sous licence GNU GPL, et est écrit en C (bibliothèque libmacfly et lanceur maclfy) et Python (démon deloreand et client docbrown). Le démon peut être lancé en mode interactif (saisie au clavier) ou bien en démon, auquel cas on interagira avec lui à l'aide du client docbrown.

On peut saisir un décalage relatif, une heure arbitaire ou encore une date arbitraire. Grâce à la résolution d'une nanoseconde, Macfly permet de modifier la vitesse de l'horloge : on peut la ralentir, l'accélérer ou encore la faire tourner à l'envers.

La plupart des programmes testés supporte des sauts de temps dans le futur (mis à part le serveur artd qui plante). Par contre, la plupart se bloquent (affichage figé) lors d'un retour dans le passé. Étant donné que libmacfly surcharge les appels à la libc, toutes les applications Linux peuvent être utilisées avec Macfly. Néanmoins, les programmes utilisant une pause (fonctions sleep()) ou un appel direct au matériel (RDTSC ou RTC) ne sont pas influençables par Macfly (ex: mplayer). La documentation se trouve dans l'archive du programme et détaille l'installation et l'utilisation.

Aller plus loin

  • # Ah, les pirates !

    Posté par  (site Web personnel) . Évalué à 6.

    Comme tous les outils, ce logiciel peut être utilisé pour le meilleur comme pour le pire. Le meilleur est évident mais pour le pire, il permettra à des amateurs de faire des faux et de tricher alors que ces activités étaient jusqu'à présent réservées aux geeks confirmés.
    Tout fout camp, les bonnes traditions se perdent !
    • [^] # Re: Ah, les pirates !

      Posté par  . Évalué à 2.

      C'est vrai qu'avec un petit serveur sntp, on peut imaginer faire que certains pourraient en profiter assez facilement...
    • [^] # Re: Ah, les pirates !

      Posté par  . Évalué à 6.

      J'ai peut être une crise de modestie énormissime, mais je ne vois pas la difficulté dans l'envoi d'un mail anti-daté (ou avec une autre identité, etc), l'exécution dans une machine virtuelle d'un OS (qemu, virtuabox, etc), ou d'autres.

      L'impression que j'en ai à la lecture de ton post[1] c'est qu'il faut limiter l'utilisateur pour éviter qu'il fasse des bêtises, or à mon sens c'est plutôt par l'éducation (signature des mails, expliquer ce qu'est un certificat, etc) que l'on protège les gens.

      Les gens qui sont vraiment dangereux savent de toute façon comment faire des siennes.

      [1] si c'est pas le cas,cela m'aura servi de prétexte pour mettre une couche sur "éduquons les utilisateurs" :-)
      • [^] # Re: Ah, les pirates !

        Posté par  (site Web personnel) . Évalué à 5.

        > J'ai peut être une crise de modestie énormissime, mais je ne vois pas la difficulté dans l'envoi d'un mail anti-daté

        La problématique auquel répond Macfly est en effet plus complexe que le simple décalage dans le temps d'un envoi de mail.
        L'idée est de pouvoir, sans changer la date système :
        tester des applications à des dates précises
        déclencher des décalages de temps
        passer une période sans événements
        ...

        Cela permet de valider des systèmes complexes sur la durée et sans trop de perte de temps.
        • [^] # Re: Ah, les pirates !

          Posté par  . Évalué à 2.

          On est bien d'accord ; et j'ajouterais que pour les méchants amateurs, je ne vois pas l'ntérêt[1].

          En passant, à part le confort (pas d'obligation d'avoir un autre OS, etc), dans quel cas de figure cela est-il vraiment intéressant ?

          [1] évidemment, on me sortira le cas où le gars n'a pas les droits admins sur la machine (genre réseau d'entreprise, d'université) et voudrait faire une manip sur la date courante pour un programme particulier, mais m'est avis, que le gars en question sait ce qu'il fait, et ne peut être qualifié d'amateur (même si on est tous l'amateur de quelqu'un :-) ).
          • [^] # Re: Ah, les pirates !

            Posté par  (site Web personnel) . Évalué à 5.

            > En passant, à part le confort (pas d'obligation d'avoir un autre OS, etc), dans quel cas de figure cela est-il vraiment intéressant ?

            Certains ont fait fortune avec des softs an 2000. Là on prend de l'avance pour le gros bug de « 2038-01-19 04:14:07 » ;)

            Plus sérieusement, lors que l'on vérifie une application critique, il est nécessaire de ne négliger aucun paramètre. La date d'exécution en fait partie. Ce logiciel permet donc de tester facilement les applications à date de mise en oeuvre.

            De plus, comme il permet d'effectuer des sauts, la validation peut ainsi passer les périodes non interessantes par exemple quand une sonde fait 0.1 année lumière en ligne droite sans croiser âme qui vive. On se déplace ainsi aux périodes critiques de manière facile.
    • [^] # Re: Ah, les pirates !

      Posté par  . Évalué à 3.

      Je ne pense pas que c'est la fin des démos limitées dans le temps. On peut vérifier la vraie date par le net, ou sur un log système quelconque.

      Après si tu crois encore les noms d'expéditeurs et date des mails fiables...

      Il m'est déja arrivé de recevoir des mails datent de 1970 ou de faire un beau poisson d'avril sous un faux nom.
    • [^] # Re: Ah, les pirates !

      Posté par  (site Web personnel) . Évalué à 3.

      Ce n'était pas réservé aux geeks confirmés.. le speedhack (Windows 98 et NT) existe depuis bien longtemps.. et était (est) beaucoup utilisé dans la triche sur les jeux vidéos surtout en ligne. D'ailleurs un des "cheat" Counter-Strike les plus populaire de l'époque, soit OGC, était même distribué en open-source et incluait ainsi les sources d'un speedhack.


      Et en passant je remercie l'auteur de cette news car je n'avais jamais su exactement quel procédé était utilisé pour ralentir et accélérer les applications.
  • # debut du 3

    Posté par  . Évalué à 10.

    1885 ? C'est passionnant ton histoire du futur, mais il y a un petit détail qui ne colle pas avec le reste : si le moi du futur est parti dans le passé, comment se fait-il que tu puisses le savoir ?
    • [^] # Re: debut du 3

      Posté par  (site Web personnel) . Évalué à 3.

      "Macfly vous n'êtes qu'un tocard"

      Quel boulet : je n'avait pas fait le lien avec macfly ... avant d'avoir lu ta réplique.
  • # Doc ?

    Posté par  (site Web personnel) . Évalué à 10.

    Et la question que tout le monde se pose : ses concepteurs en ont-il eu l'idée en se cognant la tête contre la cuvette des toilettes ?
    • [^] # Re: Doc ?

      Posté par  . Évalué à 9.

      Oui ou alors en se disant, avant d'appuyer sur le bouton eject, qu'il serait bon de tester comment vont réagir dans 20 ans tous les programmes d'un satellite envoyé dans l'espace !
  • # et donc...

    Posté par  (site Web personnel) . Évalué à 5.

    .... si je tue mon grand-père, avant qu'il ait eu lui même un fils...



    [Et si je fermais la porte, avant même de l'avoir ouverte.... ^^]
    • [^] # Re: et donc...

      Posté par  (site Web personnel) . Évalué à 8.

      « Le front de libération des animaux sur la seconde avenue est le quartier général secret de l'Armée des 12 singes. Ce sont eux qui sont à l'origine de tout. Je ne peux rien de plus pour l'instant, il faut que j'y aille. Joyeux Noël et bonne année ! »

      Merci à acatout pour m'avoir aidé à reconstituer la bande sonore. Elle était sacrément abimée.
    • [^] # Re: et donc...

      Posté par  . Évalué à 3.

      si je tue Microsoft avant qu'il fasse Windows ? est ce qu' en revenant je verrais des GNU et des manchots partout ?

      En même temps on aura rayer les épidémies de virus informatiques de la terre ?

      autant faire d'une pierre deux coups
  • # c'est du réchauffé cette news

    Posté par  (site Web personnel) . Évalué à 10.

    Wé, moi ce programme, ça fait plus de trois ans que je l'utilise ! je l'ai téléchargé avec ipot


    http://kadreg.free.fr/ipot/

    PS: avé kadreg
  • # Overflow

    Posté par  . Évalué à 10.

    J'ai essayé d'aller dans le futur afin de voir enfin Duke Nukem Forever. J'ai eu un beau Overflow.
  • # Projet plus étendu: "SUBTERFUGUE"

    Posté par  . Évalué à 5.

    http://subterfugue.org/ est un projet qui permet de modifier la vision du temps d'un processus, mais aussi bien d'autres choses car on peut intercepter et modifier d'autres appels systèmes (par exemple, intercepter les accès au systeme de fichier pour faire un "chroot" selectif).

    Par contre ça n'est plus maintenu depuis 2002....
  • # CNES + INL = Humour

    Posté par  . Évalué à 10.

    Ce que je remarque également, c'est que le CNES et l'INL ne manquent pas d'humour...

    "bibliothèque libmacfly et lanceur macfly", "démon deloreand et client docbrown" ...

    Je trouve les noms des devs très sympas et très à-propos. Bravo le CNES et l'INL, faire un projet libre c'est très bien, avec une touche d'humour c'est la cerise sur le gâteau (certes ce n'est pas si rare que ça dans le libre, mais c'est toujours sympathique).
    • [^] # Re: CNES + INL = Humour

      Posté par  . Évalué à 3.

      Oui il n'y a plus qu'à espérer que le studio d'où viennent ces noms n'ait pas déposé de brevés ou autre blocage juridique du style sur ces noms :) Sinon on va encore dire que le monde de l'OpenSource n'est qu'à ramassi de pirates !
      • [^] # Re: CNES + INL = Humour

        Posté par  . Évalué à 2.

        un brevet sur un nom ?

        Pour info, il doit exister des milliers de Docteurs Brown dans le monde anglophone et De Lorean est à la fois une marque de voiture et le nom de son fondateur.

        Enfin bref, tu ne peut pas interdire quelqu'un d'utiliser un nom propre ni une marque de voiture comme nom de programme :)
        • [^] # Re: CNES + INL = Humour

          Posté par  . Évalué à 1.

          le smiley :) est là pour indiquer le caractère ironique de ma remarque.
        • [^] # Re: CNES + INL = Humour

          Posté par  . Évalué à 3.

          un brevet sur un nom ?

          Pour info, il doit exister des milliers de Docteurs Brown dans le monde anglophone et De Lorean est à la fois une marque de voiture et le nom de son fondateur.

          Pas des brevets mais des marques deposees. Je ne sais pas si elles sont vraiment deposées (par les studio de cinema) mais l'utilisation conjointe des mots Macfly, Docbrown et Delorean dans un contexte lié a la manipulation du temps, ca me parait tendancieux... Autant Mobilix etait legitime (quoique les juges s'y connaissent plus en BD qu'en UNIX), autant la, ca sent le franchissage (neologisme, franchissement, toussa...) de ligne.
  • # Cool pour les étudiants (mais pas seulement)

    Posté par  . Évalué à 5.

    On peut également imaginer d'autres usages comme envoyer des emails dans le passé ou le futur.


    - Mais monsieur, mon TP, je l'ai envoyé à temps, vous n'avez qu'à vérifier l'heure du mail !

    - Mais madame, ma déclaration d'impôt, je l'ai envoyée à temps !

    - etc.
    • [^] # Re: Cool pour les étudiants (mais pas seulement)

      Posté par  (site Web personnel) . Évalué à 4.

      Lorsqu'on construit un équipement de sécurité, un serveur de temps en fait souvent parti. Ce serveur sera synchronisé par plusieurs sources NTP (ex: fr.pool.ntp.fr qui a 46 serveurs actifs). L'heure prise en compte n'est jamais celle du client, mais celle du serveur de temps.

      Note : Macfly n'est sûrement pas une révolution, un (GRAND VILAIN) étudiant pouvait déjà changer l'heure de son OS. Dans ce cas précis, là différence est qu'on n'a pas besoin d'être root sur la machine.
  • # heure d'été

    Posté par  . Évalué à 2.

    Petite question, est-ce que ce genre de programme permet de tester un programme lors du passage d'heure été hiver ?

    d'après ce que j'ai lu dans la doc, ca a l'air d'être le cas.

    si oui, ca m'intéresse grandement :-)
    • [^] # Re: heure d'été

      Posté par  (site Web personnel) . Évalué à 4.

      Le passage de l'heure d'été à l'heure d'hiver revient à avancer/reculer d'une heure. Or, pour celà il suffit de taper "hour=+1" ou "hour=-1" dans deloreand. Vu mes tests, je ne suis pas sûr que tous les programmes tiennent le coup face à ces sauts de temps (ex: xclock).
      • [^] # Re: heure d'été

        Posté par  . Évalué à 3.

        Tant qu'ils ne nous refont pas le bug de Windows 98 (ou Windows 95? j'ai un duote d'un coup), ça va...
        Pour la petite histoire: Windows {95|98} avait un léger oubli quand il reculait d'une heure! Il oubliait de s'informer lui-même qu'il venait de faire le changement d'heure et donc... passait des 3h à 2h du matin toutes les heures, puisqu'il croyait ne pas encore avoir fait ce changement!
        C'est à ça qu'on reconnaît les bons développeurs, à leur sens du détail!
        • [^] # Re: heure d'été

          Posté par  . Évalué à 6.

          Moui, les bugs de changement d'heure il y en a pour tout les OS et appli: zebra (démon de routage) si tu lui recules l'heure et bien il n'envoyait plus les mises a jour périodiques RIP, pas terrible..
        • [^] # Re: heure d'été

          Posté par  . Évalué à 0.

          oui et surtout qu'il faut peut être oublier un peu win95/98 car taper sur Microsoft avec des exemples de ces OS, c'est facile et peut être facilement retourné contre n'importe quel programme à un moment de son développement, que ce programme soit libre ou non
  • # elle où la...

    Posté par  . Évalué à 4.

    la libBiffTannen?

    Et sinon avec ton app, peut-on s'appropier les droits de l'histoire?
  • # Très bonne idée

    Posté par  . Évalué à 1.

    Je cherchais justement un truc comme ça y'a quelques jour. Par contre, ça ne fonctionne pas avec beaucoup d'application :
    - mplayer
    - dosbox (bah ouais, je voulais enfin un settlers 2 à une vitesse correct ^^)
    • [^] # Re: Très bonne idée

      Posté par  (site Web personnel) . Évalué à 5.

      Oui, certaines applications utilisant /dev/rtc (et donc une interaction directe avec le noyau) ne sont pas supportés. C'est le cas d'un logiciel "important" comme mplayer.

      Il s'agit cependant d'une infime minorité des programmes existants. L'absence de "s" à application dans ton post doit être un lapsus révélateur :P
    • [^] # Re: Très bonne idée

      Posté par  (site Web personnel) . Évalué à 5.

      Il est envisageable de surchager sleep(), usleep() et nanosleep() pour prendre en compte le changement de vitesse de l'horloge. C'est juste que ce n'était pas la priorité. Le changement de vitesse n'avait pas été demandé par le CNES mais a été développé à la fois pour le fun et pour les tests (ce qui a servi à corriger pas mal de bus d'ailleurs).
  • # Mais surtout ...

    Posté par  . Évalué à 7.

    Les geeks vont - enfin - pouvoir se consacrer à l'autre grand mystère de l'univers : les femmes !

    http://perso.orange.fr/viney.nancy/hillvalley/lautregrandmys(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.