Victor STINNER a écrit 1639 commentaires

  • [^] # Re: Raison

    Posté par  (site web personnel) . En réponse au journal grave faille de sécuritée dans toutes les versions de windows. Évalué à 5.

    Ca fait longtemps que le format WMF est lu :
    http://wvware.sourceforge.net/libwmf.html

    Par contre, je ne sais pas si ce comportement était déjà connu par les développeurs de la bibliothèque libwmf.

    J'avais jetté un coup d'oeil au format WMF ... Il est ... dépaysant. En gros, il appelle l'API Win32 (GDI pour être exact) pour les fonctions de dessins, enfin selon mes souvenirs.
    Basically they are a recording of the windows gdi (graphic) calls.

    (phrase extraite de http://wvware.sourceforge.net/caolan/index.html : "The World's Most Complete WMF Documentation", rien que ça)

    Quand on voit comment le code de Windows est stable face à des données aléatoires (voir le logiciel fuzz, lien ci-dessous), je me dis qu'on doit pouvoir en faire des trucs sympas effectivement.
    http://www.cs.wisc.edu/~bart/fuzz/fuzz.html
    (y'a aussi un rapport sur les programmes Unix qui plantent aussi vite fait face à des données aléatoires)

    Haypo
  • [^] # Re: Rétro-ingénierie

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de la version 2005-12-28 du Hachoir. Évalué à 5.

    Pour continuer sur le thème de la rétro-ingénierie, j'ai écrit une classe Reverse qui devrait faciliter le travail. L'idée générale est de donner en entrée plusieurs sources d'informations, et des informations approximatives. L'outil va alors tenter d'en déduire des conclusions.

    Les premiers essais sont très intéressant. J'ai donné 10 fichiers gzip en entrée, la taille du fichier décompressé, et la classe m'a dit à quelle position se trouvait le champ ! J'ai fait un autre test sur un champ que je n'arrivais pas à trouver dans les ressources du jeu Worms 2 ... ben j'ai pas trouvé car je demandais la valeur exacte, alors qu'en fait il fallait la valeur plus un :-) Au second test, en spécifiant un intervalle, mon outil trouve le résultat tout de suite ! Le format, nombre d'octets et endian, sont détectés automatiquement (ils sont testés l'un après l'autre en fait).

    Après, on peut imaginer des trucs plus costaux, comme reconnaître un motif. Exemple : header de taille fixe, chunk contenant sa taille, chunk contenant sa taille, etc. => format classique et facilement identifiable (ça prend du temps de calcul, mais c'est facile).

    Haypo
  • [^] # Re: avec FUSE ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de la version 2005-12-28 du Hachoir. Évalué à 2.

    J'ai noté ça dans la page développement : creuser du côté de FUSE, translators Hurd et KIO slaves serait intéressant. Effectivement, ça existe déjà pour des .tar.gz par exemple. Après c'est une histoire de temps aussi, c'est très intéressant, mais j'ai pas le temps de tout faire (l'envie y est par contre ;-)).

    Haypo
  • [^] # Re: jsuis déçu

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de la version 2005-12-28 du Hachoir. Évalué à 3.

    Tu confonds avec Konqueror / Mozilla Firefox là ... :-) Mais ça pourrait se faire plus tard. J'ai pensé à la possibilité d'ajouter des boutons / icônes / zones texte selon le plugin. Un plugin qui lit une image pourra par exemple l'afficher ! Et mieux, on peut imaginer un bouton "convertir" (en PNG/JPG) vu qu'on a toutes les infos : taille, donnée, etc.

    Haypo
  • [^] # Re: Un beau plugin de CraCkERZ

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de la version 2005-12-28 du Hachoir. Évalué à 4.

    Y'a déjà un paquet de programme qui font ça. Pas besoin de sortir le Hachoir pour trouver un mot de passe FTP hein. Ethereal l'affiche déjà très bien, grep aussi ;-)

    Sinon, dans la catégorie "Programme à Haypo" :
    http://www.haypocalc.com/wiki/Lamer

    Haypo
  • [^] # Re: DataWorkshop

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de la version 2005-12-28 du Hachoir. Évalué à 4.

    Oui, j'ai hésité à le mettre dans la niouze, car ce logiciel me ferait presque de l'ombre :-D Par contre, il est depuis longtemps sur le site web du projet Hachoir à côté d'autres logiciels qui ont un peu la même utilité (Game Extractor, aussi écrit en Java, à l'air plutôt chouette).

    DataWorkshop a l'air (j'ai testé vite fait) d'être un bon logiciel. Il a une approche un peu différente, mais semble fonctionnel et abouti (contrairement au Hachoir encore en chantier). Il peut travailler au niveau du bit plus naturellement (adresse avec virgule genre 10,3 => le chiffre après la virgule = le bit). Il a une autre qualité remarquable : on peut utiliser un widget différent selon le type de donnée.

    J'ai écrit un hack dans le Hachoir pour travailler au niveau du bit, et j'ai noté qq. part l'idée de pouvoir utiliser un widget différent. D'ailleurs, j'ai pensé aussi que chaque filtre pourrait ajouter des outils en plus : nouveau onglet, nouveau bouton, etc. Ca serait sympa de pouvoir afficher une couleur, une image, lire un son, etc. :-D (pour rebondir sur un commentaire déposé plus haut)

    Haypo
  • # Rétro-ingénierie

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de la version 2005-12-28 du Hachoir. Évalué à 9.

    Là où le Hachoir est le plus utile actuellement, c'est pour deviner un format binaire. Je bosse d'ailleurs sur le format DIR de Worms2 avec un ami (enfin, surtout lui). Un bon morceau du format est reconnu, reste à comprendre l'algorithme de compression des images.

    Si quelqu'un est intéressé (et/ou compétent :-)), je lui envoie le fichier pour qu'il nous file un coup de main.

    N'empêche stocker les données (hors palette de couleur) 640x480 pixels et 256 couleurs (80 pour être exact) dans 274 octets, je dis chapeau ! C'est peut-être un format vectoriel, ou bien compression avec codage des répétitions ? Ou alors un pattern utilisant d'autres images ? Genre : tu me dessines l'image 3 en (10,20), tu me dessines l'image 6 en (200,400), etc.

    Au passage, j'ai trouvé un site intéressant sur le format des données des jeux :
    http://wiki.xentax.com/index.php/Main_Page

    Haypo
  • # Ajout du Python ?

    Posté par  (site web personnel) . En réponse au journal Article sur la programmation C++. Évalué à 2.

    Salut,

    Déjà, l'idée est très bonne et l'article est a l'air bon (pas trop le temps de le lire en détail là). Par contre, il serait intéressant de voir aussi les autres langages. Le principe est le même, mais chaque langage a ses spécificités.

    J'avais justement répondu à une demande sur IRC d'implémentation de singleton en Python. Le premier jet est le suivant :

    # Fichier pouet.py
    class _Pouet:
    def __init__(self):
    self.pouet = "Pouet!"
    print "Instancie"
    def Pouet():
    global _instance_pouet
    if _instance_pouet==None:
    _instance_pouet = _Pouet()
    return _instance_pouet
    _instance_pouet = None

    # Fichier test.py
    from pouet import Pouet
    x=Pouet()
    y=Pouet() # -> x==y et id(x)==id(y)

    J'ai écrit une fonction Pouet pour faire croire qu'on instancie une classe Pouet alors qu'en fait on appelle la méthode getInstance() de la classe _Pouet.

    Alternative, en utilisant un attribut privé (_instance) :

    # Fichier pouet2.py
    class _Pouet:
    _instance = None

    def __init__(self):
    assert self._instance == None
    self._instance = self
    self.pouet = "Pouet!"
    print "Instancie"

    def getInstance():
    if _Pouet._instance == None:
    _Pouet._instance = _Pouet()
    return _Pouet._instance
    getInstance = staticmethod(getInstance)

    def Pouet():
    return _Pouet.getInstance()

    # Fichier test2.py
    from pouet2 import Pouet
    x=Pouet()
    y=Pouet() # -> x==y et id(x)==id(y)

    Cet exemple est plus propre je pense.

    Voili voilou.
    Haypo
    PS: Oups, y'a pas moyen d'insérer du code en conservant l'indentation (<pre>) dans un commentaire LinuxFR, pas pratique pour le Python ...
  • # Ca marche aussi dans l'autre sens

    Posté par  (site web personnel) . En réponse au journal Gmail et les .exe. Évalué à 4.

    J'avais voulu envoyer le TP qu'on avait fait à deux à mon binome. En rentrant chez moi, je reçois un message d'erreur de Google : "t'es ouf ! t'envoie des .class, n'importe quoi !" (traduction libre ;-)). Enfin, si je m'en souviens bien. Donc on peut pas envoyer/recevoir de fichiers potentiellement dangereux via Gmail.

    Complément à la solution proposée plus haut (utiliser .tar.bz2) : chiffrer les données. Le format zip le permet par exemple. (en mettant le mot de passe en clair dans l'email bien sûr)

    Haypo qui vous souhaite un joyeux noël
  • # Killer feature

    Posté par  (site web personnel) . En réponse à la dépêche X11R7.0 sous le sapin de Noël. Évalué à 6.

    Chaque nouvelle version d'un programme apporte son lot de nouvelles fonctionnalités. Mais là je pense qu'on a vraiment le droit à une killer feature :
    Support for more than 12 buttons in the generic mouse driver

    (en français : Support des souris de plu de 12 boutons dans le pilote souris de base)

    Super, je vais enfin pouvoir brancher ma souris sans boule mais avec 105 touches :-D

    Haypo
    PS: Plus sérieusement, vous avez une photo de ce genre de monstre ?
  • [^] # Re: coquille

    Posté par  (site web personnel) . En réponse au journal Après ReiserFS, FreeBSD sait maintenant lire le XFS \0/. Évalué à 2.

    Un ami utilise ReiserFS, ce qui m'a donné envie de tester. Ben ... euh ... j'vois pas la différence, mais en même temps je l'ai fait après une installation de Linux tout fraiche. Mais tous les benchmarks montrent que ReiserFS : gaspille moins d'espace et est plus rapide (que ext2/ext3 par exemple).

    Haypo
  • # Hachoir en tant qu'outil de "Forensics"

    Posté par  (site web personnel) . En réponse au journal Hachoir version 2005-12-11. Évalué à 2.

    Je suis en train de bosser sur le format ext2. Je me dis que si j'arrive à rendre le code pas trop lent, le Hachoir pourrait servir d'outil de forensics (y'a un terme français pour ça ?).

    Avec ses outils de détection de type MIME et les outils existants et futurs (déchiffrement à la volée et gestion propre des erreurs), ça pourrait donner un bon outil.

    Haypo
  • [^] # Re: miniature EXXXIF...

    Posté par  (site web personnel) . En réponse au journal Hachoir version 2005-12-11. Évalué à 2.

    Euh ... il est pas coquin mais jovial le sourire. Je pensais à une photo tout à fait normale :
    http://www.wormux.org/wiki/Image:gentildemon-roller.jpg.php

    Mais apparement le phénomène est connu vu les liens donnés ...

    Sinon, un peu dans le même domaire, j'ai discuté avec l'auteur de DHIS. C'est un programme qui cache des informations dans des fichiers ELF de manière distribuée. Je lui ai suggeré d'aller voir du côté des fichiers TAR, PNG et GZIP qui contiennent des espaces qui peuvent être exploités dans les fichiers (ex. pour gzip: créer un champ commentaire).
    http://dhis.devhell.org/

    Haypo
  • [^] # Re: Détails

    Posté par  (site web personnel) . En réponse à la dépêche Des scientifiques ont évalué la pertinence de Wikipédia. Évalué à -10.

    POURQUOI MAIS POURQUOI POURRIR LES COMMENTAIRES AVEC CA ? Pourquoi ne pas contacter le(s) modérateur(s) et/ou l'auteur ?

    Haypo
  • [^] # Re: Post scriptum

    Posté par  (site web personnel) . En réponse au journal Histoire d'ampoules.... Évalué à 5.

    Il est génial ce journal. Il est ... hum, je pense qu'il est bien représentatif des moules linux<suite de lettres qui vont bien>iennes. En tout cas, n'arrêtez pas de mouler, ça m'occupe de lire vos commentaires :-)

    Haypo
  • [^] # Re: He Ho ! M'oubliez pas !

    Posté par  (site web personnel) . En réponse au journal Histoire d'ampoules.... Évalué à 4.

    Un autre, vers 3h, pour dire qu'il manque l'URL, mais bien sûr, ne cherche pas lui-même, de peur d'ajouter sa pierre au débat.
  • [^] # Re: DataWorkshop

    Posté par  (site web personnel) . En réponse au journal Hachoir version 2005-12-11. Évalué à 3.

    :-)

    Mais nan. Je vais lui "voler" des idées. Je trouve sa manière dont il affiche les objets est très jolie par exemple. Et puis, il offre des tableaux associant des valeurs à une chaîne de caractère (genre d'ENUM) qu'on peut éditer. Bref, des choses sympas.

    Haypo
  • [^] # Re: DataWorkshop

    Posté par  (site web personnel) . En réponse au journal Hachoir version 2005-12-11. Évalué à 4.

    Très intéressant ! Le projet ressemble au mien, et j'ai l'impression que son auteur est même allé plus loin :
    - On peut avoir plusieurs vues différentes des données
    - On peut éditer les données
    - Apparemment, l'outil est capable de travailler au niveau du bit alors que j'ai choisi de travail uniquement au niveau de l'octet. À la limite, cette tache sera effectuée par un autre outil interne

    Haypo
  • [^] # Re: hachoir, MPEG1/2

    Posté par  (site web personnel) . En réponse au journal Hachoir version 2005-12-11. Évalué à 2.

    Hum, le format détaille sur cette page ne correspond pas aux quelques fichiers MPEG que j'ai sur mon disque dur :-( J'ai trouvé une autre source d'information : le projet ffmpeg, reconnu pour être rapide et supporter de nombreux formats vidéos et audios (je vois AVI, ASF, Matroska, MPEG, etc.).

    Je viens d'écrire un parseur pour le conteneur vidéo AVI à l'instant. Il arrive à décoder les quelques AVI que j'ai sur mon disque. J'ai trouvé où est stocké les informations sur la vidéo et sur le son. Tiens, encore une fois, il y a du "JUNK", zone du fichier qui ne sert à rien. Enfin, ça doit servir à aligner les données pour que la vidéo commence à la position 4096, mais quand même ... Mplayer (mencoder) la remplit avec la chaîne "[=Mplayer junk data! =]" répétée pour remplir cet espace.

    Haypo
  • [^] # Re: Debian?

    Posté par  (site web personnel) . En réponse au journal Hachoir version 2005-12-11. Évalué à 3.

    Bon je veux bien croire que t'y ai passé pas mal de temps donc tu devrais bien connaitre mais le format debian c'est pas 'ar' ?

    Et bien si :-) J'ai réalisé ça après en voyant que les fichiers .a avaient aussi l'entête "<!arch>". J'ai mis du temps à comprendre que "2" était le contenu d'un fichier et pas juste un entête ;-)

    Pour que ce soit utilisé en kio ou gnome-vfs le python c'est pas top... à la limite en utilisant la libpython mais c'est pas encore ca...

    Comment ça ? Trop lourd/lent ? Ben ça peut toujours s'optimiser par plus tard. Par contre, je sais que pour FUSE, on peut utiliser du Python.

    Haypo
  • [^] # Re: Super projet!

    Posté par  (site web personnel) . En réponse au journal Hachoir version 2005-12-11. Évalué à 2.

    Pour avoir passé 4 ans dans le développage de protocole de com', ton projet me fait littéralement baver!

    Ah ouais ?

    Je pense que ceux qui font du revers engeenring doivent tous se dire: "C'est le truc qu'il me faut s'il y avait":

    Oui, je devrais proposer ça aux gens qui en ont besoin. Aux gens de VLC ou d'OpenOffice par exemple.

    - la gestion d'enums!
    - ajout de règles pour detecter certaines choises (lrc, crc, md4/5 etc.)
    - passer des bouts dans des moulettes (gunzip etc.)
    - idem mais uniquement pour l'affichage (exemple : transformer un timestamp en date jour heur minute seconde)
    - etc.

    Python a été d'une grande aide en fait. On peut faire un peu tout et n'importe quoi ! Ma fierté, c'est le "post process", c-à-d faire une traitement juste après avoir lu l'information pour transformer l'affichage (comme tu le disais, afficher un timestamp Unix).

    Haypo
  • [^] # Re: identification obligatoire ?

    Posté par  (site web personnel) . En réponse à la dépêche 200 000 articles pour Wikipédia Francophone !. Évalué à 2.

    Tu es tombé une seule fois sur un vandalisme?!

    Hum, je n'ai pas compté le nombre des fois où j'ai vu des vandales dans l'historique : là effectivement, il y a du monde !

    Haypo
  • [^] # Re: Wiktionnaire

    Posté par  (site web personnel) . En réponse à la dépêche 200 000 articles pour Wikipédia Francophone !. Évalué à 2.

    Autant pour une encyclopédie, je trouve la syntaxe MediaWiki vraiment très pratique, autant pour un dictionnaire, je trouve le résultat écoeurant :
    http://fr.wiktionary.org/w/index.php?title=bernique&acti(...)

    C'est bourré de modèles et autres bidouilles. Je trouve qu'une base de donnée serait mieux adaptée. J'vois mal comment on va "attaquer" le dictionnaire là (faire des recherches) ... il va falloir faire un parseur très intelligent qui est capable de trouver où est la prononciaton dans ce foutoir. Car si demain on dit "tiens, on pourrait utiliser tel autre modèle, plus joli" ben ça fera deux "normes".

    J'espère que des gens se sont mis d'accord sur une "norme" et qu'il existe déjà des projets de parseurs pour éviter de tomber des nues plus tard.

    Haypo
  • # Ca ne résoud pas le problème mais ...

    Posté par  (site web personnel) . En réponse au message Problème au démarrage. Évalué à 2.

    essaye une autre distribution (tu as le choix) pour voir si le problème est spécifique à Mandriva/Mandrake. Je _pense_ que l'installation de Debian est plus stable par exemple.

    Souvent, un terminal affiche des informations sur l'installateur (genre CTRL+ALT+F2, ou + F3, ou + F4 ou ... tester jusqu'à F12 :-)).

    Haypo
  • # C'est un gros problème ça

    Posté par  (site web personnel) . En réponse au journal numérotation (version) d'application. Évalué à 4.

    C'est la foire à la saucisse, chacun fait au feeling. Le pire est selon moi le noyau Linux. Déjà trois chiffre, il fallait suivre, mais là y'en a quatre ... pour la version de base ! Après, il y a des "mm", "vanilla", "mdk" pour Mandrake, avec des suffixes "i586" pour les archictures sous Debian, etc. Moi j'ai un paquet "linux-image-2.6.12-10-386" avec la version "2.6.12-10.24" :-) Il faut un BAC+2 pour lire la version du noyau. Pourquoi on dirait pas "Linux 6 et des brouettes" ??? Ben, nan chacun veut son suffixe personnalité.

    Bon, sinon, pour les logiciels, ça donne : 0.0, 0.1, ... après ça part dans tous les sens : 0.1.1 ou 0.2 selon mon humeur. Puis des fois, hop, ça saute en 0.5. Et très rarement, ça passe en 1.0.

    C'est idiot car la plupart du temps, des programmes tout à fait corrects ont des numéros de version < 1.0. Je pense que, comme moi, les développeurs cherchent la perfection ultime. Mais ceci a un effet pervers : "version 0.86.6pre6", hou là, ça a l'air instable ça ...

    Je ne sais pas si ça a été dit (j'ai lu les autres commentaires en diagonale), mais il existe aussi le très bon numéro de version "année-mois-jour". C'est plutôt neutre et très parlant ! WINE l'a utilisé pendant longtemps.

    Avec SubVersion, on pourrait utiliser le numéro de commit :-) "Utilisez la version 340349 qui est un poil plus performante que la 340176 mais moins ergonomique que la 340348".

    ---

    Pour finir ce bref tour d'horizon, j'apprécie le système Ubuntu et Gentoo qui parle de lui même => 5.10, version d'octobre (10ème mois) de 2005 ! J'aime aussi les "milestones" qui marquent une étape dans l'avancement du projet. J'avais vu ça dans le projet Gobelins, et l'idée m'a bien plu (en plus, Trac aide beaucoup pour cela) :
    http://projects.nekeme.net/projects/gobelins/roadmap

    Haypo