Ils sont deux cette fois à rivaliser à coup d'inodes et de binaires pour la réalisation d'un agenda *convivial*. Face à ce choix difficile, toute l'équipe du défi vous invite à élire en ligne celui qui trônera tous le mois durant aux cotés de son animal porteur de force...(i.e. le cochon)
Les scripts et solutions des deux candidats sont en ligne, vous pouvez les tester... à vos risques et périls :)
Aller plus loin
- Le site parinux (sondage en page de garde, à droite) (2 clics)
- Enoncé du défi #3 (2 clics)
- Les solutions (4 clics)
- Historique des défis (2 clics)
# Trop trop fort !
Posté par Obi MO (site web personnel) . Évalué à 6.
stocker des données avec des devices ou dans des binaires, miam ! On pourrait remplacer mySQL ... et même faire tourner daCode avec, non ?!
[^] # Re: Trop trop fort !
Posté par Anonyme . Évalué à -1.
"It's just a question of time"
[^] # Re: Trop trop fort !
Posté par Nicolas Vabo . Évalué à 1.
Je l'ai adoré (mais pas mon antivirus), tous les autres sont aussi bien :-D
[^] # Re: Trop trop fort !
Posté par Benjamin Drieu (site web personnel) . Évalué à 6.
Sinon c'est sur http://www.parinux.org/article.php?sid=48(...)
[^] # Re: Trop trop fort !
Posté par Anonyme . Évalué à -1.
# Mortel
Posté par dguihal . Évalué à 5.
[^] # Re: Mortel
Posté par un nain_connu . Évalué à 10.
[^] # Re: Mortel
Posté par gle . Évalué à 2.
Même dans un chroot, tu as accès à l'ensemble du disque dur si tu as accès à dev/hdX.
[^] # Re: Mortel
Posté par un nain_connu . Évalué à 2.
[^] # Re: Mortel
Posté par un nain_connu . Évalué à -1.
J'avais pas du tout regardé comment marchait les scripts de leto, et effectivement une création de device est nécessaire au fonctionnement.
Le chrootage ne servira pas à grand chose dans ce cas...
[^] # Re: Mortel
Posté par Leto . Évalué à 1.
Pour que ce soit plus propre, il est mieux de créer un sous-répertoire à part, mais ce n'est pas du tout obligatoire. Et la commande ne fait que créer et/ou effacer des fichiers, même si ceux-ci sont assez ... particuliers !
Voilà, bonne aspirine !
[^] # ou dans un vmware
Posté par B. franck . Évalué à -1.
[^] # Re: ou dans un vmware
Posté par Anonyme . Évalué à 0.
# meuh ...
Posté par Remi Cellier . Évalué à 3.
A mon avis, il y avait un truc à faire avec un lancement de programme en mémoire, et de récupérer les donner avec un ps parsé ou faire joujou avec les ports réseau pour coder les informations ... ou ... ou ... ou ... bon c'est moins crade qu'eux ... encore que ;)
Est ce que la prochaine fois on pourra être prevenu ( même si la news est dans la section autre ?)
[^] # erreur news précédente : je parlais du défi'con en cours
Posté par Remi Cellier . Évalué à -1.
# une solution possible ... ?
Posté par AlphA . Évalué à 10.
Arf, excellente les solutions. Je suis en train de penser à une autre qui aurait pu être sympa : reprendre le principe des linux kernel root kit.
Ca consisterait en un prog écrit en C avec deux fonctions :
init_module et cleanup_module.
De plus, on rajoute une fonction lancée par init_module qui intercepte les appels à "/sbin/rmmod" pour remplacer cette fonction par un rmmod prenant un argument.
Puis, on modifie la fonction qui liste les modules de la même façon, de façon à ce que /proc/modules contiennent les infos
passées à insmod.
Pour rajouter quelqu'un : la page man de insmod nous montre
que l'on peut passer des arguments lorsque l'on charge le module. Donc, un petit (en root) :
insmod LKM_agenda num=XXXXXXXX name="toto"
pemettrait de faire une entrée dans l'agenda.
Pour récupérer une info :
rmmod LKM_agenda nom (c'est notre rmmod modifié).
Pour lister les infos :
cat /proc/modules | grep "ce_qu'on_veut".
Et voila !
P.S.: c'est presque plus propre que les solutions proposées :)
[^] # Re: une solution possible ... ?
Posté par Olivier M. . Évalué à 3.
[^] # Re: une solution possible ... ?
Posté par AlphA . Évalué à 1.
Damned. Bon, une solution :
inclure 2 choses dans un script shell :
le code asm obtenu avec gcc -S, que l'on extrait du script shell avec dd if/of/bs/skip
un compilateur C écrit en sh : ftp://linux01.gwdg.de/pub/cLIeNUX/interim/shasm.TGZ(...) que l'on extrait de la même façon.
Puis on passe le .s extrait à l'assembleur extrait et hop,
on récupère le module et l'on revient à la solution.
# A du mal à comprendre
Posté par harbort . Évalué à 1.
Bon, il modifie la taille, mais sa ligne est tellement compliquée que c'est un peu trop difficile pour moi là !
[^] # Re: A du mal à comprendre
Posté par Antoine Labour . Évalué à 10.
#|prenom|nom|telephone| à la fin des éxécutables pris au pif dans le répertoire donné.
Si les "binaires" sont des scripts shell (ou perl), les lignes sont comprises comme des commentaires, et si ce sont des éxécutables ELF, les lignes sont purement ignorées (tu peux ajouter du padding arbitraire à la fin des ELF)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.