Journal eviv Bulgroz !!!

Posté par  (site web personnel) .
Étiquettes : aucune
0
7
jan.
2004
Cher journal

Tu as connu MultideskOS, tu as connu le projet gultin... maintenant tu vas connaitre inv!

Depuis plusieurs minutes, on délirait sur le chanel irc de nasgaïa en bulgroz, richard a eu l'idée génial de réaliser ce petit programme en c http://pinix.free.fr/nasgaia/inv-1.1.2.c(...)

nob tnemesuma ceva ec emmargorp eriannoitulovér !

ps: à compiler avec gcc -o inv inv-1.1.2.c
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 2.

    snorepse euq ac es esitarcomed

    irir
  • # Re: eviv Bulgroz !!!

    Posté par  (site web personnel) . Évalué à 2.

    [15:31:28][sly@reloaded] ~$ less inv-1.1.2.c
    [15:31:40][sly@reloaded] ~$ gcc -o inv inv-1.1.2.c
    ./inv[15:31:48][sly@reloaded] ~$ ./inv
    Erreur de segmentation

    Pas mal :)
    • [^] # Re: eviv Bulgroz !!!

      Posté par  . Évalué à 1.

      man inv
      euh non en fait, ./inv "ta phrase"
    • [^] # Re: eviv Bulgroz !!!

      Posté par  . Évalué à 1.

      tse'c ecrap li'uq tuaf rertne enu gnirts ne ertearap
    • [^] # Re: eviv Bulgroz !!!

      Posté par  . Évalué à 1.

      tout sera corrigé en 2.0.0
      tuot ares egirroc ne 0.0.2
  • # Re: eviv Bulgroz !!!

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    ce qui est cool c'est que ça marche de manière symétrique... Comme le rot13 :)

    Mes livres CC By-SA : https://ploum.net/livres.html

  • # Re: eviv Bulgroz !!!

    Posté par  (site web personnel) . Évalué à 1.

    Un copain m'avait écrit ça :

    perl -e '$_ = ; split; map {print reverse ( split //, $_), " "} @_;'

    (Ho ! 'taing, v'là qu'j'me mets à pondre du code ?!)

    tE aç ehcram tôtulp .neib
    lrep e- _$' = ;>NIDTS< ;tilps pam tnirp{ esrever ( tilps ,// ,)_$ " }" ';_@<*COIN!*

    Proverbe Alien : Sauvez la terre ? Mangez des humains !

    • [^] # Re: eviv Bulgroz !!!

      Posté par  . Évalué à 1.

      Encore plus simple avec Python2.3:
      --------------------
      import sys
      print sys.argv[1][::-1]

      ---------------------
      ou, exécuté en live:
      -------------------
      >>> print "Vive python"[::-1]
      -------------------

      nohtyp eviV
    • [^] # Re: eviv Bulgroz !!!

      Posté par  . Évalué à 1.

      en vite fait en bash ca donne ca :

      #!/bin/bash
      plop=""
      for i in $* ; do plop="$plop `echo -n $i | rev`" ; done
      echo $plop
    • [^] # Re: eviv Bulgroz !!!

      Posté par  (site web personnel, Mastodon) . Évalué à 1.

      pendant qu'on y est, voici inv en php

      #!/usr/bin/php
      <?php echo strrev($argv[1]),"\n"; ?>


      ./inv "php ça roxor"
      • [^] # Re: eviv Bulgroz !!!

        Posté par  . Évalué à 2.

        oui .... mais non

        parce qu'il faut garder l'ordre des mots héhé :)

        donc il manque un split() et un array_walk() a mon avis :)

        (cette remarque est aussi valable pour les posts au dessus)

        Dam
    • [^] # Re: eviv Bulgroz !!!

      Posté par  . Évalué à 1.

      c'est possible en ruby ??
      • [^] # Re: eviv Bulgroz !!!

        Posté par  (site web personnel) . Évalué à 1.

        c'est possible en ruby ??

        Oui, il le peut !!
      • [^] # Re: eviv Bulgroz !!!

        Posté par  . Évalué à 1.

        #!/usr/bin/ruby -w
        def inv(chaine)
          result = '';
          for mot in chaine.split(' ')
            result += (mot.reverse + ' ');
          end
          return result;
        end

        print inv(ARGV[0]);
        print "\n";

        ----

        erwan@hirondelle ruby $ ./inv.rb "Ca marche tres bien"
        aC ehcram sert neib

        (c'est vraiment beau, du Ruby...)
    • [^] # Re: eviv Bulgroz !!!

      Posté par  (site web personnel) . Évalué à 1.

      --
      #!/usr/bin/perl
      foreach (@ARGV){
      print reverse split //;
      print " ";
      }
      print "\n";
      --
      ./bulgroz.pl Ca marche du feu de Dieu
      aC ehcram ud uef ed ueiD
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 1.

    drac@arthemis:~$ gcc -Wall -o inv inv-1.1.2.c
    inv-1.1.2.c: Dans la fonction « main »:
    inv-1.1.2.c:19: attention : unused variable `j'
    inv-1.1.2.c:20: attention : unused variable `mot2'


    c'est mal
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 2.

    vite !!!! faut faire une niouze de première page :-)
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 1.

    Sachez que la prochaine version fera du vrai reverse français
    (prise en compte des apostrophes par exemple)

    ca viendra vite ...

    zebulgoz neib ceva vni
  • # Re: eviv Bulgroz !!!

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

    A quand une extension mozilla pour faire ca en live sur linuxfr ?
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 1.

    Et le Nbuild, il est fait ?
  • # Re: eviv Bulgroz !!!

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

    L'est pas secure ton programme...
                                  -------- SECURITY BUG ALERT --------
    
    Lorsqu'il est éxécuté par root (hein y a des gens qui font ca ?!), la fonction rev() chargée
    de renverser la chaine passée en argument ne vérifie pas la longueur de cette dernière, 
    pouvant entrainer un buffer overflow. Finement exploité, on peut injecter un shell script et
    le faire s'éxécuter pour gagner les droits roots. Ceci est d'autant plus facile, que la chaine 
    est passée en argument !
    
               -------- SECURITY BUG ALERT ternimée, circulez y a rien à voir --------
    
    C'est encore du logiciel codé par un stagiaire ! ;-) Bon je ==>[]
    • [^] # Re: eviv Bulgroz !!!

      Posté par  (site web personnel) . Évalué à 1.

      On est jamais trop prudent.
    • [^] # Re: eviv Bulgroz !!!

      Posté par  (site web personnel) . Évalué à 2.

      D'abord je dis:
      >Lorsqu'il est éxécuté par root

      Puis j'enfonce le clou avec:
      > Finement exploité, on peut injecter un shell script et le faire s'éxécuter pour gagner les droits roots.

      Ra personne n'a vu la finesse de mon post... on gagne quoi a devenir root en étant déjà root ? ;-)
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 1.

    Et alors personne n'a encore noté l'allusion à la formidable bédé de notre jeunesse: Spirou et Fantasio ?
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 3.

    $ ./inv sugus
    sugus


    Marche pas ton truc >_<


    --------->[] :>
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 3.

    nous, c'était y'a des mois mais j'avais fait un script pour xchat pour écrire directement comme ça. ça nous est passé depuis.

    http://herve.satori.free.fr/revnal.py(...)

    PS : fait vraiment aimer le C pour se coltiner du traitement de chaînes avec, c'est au bas mot 30 sources de bugs et de trous de sécurité possibles. Alors qu'une ou deux fonctions avec un langage de script...
    • [^] # Re: eviv Bulgroz !!!

      Posté par  (site web personnel) . Évalué à 2.

      oui et cette langue s'appelle le revnal pas l'inv
    • [^] # Re: eviv Bulgroz !!!

      Posté par  . Évalué à 1.

      c'est sûr, ici on voit l'utilisation de buffer qui peuvent être débordés par exemple. j'écrirais la fonction suivante :
      void rev_string (char *str)
      {
        char *beg, *end, *p, tmp;
      
        beg = str;
        while (*beg != '\0') {
      
          while (!isalpha(*beg) && *beg != '\0')
            beg++;
      
          end = beg;
          while (isalpha(*end))
            end++;
      
          p = end - 1;
          while (p-beg > 0) {
            tmp = *beg;
            *beg = *p;
            *p = tmp;
            beg++;
            p--;
          }
         
          beg = end;
        }
      
        puts(str);
      }
      
      j'ai testé ce code mais il segfault incompréhensiblement : en effet, en l'exécutant via gdb, il ne segfault pas ? je comprends pas... Si quelqu'un pouvait m'éclairer un peu sur ce comportement, je lui en remercierait par avance :)
  • # Re: eviv Bulgroz !!!

    Posté par  . Évalué à 2.

    No elrap ed iom ?

    Bulgroz
  • # Re: eviv Bulgroz !!!

    Posté par  (site web personnel) . Évalué à 1.

    Et maintenant le tarball-qui-compile-pas en C++ :

    http://pinix.free.fr/nasgaia/bulgroz-0.1.3.tar.bz2(...)

Suivre le flux des commentaires

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