Archive for mars, 2006

0
Fuzz

Voter

SNCF_TravelTrainFun

Tout sauf le train! Voilà un billet d'un client très mécontent de la SNCF présentant bien les choses.

J'ai moi même souvent connu ses différences de pratiques entre agents de la SNCF, et c'est assez rageant, surtout quand des dizaines d'euros sont en jeu! (Et c'est aussi fortement à la tête du client).

Enfin voilà, si vous avez une dent contre la SNCF, rassurez-vous, vous n'êtes plus seuls!


0
Fuzz

Voter

Petite remarque concernant mon post précédent.
Vous pouvez générer autrement le fichier nécessaire à MassInstaller en utilisant InfoLister (présent dans la liste précédente).

Il faut pour cela aller dans les options d'InfoLister (Outils->InfoLister), puis sélectionner "Options->Customize Output" en anglais et choisir comme format de sortie "XPI List".

XPI Format

Vous aurez alors un fichier tout prêt pour MassInstaller pour ceux qui avaient déjà leurs extensions. (Vous pouvez faire apparaître InfoLister en tapant tout simplement about:info dans la barre d'adresse.)

InfoLister XPI List

Remarque : cela ne fonctionne pas avec certaines extensions qui n'ont pas d'information de mise à jour comme indiqué.

0
Fuzz

Voter

Firefox Icon

Utilisant Firefox depuis un certain temps déjà, j'ai pu tester beaucoup d'extensions.
Voici celles qui ont eu ma préférence.
Afin de les installer facilement, j'ai conçu un petit générateur pour MassInstaller que vous trouverez en bas de ce post.
Bon surf avec Firefox !



On pourrait citer également d'autres extensions comme Foxy Tunes, NoScript, FoxMarks, MR Tech Local Install, Adsense Notifier, IETab, My Stickies, FireFTP, Ctrl Tab Preview, GooglePreview, etc... Et si ça ne vous convient pas, vous pouvez toujours consulter ce lien des pires extensions Firefox.

Fx

Pour vous aider lors de l'installation de toutes ces extensions, MassInstaller est très utile. En effet, à partir d'un simple fichier texte contenant les adresses des extensions, il est possible de les installer automatiquement. Seulement, la constitution de ce fichier peut s'avérer parfois compliquée, l'outil suivant pourra vous simplifier la vie. Une fois la liste générée, il suffit de la copier dans un fichier texte et de charger ce fichier dans Mass Installer, et voilà !

Pour utiliser ma sélection, copier ce lien dans la fenêtre de MassInstaller : http://www.blingblog.info/scripts/Extensions_selection.txt

Mass Installer

Voici une petite démonstration de MassInstaller avec ma sélection :

Mass Installer Generator


Générer votre fichier d'extensions.














































 


Liens utiles :

, ,

0
Fuzz

Voter

Internet Explorer 7 et Windows Vista s'améliorent progressivement entre chaque build. Aujourd'hui, c'est IE7 qui se dévoile un peu plus lors d'une conférence du W3C à Mandelieu (Cocorico!).
Un membre de l'équipe d'IE7 à en effet relevé le défi lancé par deux membres du W3C souhaitant mettre à l'épreuve les dernières nouveautés du navigateur qui seront présentés à la MIX06 Conference (du 20 au 22 Mars).

Molly Holzschlag et Andy Clarke donnent d'ailleurs leurs impressions sur leurs sites respectifs.
Le défi consistait à observer le rendu d'IE7 sur deux sites "cas d'écoles" comme Malarkey et le design du CSS Zen Garden de Egor Kloos qui a la particularité de générer 2 rendus complètement différents entre IE6 et les navigateurs modernes : Gemination.
Voyez ce que ça donne chez moi entre Firefox 1.5.0.1 et IE6 :

Gemination - Firefox Gemination - IE6

Et maintenant, voici ce que ça donne dans cette version pré-MIX06 :

Gemination - IE7 MIX06 Preview

Les deux membres du W3C ont été agréablement surpris des progrès du navigateur de Microsoft pour ce qui est du nouveau rendu du CSS.

Bref, le navigateur avance dans le bon sens, et la bonne nouvelle est que les développeurs d'IE7 travaillent actuellement à corriger les problèmres restants. Une nouvelle version devrait être diffusée à l'issue de la conférence du MIX06.
Voilà deux captures résumant bien les progrès du navigateur entre IE6, IE7 beta preview et cette nouvelle version :

wasp_gemination wasp_malarkey

0
Fuzz

Voter

En parcourant le Web ces derniers temps, vous êtes peut-être tombé sur l'un des quiz de Dew, le créateur du très sympa DewPlayer.

La première chose que voit l'informaticien de base en tapant les réponses est que celles-ci sont vérifiées en live, sympa, et que donc il y a sûrement du Javascript.

Après s'être énervé sur certaines réponses qu'on est pourtant persuadé de connaître, on se dit "tiens, si c'est du Javascript, on doit voir le code dans la source de la page". OK, OK...
Donc on vend son âme au diable et on regarde le code source : il y a effectivement du code Javascript et notamment ceci :

<input id="q10" onkeyup="javascript:checkQ(this);" class="quizz" name="q10" type="text"></td></tr>

et ça :

<script type="text/javascript">

q['q1']  = '459ffda7916bc58aa2086578ae6626c6023f78fc';
q['q2']  = '78bf1e60ca518e6a14d45da8665a3ff2571e53f1';
q['q3']  = 'f2bcf7604b82811a2b475b427da01fbfc69d1212';
q['q4']  = 'ab641c0d019af9166305dfef010bff299ab6bdff';
q['q5']  = '52b61c08efa3dad65da340213ed1c0364a25be66';
q['q6']  = 'e00f9368d06ab2fda0e57cc00605009dea2a3fe8';
q['q7']  = 'c0c6be456decf89f3161bf3686c6f25164ef07d7';
q['q8']  = '6cc19a9280e9b4ab7860443eb8b770572cad8833';
q['q9']  = 'f4938bfa3d57047a821a7ad19624cad973be34d4';
q['q10'] = 'c4753cc0fb22a881bbb9e80210390bf874190572';

</script>

Bon, clairement la fonction appelée pour vérifier le champ est checkQ et il y a tout un tas de hash qui doivent correspondre à nos réponses. Et oui, mince! Les réponses ne sont pas en clair!

Pas grave, on cherche le code Javascript correspondant à checkQ et on voit en gros que le hash est généré en passant la chaine en majuscule et en applicant du sha1 :

function checkQ(obj) {
        if(sha1Hash(obj.value.toUpperCase()) == q[obj.id]) {
                validate1(obj);
        }       else {
                validate2(obj);
        }
       
}

Bon, comment s'y prendre maintenant ?
Il faut retrouver le texte qui a généré les 10 hashs vu plus haut. On pourrait bêtement utiliser un programme calculant tous les hashs possibles avec des combinaisons de lettres et de chiffres sur une dizaine de caractères... mais on risque d'y passer sa semaine. Il existe au passage des programmes possédant des tables de hashs précalculés, mais c'est assez rare, et on en trouve même des payantes sur le net!
On peut penser par exemple à Rainbowcrack.

Ici, on va s'y prendre différemment. En effet, il ne s'agit pas de retrouver un mot de passe complexe mais des données bien ciblées (titres de films, de jeux...). On va donc pouvoir générer soit même une table de hash et la comparer aux hash du quizz.

Première chose : il faut créer un fichier avec une liste de films (Google ou les sites spécialisés peuvent fortement vous aider dans cette étape, qui est ici très importante pour obtenir de bons résultats!).

Ensuite par exemple en PHP, on crée une fonction qui va calculer notre sha1 correctement :

function calcSHA1(&$item) {
        $item = sha1(utf8_decode(mb_strtoupper(ltrim(rtrim($item)),"utf-8")));
}

Ici, je travaille en UTF-8 ce qui nécessite quelques manipulations, mais en gros les choses importantes sont de nettoyer la ligne des éventuels caractères inutiles au début ou à la fin et de passer la chaîne en majuscule.

Ensuite, on génère notre fichier de hash à partir de notre fichier texte :

$lines = file ('<chemin>/liste.txt');
array_walk ($lines, 'calcSHA1');
                       
file_put_contents('<chemin>/liste.hash', join("n",$lines));

Ici, on lit tout le contenu du fichier que l'on place dans un tableau, sur lequel on applique notre fonction de hash. On écrit ensuite ce tableau dans un nouveau fichier, en prenant soin de rajouter des "retours-chariots".

Finalement, on cherche les égalités entre les hashs, en ayant pris soin de les renseigner :

$q = $r = array();
$q[1]  = '459ffda7916bc58aa2086578ae6626c6023f78fc';
$q[2]  = '78bf1e60ca518e6a14d45da8665a3ff2571e53f1';
$q[3]  = 'f2bcf7604b82811a2b475b427da01fbfc69d1212';
$q[4]  = 'ab641c0d019af9166305dfef010bff299ab6bdff';
$q[5]  = '52b61c08efa3dad65da340213ed1c0364a25be66';
$q[6]  = 'e00f9368d06ab2fda0e57cc00605009dea2a3fe8';
$q[7]  = 'c0c6be456decf89f3161bf3686c6f25164ef07d7';
$q[8]  = '6cc19a9280e9b4ab7860443eb8b770572cad8833';
$q[9]  = 'f4938bfa3d57047a821a7ad19624cad973be34d4';
$q[10] = 'c4753cc0fb22a881bbb9e80210390bf874190572';

$linestxt = file ('<chemin>/liste_jeux.txt');
$pointeur=0;
foreach ($lines as $line) {     
        for ( $j=1 ; $j<=count($q) ; $j++ ) {
                if( $line == $q[$j] ) {
                        $r[$j]=$linestxt[$pointeur];
                }
        }
        $pointeur++;
}

Au passage je parcours aussi le fichier texte d'origine pour pouvoir ressortir la solution, et le tour est joué, il ne reste plus qu'à afficher les réponses!

for ( $k=1; $k<=count($q); $k++ ) {
                        echo "<em>La reponse a la question ".$k." est ".$r[$k]."</em><br />n";
                }

Pour voir ça en action maintenant, ça se passe ici :

hack

Films Quiz - Source : Quiz OST blindtest
Quiz Thèmes TV - Source : Blindtest 2 - Thèmes TV
Quiz Séries TV - Source : BlindTest - Les séries TV
Quiz Films - Source : BlindTest OST
Quiz Jeux - Source : Blind Test Jeux Video
Quiz Jeux - Source : Blind Test Jeux Video
Quizz Compositeurs - Source : BlindTest 3