• STATISTIQUES
  • Il y a eu un total de 0 membres et 39439 visiteurs sur le site dans les dernières 24h pour un total de 39 439 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [FR] Cyber-Hacker
    CH - Cyber Hacker est un jeu par navigateur de simulation de hack, programmez et envoyez vos virus et piratez les aut...
    Hacking
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    Hacking
    [EN] CS Tutoring Center
    Site de challenge spécialisé dans les challenges de programmation C++ et java cependant, d'autres langages pe...
    Challenges
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] Exploit-db
    Une base de données d'exploits triés par genre (GHDB, Remote, Local, Web, DOS, ShellCode) à ...
    Vulnérabilités

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Le mystère de GNU yes
05-07-2012, 19h31 (Modification du message : 05-07-2012, 19h36 par spin.)
Message : #3
spin Hors ligne
Contributeur
*****



Messages : 325
Sujets : 15
Points: 38
Inscription : Nov 2011
RE: Le mystère de GNU yes
galex-713 m'avait suggéré cette idée de ne mettre dans la boucle que le int, mais le problème c'est que l'exécution de int $80 modifie l'état des registres, il faut donc le remettre bien à chaque fois.

En ce qui concerne les buffers, j'ai essayé une solution en utilisant comme pointeur sur ma chaîne une donnée dans .data plutôt que directement la stack. Le résultat est le même, mon yes est infiniment plus lent que GNU yes. Cela dit, je n'ai pas compris grand chose au code de GNU (le C et moi...), mais après relecture plus attentive, je pense qu'il y a en effet une approche avec un buffer, comme tu le dis. À la ligne 84, on affiche argv[ i] et on pourrait supposer qu'il y a donc en effet un buffer contenant les 'y'. Mais je ne comprends pas comment le buffer peut être infini alors.

EDIT :
Après un coup de strace yes, je m'aperçois que GNU yes aussi affiche deux octets par deux octets ("y\n") en boucle :

Code :
write(1, "y\n", 2y
)                      = 2
write(1, "y\n", 2y
)                      = 2
write(1, "y\n", 2y
)                      = 2
write(1, "y\n", 2y
)                      = 2
write(1, "y\n", 2y
)                      = 2
write(1, "y\n", 2y
)                      = 2
write(1, "y\n", 2y
)                      = 2
...


L'output de mon yes, strace ./yes, est exactement le même (mise à part les trucs du début que je n'ai pas).
+1 (0) -1 (0) Répondre


Messages dans ce sujet
Le mystère de GNU yes - par spin - 05-07-2012, 14h32
RE: Le mystère de GNU yes - par Ark - 05-07-2012, 16h52
RE: Le mystère de GNU yes - par spin - 05-07-2012, 19h31
RE: Le mystère de GNU yes - par Ark - 06-07-2012, 10h56
RE: Le mystère de GNU yes - par gruik - 24-11-2012, 18h42
RE: Le mystère de GNU yes - par spin - 25-11-2012, 15h33
RE: Le mystère de GNU yes - par spin - 26-11-2012, 20h07
RE: Le mystère de GNU yes - par gruik - 26-11-2012, 20h34

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut