<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Windows</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/taxonomy/term/1041"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/taxonomy/term/1041/atom/feed"/>
  <id>http://artisan.karma-lab.net/taxonomy/term/1041/atom/feed</id>
  <updated>2008-02-12T12:27:08+01:00</updated>
  <entry>
    <title>La liberté dans la poche...</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1514" />
    <id>http://artisan.karma-lab.net/node/1514</id>
    <published>2008-03-20T17:00:59+01:00</published>
    <updated>2008-03-20T17:00:59+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
  Windows est un environnement hostile dans lequel nous sommes parfois obligés d'évoluer, ne serait-ce que pour croûter... Et lorsque le dit Windows est en plus encorseté dans une politique de sécurité "rigoureuse", on se retrouve vite avec pour seul moyen de survie OutLook (aka "hors de ma vue") ou pire encore, l'Asinus horribilis, Internet Explorer.
</p>
<p>
 Voyons donc comment s'en sortir sans crise de nerfs... 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Windows est un environnement hostile dans lequel nous sommes parfois obligés d'évoluer, ne serait-ce que pour croûter... Et lorsque le dit Windows est en plus encorseté dans une politique de sécurité "rigoureuse", on se retrouve vite avec pour seul moyen de survie OutLook (aka "hors de ma vue") ou pire encore, l'Asinus horribilis, Internet Explorer.
</p>
<p>
 Voyons donc comment s'en sortir sans crise de nerfs... 
</p>
<!--break-->
<h2>Vous avez dis "Sécurité" ?</h2>
<image id="1"/>
<p>
  Fort heureusement, la majorité des "politiques de sécurité" en entreprise oublient, sciemment ou pas, ce vilain port USB. Internet est bloqué jusqu’au ridicule, il y a des mots de passes pour toutes les ressources, le mail est filtré, etc., etc. Mais en revanche, il y a toujours moyen d’utiliser une clef mémoire, allez comprendre…</p>
<p>
 En pourtant, dans la série trou de sécurité, celui-là est assez énorme. Car vu la taille et la capacité des clefs modernes, il n'est pas un grand exploit d'embarquer incognito une bonne partie des bijoux de familles, et ce, dans un environnement <i>totalement</i> sécurisé... bref... 
</p>
<p>
   Personnellement, j'ai opté pour une clef sans mémoire mais lisant les cartes au format SD. Cette option présente pour moi deux gros avantages. D'un elle qui me permet de réutiliser les cartes rapides de mon appareil photo lorsque je ne suis plus en vacance (la majorité du temps, malheureusement). De deux, je peux en transport extraire la SD pour travailler certains documents sur mon Zaurus. Après c’est à vous de choisir votre option. Mais quelle qu’elle soit, une fois la clef formatée en FAT32 pour éviter les nœuds au cerveau, vous disposez d’un sympathique espace de stockage qu'il va falloir rentabiliser. Alors après y avoir coller la musique, des documents, les photos des gamins, pourquoi ne pas y mettre des applications ? 
</p>

<h2>Les applications "portables"</h2>
<p>
   Toujours dans la veine de la "sécurisation avec les pieds", non seulement 99% des postes de travail acceptent et montent sans broncher une clef mémoire non validée, mais qui plus est autorisent l'exécution de toute les applications s'y trouvant... Alors c'est bien compris hein ! Installer sur le disque dur, c'est mal, installer sur la clef mémoire, c'est bien !!!
</p>
<p>
  Le seul "hic" c'est qu'une application Windows de base, ne peut s'empêche de semer ses petits sur environs tous les endroits les plus improbables disponibles sur un disque dur. Et elle a même une très nette inclinaison pour les coins où seul l'administrateur a le droit de mettre son nez : DLL dans System32, un petit coup dans la registry, etc... Du coup, sans les droit administrateur, même des choses aussi anodines que Paint Shop Pro, bloquent… C'est peut-être pour cela que les <kbd>Administrateurs Système Windows</kbd> (hum, pas facile à faire tenir dans un seul phrase sans s'étouffer...), se sentent bien à l'abri et laisse les clefs mémoire se monter sans brocher. 
</p>
<p>
  Manque de bol, c’était sans compter les applications dites "portables". Car ces logiciels là, sont propres. Ils ne touchent pas aux dossiers système de windows, ni à la registry, et globalement ne demande aucun droit d'administration pour s'installer (décompresser devrait-on dire) dans un dossier accessible à un utilisateur Lambda, et donc à fortiori sur sa clef mémoire.
</p>
<p>
 De plus, lorsqu'on les exécute, ces applications ne sortent de leur dossier sous aucun prétexte, évitant ainsi aux données privées de finir exposées aux vues de tous. 
</p>
<p>
  Enfin, une fois les applications installées sur la clef, elles peuvent être exécutées sur n'importe machine équipée de Windows, directement et sans tracas. 
</p>

<p>
  Alors il existe toute sorte d'applications portables. Cela va de celles ont toujours fonctionnées ainsi comme les outils en ligne de commande, aux mastodontes comme Openoffice, Firefox &amp; co qui ont été un peu modifiées pour coller au besoin, en passant par des projets plus ambitieux comme <a class='external' target='_blank' href='http://www.colinux.org/' >colinux</a> qui nous promet dans un avenir proche la capacité de lancer l'OS au pingouin, directement sous Windows, sans émulateur, ni droit administrateur…
</p>

<h2>Le sources</h2>
<p>
  Ok, maintenant que je vous sens prêt à remplir votre clef jusqu'au dernier bit, voici quelques sources intéressantes : 
<ul>
<li><a class='external' target='_blank' href='http://portableapps.com' >PortableApps.com</a>. Vous y trouverez les poid lourds du genre : FireFox, Pidgin, ThunderBird, AbiWord, OpenOffice, etc.</li>
<li><a class='external' target='_blank' href='http://www.tinyapps.org' >TinyApps.org</a>. Plus spécialisé dans les nano-softs qui ont toujours fonctionné en mode portable.</li>
<li><a class='external' target='_blank' href='http://www.framakey.org' >FramaKey</a>. Un très bon répertoire des applications libres et portables en français par FraamaSoft.</li>
</ul>
</p>
<p>
  Et ce n’est qu’un début, en cherchant <kbd>applications portables</kbd> sur gougueule, vous en trouverez sûrement beaucoup d'autres ? Mais rien que là, y'a de quoi faire…
</p>

<h2>Cygwin</h2>
<p>
  Dans la série des applications portable, on oublie bien trop souvent cygwin. Pour ceux qui ne connaissent pas, cygwin est une couche d'émulation sous la forme d'une DLL (librairie), permettant de faire la colle entre Windows et les API linux. Il est ainsi possible de recompiler, avec Cygwin, une application Linux, quasiment pas modifiée, et de la rendre magiquement utilisable sous Windows.
</p>
<p>
  Maintenant rassurez vous, il ne va pas être utilise de compiler quoi que ce soit à ce stade car Cygwin c'est aussi des tonnes de logiciels issus du monde Unix, prêt à l'emploi sous Windows. Il suffit pour cela de télécharger le fichier <kbd>setup.exe</kbd>  sur la <a class='external' target='_blank' href='http://www.cygwin.com/' >page d'accueil</a>, de l'exécuter, de sélectionner un dossier sur votre clef mémoire. Et là s'affiche un grand choix d'applications prêtes à être installées. Cela va des utilitaires de base comme un <kbd>bash</kbd> (indispensable à la survie sous Windows !!), avec toutes les commandes qui vont bien, à du lourd comme Xorg, Gnome au complet ou encore KDE. 
</p>
<p>
  Une fois le tout installé sur la clef, il suffit d'aller à la racine de l'installation et lancer <kbd>cygwin.bat</kbD> pour se retrouver à nouveau dans ses charantaises. 
</p>
<h2>Conclusion</h2>
<p>
Avec tout cela, vous devriez avoir de quoi monter une clef correspondant pile-poil à vos besoins qui fonctionne sans avoir à redémarrer la machine, directement et sans problèmes. </p>
    ]]></content>
  </entry>
  <entry>
    <title>Cracker les mots de passe de Trillian</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1340" />
    <id>http://artisan.karma-lab.net/node/1340</id>
    <published>2008-02-24T10:22:23+01:00</published>
    <updated>2008-07-30T10:49:04+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="javafr" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
  Ma douce ayant reçu un nouveau portable pour fêter le proche printemps, se trouva fort dépourvu quant le moment de se souvenir de ses mots de passe fût venu. Vu qu'elle utilise le, pas mauvais du tout, Trillian dont j'avais acheté la licence il y a de cela bien longtemps, lorsque j'utilisais un machin nommé Windows, je me suis donc mis à rechercher, sans trop d'espoirs, si par hasard les identifiants étaient stockés en clairs. On peut toujours paradoxalement en rêver tout en espérant que ce ne soit pas le cas...
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Ma douce ayant reçu un nouveau portable pour fêter le proche printemps, se trouva fort dépourvu quant le moment de se souvenir de ses mots de passe fût venu. Vu qu'elle utilise le, pas mauvais du tout, Trillian dont j'avais acheté la licence il y a de cela bien longtemps, lorsque j'utilisais un machin nommé Windows, je me suis donc mis à rechercher, sans trop d'espoirs, si par hasard les identifiants étaient stockés en clairs. On peut toujours paradoxalement en rêver tout en espérant que ce ne soit pas le cas...
</p>
<!--break-->
<p>
  Déjà, mauvais point, Trillian stocke son bazar dans <kbd>/Program Files/Trillian/Users/...</kbd> et pas dans le dossier personnel comme il se doit. Pas terrible. En revanche, dans les divers fichier .ini, on trouve bien un mot de passe, mais encodé. Bon point là, même si cela ne va pas me simplifier la tache. 
</p>
<p>
  Je me met donc avec l'ami Gougueule à rechercher un cracker, et bien évidement j'en trouve un... L'exemple archétypale de ce qui me saoule dans le monde Windowsien, des pop-ups dans tout les sens, il faut laisser des mails en pagaille pour que le serveur daigne vous filer le binaire d'installation et l'installation qui demande une adresse courriel mail pour aller s'enregistrer je ne sais où, et au final un outil qui vous annonce fièrement qu'il a tout décodé mais que pour avoir le résultat, faut banquer $19... $19 pour un outil qui vaut tout au plus 3 sesterces, ça va po la tête ?
</p>
<p>
  Je reprends donc les commandes du Gouguele en cherchant si par hasard il n'y aurait pas une doc qui explique comment s'y prendre. Et dans d'obscures groupes, je trouve mon bonheur. En gros, le codage de Trillian est bête comme choux. Le nombre maximum de caractères étant de 16, le mot de passe encodé est composé de 16 valeurs hexadécimales (2 digits chacune, soit 32 car. max.). 
</p>
<p>
  Trillian pour son encodage/décodage utilise de deux choses :
<ol>
<li>Une liste de caractères autorisés dans les mots de passe (ex. a, b, c, d, etc...)</li>
<li>16 listes contenant chacune autant de valeurs hexadécimale qu'il y a de caractère dans liste (1). Ex. 0x92, 0x90, etc...
</ol>
</p>
<p>
  Armé de cela, le décodage est enfantin. Il suffit de faire correspondre la valeur hexa n°<kbd>N</kbd> dans le mot de passe encodé avec sa position <kbd>P</kbd> dans la liste n°<kbd>N</kbd>. Ensuite il suffit de regarder dans la liste (1) quel est le caractère à la position <kbd>P</bd>, et ainsi de suite sur chaque valeur. 
</p>
<p>
  Tout le jeu est maintenant de trouver les fameuses listes (2) et la liste (1), et là aussi Gouguele est notre ami <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> Et comme moi aussi je suis votre amis, j'ai écrit un petit code Java qui permet de faire ce décodage de manière automatique. Il s'utilise simplement comme cela :

  <div class='code-container-area'>
  <div class='code-container'>
  <div class='traces'>
  <ul>
  <li class='result'>javac TrillianPasswordDecoder.java</li><li class='result'>java -cp . TrillianPasswordDecoder 9844ECAF</li><li class='result'>Encoded password : {0x98, 0x44, 0xec, 0xaf}</li><li class='result'>Decoded password : kbmk</li>
  </ul>
  </div>
  </div>
  </div>
</p>
<p>
  Economie de $19 donc... désolé pour le vendeur de shareware qui va devoir trouver des sujets un peu plus évolués pour faire banquer les pigeons. Le code qui suit est bien évidement sous licence GPL.
<div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw1">class</span> TrillianPasswordDecoder <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Fonction de décodage du mot de passe</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* </span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @param string le mot de passe encodé</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">void</span> decodePassword<span class="br0">&#40;</span><a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> password<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Pour plus de simplicité on converti le mot de passe en une suite d'entiers hexa</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>password.<span class="me1">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">32</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">err</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Password too long, only 32 character max, this will be truncated.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; password <span class="sy0">=</span> password.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">31</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>password.<span class="me1">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">%</span> <span class="nu0">2</span> <span class="sy0">==</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">err</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Number of character in password should be odd, this will be truncated.&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Pour plus de simplicité on converti le mot de passe en une suite d'entiers hexa</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;Encoded password : {&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> encodedPassword <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw4">int</span><span class="br0">&#91;</span>password.<span class="me1">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">/</span> <span class="nu0">2</span><span class="br0">&#93;</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> iCharacter <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> iCharacter <span class="sy0">&lt;</span> encodedPassword.<span class="me1">length</span><span class="sy0">;</span> iCharacter<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encodedPassword<span class="br0">&#91;</span>iCharacter<span class="br0">&#93;</span> <span class="sy0">=</span> <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3AInteger+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Integer</span></a>.<span class="me1">parseInt</span><span class="br0">&#40;</span>password.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">2</span> <span class="sy0">*</span> iCharacter, <span class="nu0">2</span> <span class="sy0">*</span> iCharacter <span class="sy0">+</span> <span class="nu0">2</span><span class="br0">&#41;</span>, <span class="nu0">16</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>iCharacter <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;, &quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;0x&quot;</span> <span class="sy0">+</span> <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3AInteger+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Integer</span></a>.<span class="me1">toHexString</span><span class="br0">&#40;</span>encodedPassword<span class="br0">&#91;</span>iCharacter<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;}&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Intération sur chaque caractère encodé</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> decodedPassword <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> iEncoderCharacter <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> iEncoderCharacter <span class="sy0">&lt;</span> encodedPassword.<span class="me1">length</span><span class="sy0">;</span> iEncoderCharacter<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Non trouvé par défaut</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">char</span> decoderCharacter <span class="sy0">=</span> <span class="st0">'<span class="es0">\0</span>'</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Recherche du caractère encodé dans la ligne courrante de la table de décodage</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> iRosetaCharacter <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> iRosetaCharacter <span class="sy0">&lt;</span> ROSETA_STONE<span class="br0">&#91;</span>iEncoderCharacter<span class="br0">&#93;</span>.<span class="me1">length</span><span class="sy0">;</span> iRosetaCharacter<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>ROSETA_STONE<span class="br0">&#91;</span>iEncoderCharacter<span class="br0">&#93;</span><span class="br0">&#91;</span>iRosetaCharacter<span class="br0">&#93;</span> <span class="sy0">==</span> encodedPassword<span class="br0">&#91;</span>iEncoderCharacter<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decoderCharacter <span class="sy0">=</span> CHARSET.<span class="me1">charAt</span><span class="br0">&#40;</span>iRosetaCharacter<span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Ajout du caractère décodé si tout c'est bien passé, sinon, on ajoute un {?} pour que</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// puisse être répérée l'erreur.</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>decoderCharacter <span class="sy0">==</span> <span class="st0">'<span class="es0">\0</span>'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">err</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Unable to decode this 0x&quot;</span> <span class="sy0">+</span> <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3AInteger+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Integer</span></a>.<span class="me1">toHexString</span><span class="br0">&#40;</span>encodedPassword<span class="br0">&#91;</span>iEncoderCharacter<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">err</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Replacing it with the pattern {?}&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decodedPassword <span class="sy0">+=</span> <span class="st0">&quot;{?}&quot;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; decodedPassword <span class="sy0">+=</span> decoderCharacter<span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// </span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// C'est fini, affichage du résultat</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Decoded password : &quot;</span> <span class="sy0">+</span> decodedPassword<span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// Lancement de l'utilitaire</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>args.<span class="me1">length</span> <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">err</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Syntax : trillianPasswordDecoder ENCODED_PASSWORD&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">exit</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">new</span> TrillianPasswordDecoder<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">decodePassword</span><span class="br0">&#40;</span>args<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// Les caractères reconnus par trillian</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">private</span> <span class="kw1">final</span> <a target="blank" &nbsp;href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> CHARSET <span class="sy0">=</span> <span class="st0">&quot;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ~`!@#$%^&amp;*()_-+={[}]|<span class="es0">\\</span>:;&quot;</span><span class="st0">'&lt;,&gt;.?/¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ&quot;;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp;// La table de conversion pour le décodage.</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp;private final int[][] ROSETA_STONE = {</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x92, 0x91, 0x90, 0x97, 0x96, 0x95, 0x94, 0x9b, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c, 0x83, 0x82, 0x81, 0x80, 0x87, 0x86, 0x85, 0x84, 0x8b, 0x8a, 0x89, 0xb2, 0xb1, 0xb0, 0xb7, 0xb6, 0xb5, 0xb4, 0xbb, 0xba, 0xb9, 0xb8, 0xbf, 0xbe, 0xbd,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xbc, 0xa3, 0xa2, 0xa1, 0xa0, 0xa7, 0xa6, 0xa5, 0xa4, 0xab, 0xaa, 0xa9, 0xc3, 0xc2, 0xc1, 0xc0, 0xc7, 0xc6, 0xc5, 0xc4, 0xcb, 0xca, 0xd3, 0x8d, 0x93, 0xd2, 0xb3, 0xd0, 0xd7, 0xd6, 0xad, 0xd5, 0xd9, 0xdb, 0xda, 0xac, 0xde, 0xd8, 0xce,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x88, 0xa8, 0x8e, 0xae, 0x8f, 0xaf, 0xc9, 0xc8, 0xd1, 0xd4, 0xcf, 0xdf, 0xcd, 0xdd, 0xcc, 0xdc, 0x52, 0x51, 0x50, 0x57, 0x56, 0x55, 0x54, 0x5b, 0x5a, 0x59, 0x58, 0x5f, 0x5d, 0x5c, 0x43, 0x42, 0x41, 0x40, 0x47, 0x46, 0x45, 0x44, 0x4b,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x4a, 0x49, 0x48, 0x4f, 0x4e, 0x4d, 0x4c, 0x33, 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x3b, 0x3a, 0x39, 0x38, 0x3f, 0x3e, 0x3d, 0x3c, 0x23, 0x22, 0x21, 0x20, 0x27, 0x26, 0x25, 0x24, 0x2b, 0x2a, 0x29, 0x28, 0x2f, 0x2e, 0x2d, 0x2c,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x13, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c, 0x03, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x08, 0x0f, 0x0e, 0x0d, 0x0c },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x47, 0x44, 0x45, 0x42, 0x43, 0x40, 0x41, 0x4e, 0x4f, 0x4c, 0x4d, 0x4a, 0x4b, 0x48, 0x49, 0x56, 0x57, 0x54, 0x55, 0x52, 0x53, 0x50, 0x51, 0x5e, 0x5f, 0x5c, 0x67, 0x64, 0x65, 0x62, 0x63, 0x60, 0x61, 0x6e, 0x6f, 0x6c, 0x6d, 0x6a, 0x6b, 0x68,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x69, 0x76, 0x77, 0x74, 0x75, 0x72, 0x73, 0x70, 0x71, 0x7e, 0x7f, 0x7c, 0x16, 0x17, 0x14, 0x15, 0x12, 0x13, 0x10, 0x11, 0x1e, 0x1f, 0x06, 0x58, 0x46, 0x07, 0x66, 0x05, 0x02, 0x03, 0x78, 0x00, 0x0c, 0x0e, 0x0f, 0x79, 0x0b, 0x0d, 0x1b,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x5d, 0x7d, 0x5b, 0x7b, 0x5a, 0x7a, 0x1c, 0x1d, 0x04, 0x01, 0x1a, 0x0a, 0x18, 0x08, 0x19, 0x09, 0x87, 0x84, 0x85, 0x82, 0x83, 0x80, 0x81, 0x8e, 0x8f, 0x8c, 0x8d, 0x8a, 0x88, 0x89, 0x96, 0x97, 0x94, 0x95, 0x92, 0x93, 0x90, 0x91, 0x9e,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x9f, 0x9c, 0x9d, 0x9a, 0x9b, 0x98, 0x99, 0xe6, 0xe7, 0xe4, 0xe5, 0xe2, 0xe3, 0xe0, 0xe1, 0xee, 0xef, 0xec, 0xed, 0xea, 0xeb, 0xe8, 0xe9, 0xf6, 0xf7, 0xf4, 0xf5, 0xf2, 0xf3, 0xf0, 0xf1, 0xfe, 0xff, 0xfc, 0xfd, 0xfa, 0xfb, 0xf8, 0xf9,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xc6, 0xc7, 0xc4, 0xc5, 0xc2, 0xc3, 0xc0, 0xc1, 0xce, 0xcf, 0xcc, 0xcd, 0xca, 0xcb, 0xc8, 0xc9, 0xd6, 0xd7, 0xd4, 0xd5, 0xd2, 0xd3, 0xd0, 0xd1, 0xde, 0xdf, 0xdc, 0xdd, 0xda, 0xdb, 0xd8, 0xd9 },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xe0, 0xe3, 0xe2, 0xe5, 0xe4, 0xe7, 0xe6, 0xe9, 0xe8, 0xeb, 0xea, 0xed, 0xec, 0xef, 0xee, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xc0, 0xc3, 0xc2, 0xc5, 0xc4, 0xc7, 0xc6, 0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xce, 0xd1, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xd9, 0xd8, 0xdb, 0xb1, 0xb0, 0xb3, 0xb2, 0xb5, 0xb4, 0xb7, 0xb6, 0xb9, 0xb8, 0xa1, 0xff, 0xe1, 0xa0, 0xc1, 0xa2, 0xa5, 0xa4, 0xdf, 0xa7, 0xab, 0xa9, 0xa8, 0xde, 0xac, 0xaa, 0xbc,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xfa, 0xda, 0xfc, 0xdc, 0xfd, 0xdd, 0xbb, 0xba, 0xa3, 0xa6, 0xbd, 0xad, 0xbf, 0xaf, 0xbe, 0xae, 0x20, 0x23, 0x22, 0x25, 0x24, 0x27, 0x26, 0x29, 0x28, 0x2b, 0x2a, 0x2d, 0x2f, 0x2e, 0x31, 0x30, 0x33, 0x32, 0x35, 0x34, 0x37, 0x36, 0x39,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x38, 0x3b, 0x3a, 0x3d, 0x3c, 0x3f, 0x3e, 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46, 0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e, 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x59, 0x58, 0x5b, 0x5a, 0x5d, 0x5c, 0x5f, 0x5e,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x61, 0x60, 0x63, 0x62, 0x65, 0x64, 0x67, 0x66, 0x69, 0x68, 0x6b, 0x6a, 0x6d, 0x6c, 0x6f, 0x6e, 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77, 0x76, 0x79, 0x78, 0x7b, 0x7a, 0x7d, 0x7c, 0x7f, 0x7e },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xa5, 0xa6, 0xa7, 0xa0, 0xa1, 0xa2, 0xa3, 0xac, 0xad, 0xae, 0xaf, 0xa8, 0xa9, 0xaa, 0xab, 0xb4, 0xb5, 0xb6, 0xb7, 0xb0, 0xb1, 0xb2, 0xb3, 0xbc, 0xbd, 0xbe, 0x85, 0x86, 0x87, 0x80, 0x81, 0x82, 0x83, 0x8c, 0x8d, 0x8e, 0x8f, 0x88, 0x89, 0x8a,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x8b, 0x94, 0x95, 0x96, 0x97, 0x90, 0x91, 0x92, 0x93, 0x9c, 0x9d, 0x9e, 0xf4, 0xf5, 0xf6, 0xf7, 0xf0, 0xf1, 0xf2, 0xf3, 0xfc, 0xfd, 0xe4, 0xba, 0xa4, 0xe5, 0x84, 0xe7, 0xe0, 0xe1, 0x9a, 0xe2, 0xee, 0xec, 0xed, 0x9b, 0xe9, 0xef, 0xf9,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xbf, 0x9f, 0xb9, 0x99, 0xb8, 0x98, 0xfe, 0xff, 0xe6, 0xe3, 0xf8, 0xe8, 0xfa, 0xea, 0xfb, 0xeb, 0x65, 0x66, 0x67, 0x60, 0x61, 0x62, 0x63, 0x6c, 0x6d, 0x6e, 0x6f, 0x68, 0x6a, 0x6b, 0x74, 0x75, 0x76, 0x77, 0x70, 0x71, 0x72, 0x73, 0x7c,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x7d, 0x7e, 0x7f, 0x78, 0x79, 0x7a, 0x7b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13, 0x1c, 0x1d, 0x1e, 0x1f, 0x18, 0x19, 0x1a, 0x1b,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x24, 0x25, 0x26, 0x27, 0x20, 0x21, 0x22, 0x23, 0x2c, 0x2d, 0x2e, 0x2f, 0x28, 0x29, 0x2a, 0x2b, 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33, 0x3c, 0x3d, 0x3e, 0x3f, 0x38, 0x39, 0x3a, 0x3b },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x58, 0x5b, 0x5a, 0x5d, 0x5c, 0x5f, 0x5e, 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e, 0x41, 0x40, 0x43, 0x78, 0x7b, 0x7a, 0x7d, 0x7c, 0x7f, 0x7e, 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x76, 0x69, 0x68, 0x6b, 0x6a, 0x6d, 0x6c, 0x6f, 0x6e, 0x61, 0x60, 0x63, 0x09, 0x08, 0x0b, 0x0a, 0x0d, 0x0c, 0x0f, 0x0e, 0x01, 0x00, 0x19, 0x47, 0x59, 0x18, 0x79, 0x1a, 0x1d, 0x1c, 0x67, 0x1f, 0x13, 0x11, 0x10, 0x66, 0x14, 0x12, 0x04,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x42, 0x62, 0x44, 0x64, 0x45, 0x65, 0x03, 0x02, 0x1b, 0x1e, 0x05, 0x15, 0x07, 0x17, 0x06, 0x16, 0x98, 0x9b, 0x9a, 0x9d, 0x9c, 0x9f, 0x9e, 0x91, 0x90, 0x93, 0x92, 0x95, 0x97, 0x96, 0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e, 0x81,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x80, 0x83, 0x82, 0x85, 0x84, 0x87, 0x86, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7, 0xf6, 0xe9, 0xe8, 0xeb, 0xea, 0xed, 0xec, 0xef, 0xee, 0xe1, 0xe0, 0xe3, 0xe2, 0xe5, 0xe4, 0xe7, 0xe6,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xd9, 0xd8, 0xdb, 0xda, 0xdd, 0xdc, 0xdf, 0xde, 0xd1, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce, 0xc1, 0xc0, 0xc3, 0xc2, 0xc5, 0xc4, 0xc7, 0xc6 },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xe7, 0xe4, 0xe5, 0xe2, 0xe3, 0xe0, 0xe1, 0xee, 0xef, 0xec, 0xed, 0xea, 0xeb, 0xe8, 0xe9, 0xf6, 0xf7, 0xf4, 0xf5, 0xf2, 0xf3, 0xf0, 0xf1, 0xfe, 0xff, 0xfc, 0xc7, 0xc4, 0xc5, 0xc2, 0xc3, 0xc0, 0xc1, 0xce, 0xcf, 0xcc, 0xcd, 0xca, 0xcb, 0xc8,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xc9, 0xd6, 0xd7, 0xd4, 0xd5, 0xd2, 0xd3, 0xd0, 0xd1, 0xde, 0xdf, 0xdc, 0xb6, 0xb7, 0xb4, 0xb5, 0xb2, 0xb3, 0xb0, 0xb1, 0xbe, 0xbf, 0xa6, 0xf8, 0xe6, 0xa7, 0xc6, 0xa5, 0xa2, 0xa3, 0xd8, 0xa0, 0xac, 0xae, 0xaf, 0xd9, 0xab, 0xad, 0xbb,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xfd, 0xdd, 0xfb, 0xdb, 0xfa, 0xda, 0xbc, 0xbd, 0xa4, 0xa1, 0xba, 0xaa, 0xb8, 0xa8, 0xb9, 0xa9, 0x27, 0x24, 0x25, 0x22, 0x23, 0x20, 0x21, 0x2e, 0x2f, 0x2c, 0x2d, 0x2a, 0x28, 0x29, 0x36, 0x37, 0x34, 0x35, 0x32, 0x33, 0x30, 0x31, 0x3e,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x3f, 0x3c, 0x3d, 0x3a, 0x3b, 0x38, 0x39, 0x46, 0x47, 0x44, 0x45, 0x42, 0x43, 0x40, 0x41, 0x4e, 0x4f, 0x4c, 0x4d, 0x4a, 0x4b, 0x48, 0x49, 0x56, 0x57, 0x54, 0x55, 0x52, 0x53, 0x50, 0x51, 0x5e, 0x5f, 0x5c, 0x5d, 0x5a, 0x5b, 0x58, 0x59,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x66, 0x67, 0x64, 0x65, 0x62, 0x63, 0x60, 0x61, 0x6e, 0x6f, 0x6c, 0x6d, 0x6a, 0x6b, 0x68, 0x69, 0x76, 0x77, 0x74, 0x75, 0x72, 0x73, 0x70, 0x71, 0x7e, 0x7f, 0x7c, 0x7d, 0x7a, 0x7b, 0x78, 0x79 },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xba, 0xb9, 0xb8, 0xbf, 0xbe, 0xbd, 0xbc, 0xb3, 0xb2, 0xb1, 0xb0, 0xb7, 0xb6, 0xb5, 0xb4, 0xab, 0xaa, 0xa9, 0xa8, 0xaf, 0xae, 0xad, 0xac, 0xa3, 0xa2, 0xa1, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c, 0x93, 0x92, 0x91, 0x90, 0x97, 0x96, 0x95,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x94, 0x8b, 0x8a, 0x89, 0x88, 0x8f, 0x8e, 0x8d, 0x8c, 0x83, 0x82, 0x81, 0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec, 0xe3, 0xe2, 0xfb, 0xa5, 0xbb, 0xfa, 0x9b, 0xf8, 0xff, 0xfe, 0x85, 0xfd, 0xf1, 0xf3, 0xf2, 0x84, 0xf6, 0xf0, 0xe6,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xa0, 0x80, 0xa6, 0x86, 0xa7, 0x87, 0xe1, 0xe0, 0xf9, 0xfc, 0xe7, 0xf7, 0xe5, 0xf5, 0xe4, 0xf4, 0x7a, 0x79, 0x78, 0x7f, 0x7e, 0x7d, 0x7c, 0x73, 0x72, 0x71, 0x70, 0x77, 0x75, 0x74, 0x6b, 0x6a, 0x69, 0x68, 0x6f, 0x6e, 0x6d, 0x6c, 0x63,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x62, 0x61, 0x60, 0x67, 0x66, 0x65, 0x64, 0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c, 0x13, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x0b, 0x0a, 0x09, 0x08, 0x0f, 0x0e, 0x0d, 0x0c, 0x03, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x3b, 0x3a, 0x39, 0x38, 0x3f, 0x3e, 0x3d, 0x3c, 0x33, 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x2b, 0x2a, 0x29, 0x28, 0x2f, 0x2e, 0x2d, 0x2c, 0x23, 0x22, 0x21, 0x20, 0x27, 0x26, 0x25, 0x24 },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xf3, 0xf0, 0xf1, 0xf6, 0xf7, 0xf4, 0xf5, 0xfa, 0xfb, 0xf8, 0xf9, 0xfe, 0xff, 0xfc, 0xfd, 0xe2, 0xe3, 0xe0, 0xe1, 0xe6, 0xe7, 0xe4, 0xe5, 0xea, 0xeb, 0xe8, 0xd3, 0xd0, 0xd1, 0xd6, 0xd7, 0xd4, 0xd5, 0xda, 0xdb, 0xd8, 0xd9, 0xde, 0xdf, 0xdc,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xdd, 0xc2, 0xc3, 0xc0, 0xc1, 0xc6, 0xc7, 0xc4, 0xc5, 0xca, 0xcb, 0xc8, 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5, 0xaa, 0xab, 0xb2, 0xec, 0xf2, 0xb3, 0xd2, 0xb1, 0xb6, 0xb7, 0xcc, 0xb4, 0xb8, 0xba, 0xbb, 0xcd, 0xbf, 0xb9, 0xaf,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xe9, 0xc9, 0xef, 0xcf, 0xee, 0xce, 0xa8, 0xa9, 0xb0, 0xb5, 0xae, 0xbe, 0xac, 0xbc, 0xad, 0xbd, 0x33, 0x30, 0x31, 0x36, 0x37, 0x34, 0x35, 0x3a, 0x3b, 0x38, 0x39, 0x3e, 0x3c, 0x3d, 0x22, 0x23, 0x20, 0x21, 0x26, 0x27, 0x24, 0x25, 0x2a,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d, 0x52, 0x53, 0x50, 0x51, 0x56, 0x57, 0x54, 0x55, 0x5a, 0x5b, 0x58, 0x59, 0x5e, 0x5f, 0x5c, 0x5d, 0x42, 0x43, 0x40, 0x41, 0x46, 0x47, 0x44, 0x45, 0x4a, 0x4b, 0x48, 0x49, 0x4e, 0x4f, 0x4c, 0x4d,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x72, 0x73, 0x70, 0x71, 0x76, 0x77, 0x74, 0x75, 0x7a, 0x7b, 0x78, 0x79, 0x7e, 0x7f, 0x7c, 0x7d, 0x62, 0x63, 0x60, 0x61, 0x66, 0x67, 0x64, 0x65, 0x6a, 0x6b, 0x68, 0x69, 0x6e, 0x6f, 0x6c, 0x6d },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x10, 0x13, 0x12, 0x15, 0x14, 0x17, 0x16, 0x19, 0x18, 0x1b, 0x1a, 0x1d, 0x1c, 0x1f, 0x1e, 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x07, 0x06, 0x09, 0x08, 0x0b, 0x30, 0x33, 0x32, 0x35, 0x34, 0x37, 0x36, 0x39, 0x38, 0x3b, 0x3a, 0x3d, 0x3c, 0x3f,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x3e, 0x21, 0x20, 0x23, 0x22, 0x25, 0x24, 0x27, 0x26, 0x29, 0x28, 0x2b, 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46, 0x49, 0x48, 0x51, 0x0f, 0x11, 0x50, 0x31, 0x52, 0x55, 0x54, 0x2f, 0x57, 0x5b, 0x59, 0x58, 0x2e, 0x5c, 0x5a, 0x4c,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x0a, 0x2a, 0x0c, 0x2c, 0x0d, 0x2d, 0x4b, 0x4a, 0x53, 0x56, 0x4d, 0x5d, 0x4f, 0x5f, 0x4e, 0x5e, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xd9, 0xd8, 0xdb, 0xda, 0xdd, 0xdf, 0xde, 0xc1, 0xc0, 0xc3, 0xc2, 0xc5, 0xc4, 0xc7, 0xc6, 0xc9,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce, 0xb1, 0xb0, 0xb3, 0xb2, 0xb5, 0xb4, 0xb7, 0xb6, 0xb9, 0xb8, 0xbb, 0xba, 0xbd, 0xbc, 0xbf, 0xbe, 0xa1, 0xa0, 0xa3, 0xa2, 0xa5, 0xa4, 0xa7, 0xa6, 0xa9, 0xa8, 0xab, 0xaa, 0xad, 0xac, 0xaf, 0xae,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x91, 0x90, 0x93, 0x92, 0x95, 0x94, 0x97, 0x96, 0x99, 0x98, 0x9b, 0x9a, 0x9d, 0x9c, 0x9f, 0x9e, 0x81, 0x80, 0x83, 0x82, 0x85, 0x84, 0x87, 0x86, 0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xc2, 0xc1, 0xc0, 0xc7, 0xc6, 0xc5, 0xc4, 0xcb, 0xca, 0xc9, 0xc8, 0xcf, 0xce, 0xcd, 0xcc, 0xd3, 0xd2, 0xd1, 0xd0, 0xd7, 0xd6, 0xd5, 0xd4, 0xdb, 0xda, 0xd9, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4, 0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xec, 0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4, 0xfb, 0xfa, 0xf9, 0x93, 0x92, 0x91, 0x90, 0x97, 0x96, 0x95, 0x94, 0x9b, 0x9a, 0x83, 0xdd, 0xc3, 0x82, 0xe3, 0x80, 0x87, 0x86, 0xfd, 0x85, 0x89, 0x8b, 0x8a, 0xfc, 0x8e, 0x88, 0x9e,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xd8, 0xf8, 0xde, 0xfe, 0xdf, 0xff, 0x99, 0x98, 0x81, 0x84, 0x9f, 0x8f, 0x9d, 0x8d, 0x9c, 0x8c, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x08, 0x0f, 0x0d, 0x0c, 0x13, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x1b,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c, 0x63, 0x62, 0x61, 0x60, 0x67, 0x66, 0x65, 0x64, 0x6b, 0x6a, 0x69, 0x68, 0x6f, 0x6e, 0x6d, 0x6c, 0x73, 0x72, 0x71, 0x70, 0x77, 0x76, 0x75, 0x74, 0x7b, 0x7a, 0x79, 0x78, 0x7f, 0x7e, 0x7d, 0x7c,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x43, 0x42, 0x41, 0x40, 0x47, 0x46, 0x45, 0x44, 0x4b, 0x4a, 0x49, 0x48, 0x4f, 0x4e, 0x4d, 0x4c, 0x53, 0x52, 0x51, 0x50, 0x57, 0x56, 0x55, 0x54, 0x5b, 0x5a, 0x59, 0x58, 0x5f, 0x5e, 0x5d, 0x5c },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xd8, 0xdb, 0xda, 0xdd, 0xdc, 0xdf, 0xde, 0xd1, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce, 0xc1, 0xc0, 0xc3, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xf6, 0xe9, 0xe8, 0xeb, 0xea, 0xed, 0xec, 0xef, 0xee, 0xe1, 0xe0, 0xe3, 0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e, 0x81, 0x80, 0x99, 0xc7, 0xd9, 0x98, 0xf9, 0x9a, 0x9d, 0x9c, 0xe7, 0x9f, 0x93, 0x91, 0x90, 0xe6, 0x94, 0x92, 0x84,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xc2, 0xe2, 0xc4, 0xe4, 0xc5, 0xe5, 0x83, 0x82, 0x9b, 0x9e, 0x85, 0x95, 0x87, 0x97, 0x86, 0x96, 0x18, 0x1b, 0x1a, 0x1d, 0x1c, 0x1f, 0x1e, 0x11, 0x10, 0x13, 0x12, 0x15, 0x17, 0x16, 0x09, 0x08, 0x0b, 0x0a, 0x0d, 0x0c, 0x0f, 0x0e, 0x01,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x00, 0x03, 0x02, 0x05, 0x04, 0x07, 0x06, 0x79, 0x78, 0x7b, 0x7a, 0x7d, 0x7c, 0x7f, 0x7e, 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77, 0x76, 0x69, 0x68, 0x6b, 0x6a, 0x6d, 0x6c, 0x6f, 0x6e, 0x61, 0x60, 0x63, 0x62, 0x65, 0x64, 0x67, 0x66,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x59, 0x58, 0x5b, 0x5a, 0x5d, 0x5c, 0x5f, 0x5e, 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e, 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46 },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x87, 0x84, 0x85, 0x82, 0x83, 0x80, 0x81, 0x8e, 0x8f, 0x8c, 0x8d, 0x8a, 0x8b, 0x88, 0x89, 0x96, 0x97, 0x94, 0x95, 0x92, 0x93, 0x90, 0x91, 0x9e, 0x9f, 0x9c, 0xa7, 0xa4, 0xa5, 0xa2, 0xa3, 0xa0, 0xa1, 0xae, 0xaf, 0xac, 0xad, 0xaa, 0xab, 0xa8,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xa9, 0xb6, 0xb7, 0xb4, 0xb5, 0xb2, 0xb3, 0xb0, 0xb1, 0xbe, 0xbf, 0xbc, 0xd6, 0xd7, 0xd4, 0xd5, 0xd2, 0xd3, 0xd0, 0xd1, 0xde, 0xdf, 0xc6, 0x98, 0x86, 0xc7, 0xa6, 0xc5, 0xc2, 0xc3, 0xb8, 0xc0, 0xcc, 0xce, 0xcf, 0xb9, 0xcb, 0xcd, 0xdb,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x9d, 0xbd, 0x9b, 0xbb, 0x9a, 0xba, 0xdc, 0xdd, 0xc4, 0xc1, 0xda, 0xca, 0xd8, 0xc8, 0xd9, 0xc9, 0x47, 0x44, 0x45, 0x42, 0x43, 0x40, 0x41, 0x4e, 0x4f, 0x4c, 0x4d, 0x4a, 0x48, 0x49, 0x56, 0x57, 0x54, 0x55, 0x52, 0x53, 0x50, 0x51, 0x5e,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x5f, 0x5c, 0x5d, 0x5a, 0x5b, 0x58, 0x59, 0x26, 0x27, 0x24, 0x25, 0x22, 0x23, 0x20, 0x21, 0x2e, 0x2f, 0x2c, 0x2d, 0x2a, 0x2b, 0x28, 0x29, 0x36, 0x37, 0x34, 0x35, 0x32, 0x33, 0x30, 0x31, 0x3e, 0x3f, 0x3c, 0x3d, 0x3a, 0x3b, 0x38, 0x39,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x06, 0x07, 0x04, 0x05, 0x02, 0x03, 0x00, 0x01, 0x0e, 0x0f, 0x0c, 0x0d, 0x0a, 0x0b, 0x08, 0x09, 0x16, 0x17, 0x14, 0x15, 0x12, 0x13, 0x10, 0x11, 0x1e, 0x1f, 0x1c, 0x1d, 0x1a, 0x1b, 0x18, 0x19 },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x3b, 0x3a, 0x39, 0x38, 0x3f, 0x3e, 0x3d, 0x3c, 0x23, 0x22, 0x21, 0x20, 0x27, 0x26, 0x25, 0x24, 0x2b, 0x2a, 0x29, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x1c, 0x03, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x63, 0x62, 0x61, 0x60, 0x67, 0x66, 0x65, 0x64, 0x6b, 0x6a, 0x73, 0x2d, 0x33, 0x72, 0x13, 0x70, 0x77, 0x76, 0x0d, 0x75, 0x79, 0x7b, 0x7a, 0x0c, 0x7e, 0x78, 0x6e,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x28, 0x08, 0x2e, 0x0e, 0x2f, 0x0f, 0x69, 0x68, 0x71, 0x74, 0x6f, 0x7f, 0x6d, 0x7d, 0x6c, 0x7c, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4, 0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfd, 0xfc, 0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4, 0xeb,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec, 0x93, 0x92, 0x91, 0x90, 0x97, 0x96, 0x95, 0x94, 0x9b, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c, 0x83, 0x82, 0x81, 0x80, 0x87, 0x86, 0x85, 0x84, 0x8b, 0x8a, 0x89, 0x88, 0x8f, 0x8e, 0x8d, 0x8c,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xb3, 0xb2, 0xb1, 0xb0, 0xb7, 0xb6, 0xb5, 0xb4, 0xbb, 0xba, 0xb9, 0xb8, 0xbf, 0xbe, 0xbd, 0xbc, 0xa3, 0xa2, 0xa1, 0xa0, 0xa7, 0xa6, 0xa5, 0xa4, 0xab, 0xaa, 0xa9, 0xa8, 0xaf, 0xae, 0xad, 0xac },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x1b, 0x18, 0x19, 0x1e, 0x1f, 0x1c, 0x1d, 0x12, 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15, 0x0a, 0x0b, 0x08, 0x09, 0x0e, 0x0f, 0x0c, 0x0d, 0x02, 0x03, 0x00, 0x3b, 0x38, 0x39, 0x3e, 0x3f, 0x3c, 0x3d, 0x32, 0x33, 0x30, 0x31, 0x36, 0x37, 0x34,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x35, 0x2a, 0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d, 0x22, 0x23, 0x20, 0x4a, 0x4b, 0x48, 0x49, 0x4e, 0x4f, 0x4c, 0x4d, 0x42, 0x43, 0x5a, 0x04, 0x1a, 0x5b, 0x3a, 0x59, 0x5e, 0x5f, 0x24, 0x5c, 0x50, 0x52, 0x53, 0x25, 0x57, 0x51, 0x47,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x01, 0x21, 0x07, 0x27, 0x06, 0x26, 0x40, 0x41, 0x58, 0x5d, 0x46, 0x56, 0x44, 0x54, 0x45, 0x55, 0xdb, 0xd8, 0xd9, 0xde, 0xdf, 0xdc, 0xdd, 0xd2, 0xd3, 0xd0, 0xd1, 0xd6, 0xd4, 0xd5, 0xca, 0xcb, 0xc8, 0xc9, 0xce, 0xcf, 0xcc, 0xcd, 0xc2,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xc3, 0xc0, 0xc1, 0xc6, 0xc7, 0xc4, 0xc5, 0xba, 0xbb, 0xb8, 0xb9, 0xbe, 0xbf, 0xbc, 0xbd, 0xb2, 0xb3, 0xb0, 0xb1, 0xb6, 0xb7, 0xb4, 0xb5, 0xaa, 0xab, 0xa8, 0xa9, 0xae, 0xaf, 0xac, 0xad, 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x9a, 0x9b, 0x98, 0x99, 0x9e, 0x9f, 0x9c, 0x9d, 0x92, 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95, 0x8a, 0x8b, 0x88, 0x89, 0x8e, 0x8f, 0x8c, 0x8d, 0x82, 0x83, 0x80, 0x81, 0x86, 0x87, 0x84, 0x85 },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0xf4, 0xf7, 0xf6, 0xf1, 0xf0, 0xf3, 0xf2, 0xfd, 0xfc, 0xff, 0xfe, 0xf9, 0xf8, 0xfb, 0xfa, 0xe5, 0xe4, 0xe7, 0xe6, 0xe1, 0xe0, 0xe3, 0xe2, 0xed, 0xec, 0xef, 0xd4, 0xd7, 0xd6, 0xd1, 0xd0, 0xd3, 0xd2, 0xdd, 0xdc, 0xdf, 0xde, 0xd9, 0xd8, 0xdb,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xda, 0xc5, 0xc4, 0xc7, 0xc6, 0xc1, 0xc0, 0xc3, 0xc2, 0xcd, 0xcc, 0xcf, 0xa5, 0xa4, 0xa7, 0xa6, 0xa1, 0xa0, 0xa3, 0xa2, 0xad, 0xac, 0xb5, 0xeb, 0xf5, 0xb4, 0xd5, 0xb6, 0xb1, 0xb0, 0xcb, 0xb3, 0xbf, 0xbd, 0xbc, 0xca, 0xb8, 0xbe, 0xa8,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xee, 0xce, 0xe8, 0xc8, 0xe9, 0xc9, 0xaf, 0xae, 0xb7, 0xb2, 0xa9, 0xb9, 0xab, 0xbb, 0xaa, 0xba, 0x34, 0x37, 0x36, 0x31, 0x30, 0x33, 0x32, 0x3d, 0x3c, 0x3f, 0x3e, 0x39, 0x3b, 0x3a, 0x25, 0x24, 0x27, 0x26, 0x21, 0x20, 0x23, 0x22, 0x2d,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x2c, 0x2f, 0x2e, 0x29, 0x28, 0x2b, 0x2a, 0x55, 0x54, 0x57, 0x56, 0x51, 0x50, 0x53, 0x52, 0x5d, 0x5c, 0x5f, 0x5e, 0x59, 0x58, 0x5b, 0x5a, 0x45, 0x44, 0x47, 0x46, 0x41, 0x40, 0x43, 0x42, 0x4d, 0x4c, 0x4f, 0x4e, 0x49, 0x48, 0x4b, 0x4a,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x75, 0x74, 0x77, 0x76, 0x71, 0x70, 0x73, 0x72, 0x7d, 0x7c, 0x7f, 0x7e, 0x79, 0x78, 0x7b, 0x7a, 0x65, 0x64, 0x67, 0x66, 0x61, 0x60, 0x63, 0x62, 0x6d, 0x6c, 0x6f, 0x6e, 0x69, 0x68, 0x6b, 0x6a },</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ 0x1d, 0x1e, 0x1f, 0x18, 0x19, 0x1a, 0x1b, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x3d, 0x3e, 0x3f, 0x38, 0x39, 0x3a, 0x3b, 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x33, 0x2c, 0x2d, 0x2e, 0x2f, 0x28, 0x29, 0x2a, 0x2b, 0x24, 0x25, 0x26, 0x4c, 0x4d, 0x4e, 0x4f, 0x48, 0x49, 0x4a, 0x4b, 0x44, 0x45, 0x5c, 0x02, 0x1c, 0x5d, 0x3c, 0x5f, 0x58, 0x59, 0x22, 0x5a, 0x56, 0x54, 0x55, 0x23, 0x51, 0x57, 0x41,</span></div></li>
<li class="li2"><div class="de2"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x07, 0x27, 0x01, 0x21, 0x00, 0x20, 0x46, 0x47, 0x5e, 0x5b, 0x40, 0x50, 0x42, 0x52, 0x43, 0x53, 0xdd, 0xde, 0xdf, 0xd8, 0xd9, 0xda, 0xdb, 0xd4, 0xd5, 0xd6, 0xd7, 0xd0, 0xd2, 0xd3, 0xcc, 0xcd, 0xce, 0xcf, 0xc8, 0xc9, 0xca, 0xcb, 0xc4,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0xc5, 0xc6, 0xc7, 0xc0, 0xc1, 0xc2, 0xc3, 0xbc, 0xbd, 0xbe, 0xbf, 0xb8, 0xb9, 0xba, 0xbb, 0xb4, 0xb5, 0xb6, 0xb7, 0xb0, 0xb1, 0xb2, 0xb3, 0xac, 0xad, 0xae, 0xaf, 0xa8, 0xa9, 0xaa, 0xab, 0xa4, 0xa5, 0xa6, 0xa7, 0xa0, 0xa1, 0xa2, 0xa3,</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x9c, 0x9d, 0x9e, 0x9f, 0x98, 0x99, 0x9a, 0x9b, 0x94, 0x95, 0x96, 0x97, 0x90, 0x91, 0x92, 0x93, 0x8c, 0x8d, 0x8e, 0x8f, 0x88, 0x89, 0x8a, 0x8b, 0x84, 0x85, 0x86, 0x87, 0x80, 0x81, 0x82, 0x83 } };</span></div></li>
<li class="li1"><div class="de1"><span class="st0">}</span></div></li>
<li class="li1"><div class="de1"><span class="st0"></span</div></li></ol></div></div></div>
</p>    ]]></content>
  </entry>
  <entry>
    <title>Art Trollesque : &quot;Pourquoi Linux ne va pas déclasser Windows&quot;</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1307" />
    <id>http://artisan.karma-lab.net/node/1307</id>
    <published>2008-01-21T10:43:56+01:00</published>
    <updated>2008-07-30T14:38:45+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
  L'humain a toujours tendance à considérer comme meilleur et unique, la seule chose qu'il connaît. Il est régulièrement persuadé d'avoir choisi ce qu'il a finalement toujours connu. Et cet aspect fondateur du genre humain s'applique à tous les domaines, de la religion à la politique, de la couleur de peau à une solution technique. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  L'humain a toujours tendance à considérer comme meilleur et unique, la seule chose qu'il connaît. Il est régulièrement persuadé d'avoir choisi ce qu'il a finalement toujours connu. Et cet aspect fondateur du genre humain s'applique à tous les domaines, de la religion à la politique, de la couleur de peau à une solution technique. 
</p>
<!--break-->
<p>
  Voilà en tout cas ce que m'a inspiré <a class='external' target='_blank' href='http://talkback.zdnet.com/5208-12355-0.html?forumID=1&amp;threadID=31199&amp;messageID=579806&amp;start=43' >ce morceau tragico-comique d'art Troll</a>. La traduction de quelques morceaux choisis :
<blockquote><p>J'espère que vous réalisez que Windows est plus que simplement Office</p></blockquote>
<br/>
<blockquote><p>Microsoft a dépensé $9 billion et de nombreuses années pour créer Vista, vous semble t-il alors raisonnable qu'une nouvelle alternative (Linux) apparaisse ainsi <b>du jour au lendemain</b> ? </p></blockquote>
<br/>
<blockquote><p>Ce n'est juste pas possible qu'un <b>freeware comme Linux</b> puisse être amélioré au point de pouvoir faire tourner un ordinateur complet du début à la fin, sans utiliser à un moment ou à un autre certaines fonctions de windows. Juste impossible. </p></blockquote>
</p>

<p>
Une excellent démonstration en tout cas, de la bêtise humaine à une époque où l'on n'avais pas vraiment besoin d'un exemple de plus. Espérons que tout cela ne soit que du 10<sup>ième</sup> degré. 
</p>

<p>
Et hop <a class='external' target='_blank' href='http://talkback.zdnet.com/5208-12355-0.html?forumID=1&amp;threadID=31199&amp;messageID=579074&amp;start=-9605' >une de plus pour la route</a> mais là, attention les enfants, on frise le pure génie !!
<blockquote><p>Linux va devoir trouver un moyen de fonctionner sous Vista puisqu'il ne sera plus possible de se reposer sur XP qui ne sera plus disponible bientôt</p></blockquote>
</p>
<p>
Voilà, maintenant c'est clair, Linux est un Freeware qui tourne sous Windows XP, qui peut sembler être une bonne alternative à Office mais dans la mesure où il viole les droits sur les pilots de Windows, il devrait disparaître avec la vague déferlante de Vista. 
</p>
<p>C'est t'il pas mignon tout cela ? <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>))</p>    ]]></content>
  </entry>
  <entry>
    <title>Windows blues...</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1208" />
    <id>http://artisan.karma-lab.net/node/1208</id>
    <published>2007-09-11T10:25:21+02:00</published>
    <updated>2007-09-11T10:51:33+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Aucun" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>Je hais cet OS...</p>
<p>
J'entends parler sur un site d'un super shell pour windows qui remplace le misérable terminal fournit en standard (aka CMD). Et comme j'en peux juste plus de ce <kbd>cmd</kbd>, de pas avoir d'onglet, de pas avoir une sélection potable, une notification de mouvement, des profiles de connexion, comme un âne, sans réfléchir, je fonce...
</p>    ]]></summary>
    <content type="html"><![CDATA[<p>Je hais cet OS...</p>
<p>
J'entends parler sur un site d'un super shell pour windows qui remplace le misérable terminal fournit en standard (aka CMD). Et comme j'en peux juste plus de ce <kbd>cmd</kbd>, de pas avoir d'onglet, de pas avoir une sélection potable, une notification de mouvement, des profiles de connexion, comme un âne, sans réfléchir, je fonce...
</p>
<!-- break -->
<p>
Je clique donc sur l'URL qui m'a été fournie pour <kbd>PowerShell</kbd>, le futur du shell par Microsoft. Une fois arrivé, je passe bien 30 bonnes secondes à comprendre quelle est la version qui va bien pour moi. A l'évidence, ils sont pas fichus de déduire cela des informations données par mon navigateur (façon drivers nvidia) ? Bref.. Je la trouve, je clique sur télécharger...
</p>

<p><b>Ahhhh nan nan nan nan !!! pas possible... Il faut d'abord vérifier que ton Windows il est bien authentique et que t'as bien payé ta gabelle à Microsoft.</b></p>
<p>Ok, ben vérifie donc... </p>
<p><b>Ahhhh nan nan nan nan !!! pas possible... Il faut d'abord télécharger le programme Genuine trucmuche, le programme qui va valider que t'a bien payé ta gabelle.</b></p>
<p>Je télécharge donc... j'installe... je continue... Et... mon windows est bien authentique, ouf ! Quel soulagement !</p>
<p>Je re-click alors pour télécharger le maudit <kbd>Powershell</kbd>. Ca download, Yes ! Rapidement, c'est arrivé (à défaut d'avoir des idées, ils ont du débit chez MS). Je vais donc, enfin, pouvoir installer...</p>
<p><b>Ahhhh nan nan nan nan !!! pas possible... faut dot Net RTM RTFM WTF 2.0 pour que ça marche...</b></p>
<p>Ok, et il est où le bignou ? Ah mais fallait y penser tout de même, c'est écrit dans la boite de dialogue !! Une URL de 2 lignes gavée de signes kabbalistiques, impossible à copier/coller, que je suis sensé me refrapper à la main... Bon, calme et zen, plus rapide, Google... je trouve le bidule, je télécharge... OK ça arrive, il s'est souvenu que mon Windows était original, c'est déjà ça.</p>
<p>Je lance l'installation du dotNet bidulo 2.0 qui va bien (je sens que ça va encore me flinguer mon windows cette connerie). Ok, ça s'installe, ça continue de s'installer... ça s'installe encore, c'est long, il n'en peu plus de faire avancer sa barre de progression en m'affichant des hiéroglyphes d'une utilité frappante pour la compréhension de ce qu'il est en train de maganer dans mon système.</p>
<p>Puis enfin, au bout de 5 bonnes minutes, c'est terminé !! Je vais pouvoir installer mon powermachin que je commence un peu à regretter...</p>

<p><b>Ahhhh nan nan nan nan !!! pas possible... qu'est ce que tu crois p'tit malin, faut rebooter le bouzin avant!!</b></p>
<p>WTF ! Ok je reboot, je me relogue, et re-re-re-lance la maudite install, C'est bon là ? </p>
<p><b>Ahhhh nan nan nan nan !!! pas possible... Faut éteindre toute les applications... </b></p>
<p>Sgrosgnieuxgnieux !! Y'a QUE firefox de lancé, qu'est-ce que firefox a a voir avec l'installation d'un shell ?!?!? Bon, ok, faut pas le froisser, je ferme tout, je fait suivant...</p>
<p>J'accepte la licence sans la lire, honte a moi car cela m'expliquait j'imagine que je risquais un terrible procès si je laissais quelqu'un pirater Windows du regard en matant sur mon épaule. Ou que ma licence devenait caduc en cas d'insertion d'une périphérique USB supplémentaire ou du changement de ma souris.
</p>
<p>
Bref, je meuble un peu parce que là, j'attends.. j'attends que l'installateur vérifie que j'ai bien tout l'espace disque nécessaire à l'écriture d'un programme qui fait au bas mot... Pfff, bien 1 méga 6 !! Un click-droit/propriété sur l'explorer me donne en moins d'une seconde cette information... et lui en est déjà à une bonne minute... Ca doit être codé en dotNet...</p>
<p>
Et donc lorsqu'il a bien fini de se foutre de ma gueule, de vérifier l'espace disque, le revisiter le processus d'installation, de nettoyer les fichiers, d'envoyer des mails perso, de faire la poussière sur les puces, etc... 'A y'est, c'est installé. 
</p>
<p>
Et là, je peux enfin partir à la traditionnelle pêche au menu. Je devrais j'imagine me considérer redevable qu'il ait pris la peine de surligner la nouvelle merveille, rendant plus aisé son repérage dans l'infâme bordel que les diverses autres installation ont générées (ils connaissent pas les catégories chez MicroSoft ?). Bref, je trouve le lien, je lance enfin ce qui m'a coûté au bas mot 1/2 heure.
</p>
<p>Et là je me rends compte que je me suis fait avoir comme un bleu par l'emballage. C'est juste un pauvre shell amélioré lancé dans le vénérable...CMD. C'est d'une lenteur à se tirer une balle, c'est moche, c'est inutilisable, c'est sûrement gavé de fonctions magiques mais nada de neuf pour l'ergonomie. bref, je suis happy happy...
</p>
<p>
Alors si quelqu'un a dans ses cartons une console décente pour Windows, avec onglets, profiles, notifications, un truc normal quoi, je suis preneur !
</p>
<p>Et pour info, tout ce bazar, sous un os normal, aurait été réglé par un simple :
<div class='code-container-area'><div class='code-container'><div class="code">urpmi powershell</div></div></div>
</p>
    ]]></content>
  </entry>
  <entry>
    <title>Changer le numéro de série de Windows XP SP2</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1137" />
    <id>http://artisan.karma-lab.net/node/1137</id>
    <published>2007-06-01T10:51:01+02:00</published>
    <updated>2007-06-19T10:05:08+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Aucun" />
    <category term="Tutoriel" />
    <summary type="html"><![CDATA[<p>
  Ce qui suit est l'histoire simple et ordinaire d'un paradoxe qui ne cesse de me surprendre. Tout commence avec une nouvelle mission de développement. Et donc avec un nouveau client. Rien de nouveau mise à part l'obligation de travailler sous Windows... On ne peux pas gagner à chaque fois <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> Et puis au fond, pourquoi pas... je ne suis pas si sectaire après tout. Cependant, travaillant chez moi, ma seule requête concerne le prêt d'une licence par logiciel utilisé, dont le fameux Windows. Et déjà là, premier trouble dans la force... mon interlocuteur est plus que surpris que je ne dispose pas déjà de Windows et semble du coup presque douter que je possède un ordinateur tout court... Regards en biais, sourire, quelques explications d'usage et j'obtiens ISO et licences. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Ce qui suit est l'histoire simple et ordinaire d'un paradoxe qui ne cesse de me surprendre. Tout commence avec une nouvelle mission de développement. Et donc avec un nouveau client. Rien de nouveau mise à part l'obligation de travailler sous Windows... On ne peux pas gagner à chaque fois <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> Et puis au fond, pourquoi pas... je ne suis pas si sectaire après tout. Cependant, travaillant chez moi, ma seule requête concerne le prêt d'une licence par logiciel utilisé, dont le fameux Windows. Et déjà là, premier trouble dans la force... mon interlocuteur est plus que surpris que je ne dispose pas déjà de Windows et semble du coup presque douter que je possède un ordinateur tout court... Regards en biais, sourire, quelques explications d'usage et j'obtiens ISO et licences. 
</p>
<!--break-->
<h2>Genuine thanks...</h2>
<p>
   De retour chez moi, je m'attelle à la construction d'une machine virtuelle avec VMPlayer pour ne pas "infecter" ma station Linux. Cette étape réalisée, j'installe en confiance, le drôle d'OS. Tout se passe sans problème et j'enchaîne donc sur l'installation des 12 milliards de bidules, upgrades,  services packs, .msi de tout crin, .exe en pagaille, fragments de registry ultra-importants.. bref, le minimum pour pouvoir simplement commencer à travailler.... Il faut définitivement que quelqu'un parle d'URPMI à Microsoft...
</p>
<p>
   une fois que tout est en place, ne reste plus que la dernière pièce : IE7. Je vais donc sur le site de Microsoft qui m'indique que je dois subir un examen approfondi avant que cette perle logicielle puisse m'être offerte. Pas pourceau pour un sou, je m'y soumet... Malheureux, grosse erreur !! Car là, j'ai la surprise de me faire traiter de vilain pirate utilisant une copie de Windows "non-Genuine"... Et la sanction ne tarde pas, IE7 m'est refusé... Vas ! manant... En revanche, m'est offert à cette occasion le droit d'acquérir une version Genuine pour le prix exceptionnel de 137€... Mazette, le prix du monopole, rien que cela... Je pourrais m'offrir une Mandriva PowerPack à ce prix là, et il m'en resterait encore assez pour me payer un ou deux resto...
</p>
<p>
  Alors me voilà donc parti en croisade téléphonique et couriellistique pour obtenir une clef qui me soit dédiée, originale et vierge, un truc légal quoi... Et c'est là que réside le paradoxe que j'évoquais plus haut. C'est moi, défenseur du libre en inimitée consumée avec Bilou qui me débat pour obtenir une licence légal auprès de fervents supporters du logiciel fermé... Philosophiquement intéressant... 
</p>
<p>
 Bref, j'obtiens finalement ma clef (merci à mon administrateur système pour cela), et maintenant commence une autre quête. Où comment, en un minimum de temps, rendre à mon windows sa Genuine légalité. 
</p>
<h2>Diagnostique</h2>
<p>
On trouve de tout sur les serveurs de Microsoft. Point n'est donc besoin de courir à droite et à gauche pour dégotter un utilitaire à l'origine douteuse. La première étape consiste déjà à diagnostiquer le problème. Pour cela, il suffit de télécharger <a class='external' target='_blank' href='http://www.microsoft.com/resources/howtotell/en/coa.mspx' >cet utilitaire</a>. Une fois lancé, il vas nous donner, entre autres, deux informations intéressantes. Tout d'abord que notre <kbd>Genuine Windows Status</kbd> de windows est <kbd>blocked VLK</kbd>. C'est écrit en rouge vilain et cela signifie en terme polis "Numéro de Série dégottée sur astalavista et utilisée 3 milliards 1/2 de fois". L'autre information c'est le <kbd>Windows Licence Type</kbd> qui indique en l'instance <kbd>Volume</kbd>. Ceci indiquant que le numéro de série en question provient sûrement d'une grande entreprise ayant acheté ses licences en grand volume. Bref, mauvaise tisanne comme disent les lillois. Nous allons changer cela. 
</p>
<h2>Changement du numéro de série</h2>
<p>
  Une fois que l'on a en sa possession le numéro de série légal, tout le jeu est de l'injecter dans Windows sans devoir se frapper une réinstallation compète. Là encore, la solution est sur le site de Microsoft, avec <a class='external' target='_blank' href='http://www.microsoft.com/genuine/selfhelp/PkuInstructions.aspx?displayLang=en' >cet utilitaire</a>. Il permet, tout a fait légalement :
<ul>
<li>De modifier le numéro de série,</li>
<li>De procéder dans la foulée à une activation de la nouvelle clef,</li>
<li>D'obtenir le fameux label <kbd>Genuine</kbd>.</li>
</ul>
</p>
<p>
   Sont utilisation est simple et sans histoire. Après un examen le nouveau numéro est demandé. Et une fois validé, il faut juste se soumettre a ce comique rite Windowsien que je commence à bien connaître, le rebootage... Je ne sais pas combien de fois j'ai rebootagé depuis que j'ai installé cet OS mais je bénit VMPlayer pour rendre cette danse un peu plus rapide... 
</p>
<p>
   Une fois Windows lancé, une fenêtre apparaît pour vous indiquer que votre nouveau numéro est bien enregistré avec succès. Great !! Pour le plaisir, on relance l'outil de diagnostique pour voir apparaître cette fois un jolie <kbd>Genuine</kbd> couleur vert ainsi qu'un type de licence "Retail". Bref, je vais enfin pour voir, sans honte au front, télécharger IE7. 
</p>
<h2>Changement du nom de l'utilisateur et de la société</h2>
<p>
Pour parfaire la conversion au côté claire de la force, il faut aussi changer le nom de la société à qui appartient la licence, ainsi que le nom de l'utilisateur (moi) à qui elle a été confiée. Pour cela, l'arme ultime du windowsien, <kbd>regedit</kbd>. Il faut aller dans la clef <kbd>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion</kbd> et changer les valeurs de <kbd>RegisteredOwner</kbd> et <kbd>RegisteredOrganization</kbd>. La modification prends effet sans rebootage, ce qui est un fait assez rare pour être souligné et peut être vérifié en regardant la première page des propriétés du poste de travail. 
</p>
<h2>Conclusion</h2>
<p>
  Le chemin de la légalité est assez ardu mais pas irréalisable. La page de téléchargement d'IE7 ne m'insulte plus et me félicite même. Tout va pour le mieux dans Brave New World. Mais ce genre d'épisode me fait me demander quelle place aurait Linux dans les entreprises si tout le monde devait acheter ses licences. 
</p>    ]]></content>
  </entry>
  <entry>
    <title>Vista trop lent à démarrer ? Mais arrêtez donc de l&#039;éteindre !!</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1136" />
    <id>http://artisan.karma-lab.net/node/1136</id>
    <published>2007-04-11T08:52:15+02:00</published>
    <updated>2007-07-03T15:36:41+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Aucun" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>Pourtant à un niveau artistique la devise shadock <q>S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.</q>, Microsoft(tm) innove (à nouveau <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> avec Vista(tm), et explique à ses utilisateurs la martingale permettant de booter plus rapidement que sous XP(tm)...</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Pourtant à un niveau artistique la devise shadock <q>S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.</q>, Microsoft(tm) innove (à nouveau <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> avec Vista(tm), et explique à ses utilisateurs la martingale permettant de booter plus rapidement que sous XP(tm)...</p>
<!--break-->

<p><br/><blockquote><q>De son côté, Microsoft ne veut pas reconnaitre que Vista est plus lent que XP. "Le temps de démarrage et de fermeture de Vista dépend de la configuration du PC. Il est important d'utiliser le mode "sleep" ou sommeil qui permet la fermeture rapide du PC</q> - <a class='external' target='_blank' href='http://silicon.fr/fr/silicon/news/2007/04/10/vista-plus-long-d-marrer-xp' >Silicon.fr</a></blockquote>
</p>

<p>Et voilà ! c'est simple, brillant et sans bavures. La "vraie" raison qui rends donc un ordinateur sous Vista  plus lent au démarrage que sous XP est que l'utilisateur a le mauvais gout de l'éteindre !!</p>

<p>Voilà qui va surement faire bondir quelques écolos technophiles (antinomique ?). Car rappelons qu'en veille, un ordinateur consomme selon mes mesures (issues d'un testeur branché en permanence sur ma prise électrique) près de 7W. Seule la veille dites "prolongée" fait tomber la consommation à 0. Mais là, c'est beaucoup moins rapide car il faut pour revenir de cette profonde hibernation... que l'ordinateur boot <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/></p>
    ]]></content>
  </entry>
  <entry>
    <title>Linux aussi vulnérable que Windows, get the facts...</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1102" />
    <id>http://artisan.karma-lab.net/node/1102</id>
    <published>2006-11-11T20:29:44+01:00</published>
    <updated>2008-07-30T14:39:12+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Aucun" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>Lassé d'entendre certains amis me soutenir que Windows n'était pas plus sujet aux failles critiques que Linux, j'ai décidé de passer en mode "argument rationnel". Nous allons donc comparer un peu ce qui est comparable...
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Lassé d'entendre certains amis me soutenir que Windows n'était pas plus sujet aux failles critiques que Linux, j'ai décidé de passer en mode "argument rationnel". Nous allons donc comparer un peu ce qui est comparable...
</p>
<!--break-->
<p>
  Déjà, pour commencer, définir ce qu'est une faille critique... Pour moi, ce qui est *vraiment* critique, c'est qu'un quidam puisse lancer, à distance, du code, sur ma machine. Qu'il puisse la faire tomber n'est pas agréable mais pas dés plus critique... Il y a d'autre aspects critères bien sur, comme injecter des fichiers sur ma bécane, en modifier à distance, etc... Mais pour ce test, nous allons nous limiter à cela, les RCE pour "Remote Code Execution".
</p>
<p>
  Les RCE consistent en général à utiliser un dépassement de tampon (buffer overflow) pour lancer un shell (une ligne de commande) à distance, un peu comme un telnet. A l'époque du virus blaster, j'avais eu mon petit succès au boulot avec un tel "kit" me permettant de me connecter en administrateur sur mon serveur d'entreprise ultra sécurisé tournant sous OS que ne nommerais pas;-) 
</p>
<p>
  Mais ne voulant pas être taxé de mauvaise fois, nous allons comparer les clefs "Microsoft Windows" (donc pas office, juste windows) et "kernel linux" (pas proftpd, php & co, juste Linux). 
</p>
<p>
Les critères établis, j'utilise bêtement la très bonne base de vulnérabilité de <a class='external' target='_blank' href='http://search.securityfocus.com' >Security Focus</a> et son formulaire de recherche. Passons à l'acte...
</p>
<p>
  Honneur aux payant, je tapes donc (les guillemets me permettent d'être stricte dans la recherche:
<div class='code-container-area'><div class='code-container'><div class="code">&quot;Microsoft Windows&quot; &quot;Remote Code Execution&quot;</div></div></div>
</p>
<p>
  puis
<div class='code-container-area'><div class='code-container'><div class="code">&quot;Linux Kernel&quot; &quot;Remote Code Execution&quot;</div></div></div>
</p>
<p>
  Résultat, <b>17</b> vulnérabilités sous Windows et <b>ZERO</b> sous Linux. Convaincu ? Si je ne garde que "Microsoft" (donc avec Office), cela nous donnes <b>69</b>. Si je prends Internet Explorer, j'en ai <b>6</b> (c'est tout ?!?) et pour FireFox  <b>3</b> (c'est déjà beaucoup je trouve...).
</p>
<p>
  Et tout ceci est d'autant plus intéressant que tout le monde a accès aux sources de Linux, un peu moins ont cette chance pour Windows... Enfin voilà, après chacun utilise l'OS qui l'amuse mais il autant le faire en connaissance de cause, comme diraient nos amis de Richemont "<a class='external' target='_blank' href='http://www.microsoft.com/windowsserver/facts/default.mspx' >Get The Facts</a>" (dans la série propagande, cette page est à connaitre, un must...). 
</p>

</p>    ]]></content>
  </entry>
  <entry>
    <title>Bloc-note &#039;Windows XP&#039;</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/101" />
    <id>http://artisan.karma-lab.net/node/101</id>
    <published>2006-04-09T14:26:23+02:00</published>
    <updated>2007-02-10T11:48:01+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Aucun" />
    <category term="Note" />
    <summary type="html"><![CDATA[<p>Sorte de devoir de mémoire, cette page contient des astuces liées à Windows XP que je n'utilise plus</p>    ]]></summary>
    <content type="html"><![CDATA[<p>Sorte de devoir de mémoire, cette page contient des astuces liées à Windows XP que je n'utilise plus</p><!--break-->

<h2>Renommer le dossier Documents & Settings</h2>
<p>
  Créer un profile utilisateur (genre toto)<br />
  Aller dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList<br />
  Chercher le profile bidon<br />
  Changer le chemin dans ProfileImagePath<br />
  Log off<br />
  Se logger au nom du profile bidon.<br />
  Changer tout les autres chemins de ProfileImagePath<br />
  Déplacer les données de documents & settings vers le nouveau dossier<br />
  Se delogger<br />
  Se relogger à son compte<br />
  Faire un registry search & replace de documents & settings vers le nouveau chemin<br />
  rebooter<br />
  virer le compte bidon<br />
</p>  

<h2>Enlever la gestion du ZIP sous XP</h2>
  <p>Pour enlever
    <div class='code-container-area'><div class='code-container'><div class="code">regsvr32 <span class="sy0">/</span>u zipfldr.dll</div></div></div>
  Pour le remettre
  <div class='code-container-area'><div class='code-container'><div class="code">regsvr32 zipfldr.dll</div></div></div>
</p>
  
<h2>Supprimer MSN et autres bétises sous XP</h2>
<p>
  Aller dans C:\WINDOWS\inf\sysoc.inf et remplacer :
  <div class='code-container-area'><div class='code-container'><div class="code"><span class="re2">msmsgs=</span>msgrocm.dll,OcEntry,msmsgs.inf,hide,<span class="nu0">7</span></div></div></div>
  par
  <div class='code-container-area'><div class='code-container'><div class="code"><span class="re2">msmsgs=</span>msgrocm.dll,OcEntry,msmsgs.inf,<span class="nu0">7</span></div></div></div>
</p>
  
<h2>Erreur de mise en veille sous XP/2K</h2>
<p>
  Il peut y avoir plein de raisons pour un tel problème. Vérifiez d'abord dans le BIOS que :
  Suspend-To-Ram est activé<br />
  Wake-up-On-Lan est désactivé<br />
  Boot on Lan est désactivé<br />
</p>
<p>
  Ensuite il s'agit d'utiliser l'utilitaire <b>dumppo.exe</b> (Microsoft). Dumppo permet de régler l'état minimum et maximum de la veille. Les états possibles sont les suivants :
</p>
  <table>
    <tr><th>Niveau</th><th>Description</th><th>Alimentation</th></tr>
    <tr><td>SO</td><td>Fonctionnement normal de l'ordinateur.</td><td>pleine puissance</td></tr>
    <tr><td>S1</td><td>État de veille de bas niveau. Aucun contexte de système n'est perdu (CPU ou chip set) et le matériel maintient tout le contexte système.  Dans certains BIOS (AMIBIOS), cet état est appelé également POS</td><td>pleine puissance</td></tr>
    <tr><td>S2</td><td>État de veille de bas niveau. Cet état est semblable à S1 sauf que le contexte CPU et mémoire cache est perdu. C'est au système d'exploitation que revient le rôle de sauvegarder mémoire cache et le contexte CPU). L'ordinateur redémarre sur une action de la souris, du modem, de la carte réseau (si elle est du type "Wake up LAN") ou encore du bouton de marche</td><td>puissance réduite</td></tr>
    <tr><td>S3</td><td>État de veille de niveau intermédiaire. Tout le contexte système est perdu excepté la mémoire système. CPU, mémoire cache, et contexte chip set sont perdus. C'est au matériel que revient le rôle de sauvegarder ces contextes, dont  L2 (mémoire cache de second niveau du processeur). L'ordinateur redémarre de la même façon que dans l'état S2. Dans certains BIOS (AMIBIOS), cet état est appelé également STR</td><td>puissance réduite</td></tr>
    <tr><td>S4</td><td>État de veille de haut niveau. Tous les périphériques sont mis hors tension. Le contexte de la plate-forme est sauvegardé intégralement en mémoire non volatile (disque dur). C'est à ce niveau que correspond la mise en veille prolongée.</td><td>arrêt</td></tr>
    <tr><td>S5</td><td>identique à S4, sauf qu'aucun contexte n'est sauvegardé (arrêt normal). Un redémarrage complet est nécessaire.</td><td>arrêt</td></tr>
  </table>
<p>
  Le premier paramètre de DumpPo est le suivante :
  
  <dl>
    <dt>Paramètre</dt><dd>fonction affichée</dd>
    <dt>Cap</dt><dd>power capabilities ps Win32 System power status</dd>
    <dt>Bs</dt><dd>battery status</dd>
    <dt>Admin</dt><dd>Admin policy overrides</dd>
    <dt>Ac</dt><dd>AC power policy</dd>
    <dt>Dc</dt><dd>DC power policy</dd>
  </dl>
  
  Par exemple pour placer le niveau minimum d'économie d'énergie à S3 sur alimentation AC (toujours le cas sur les desktop) :
  <div class='code-container-area'><div class='code-container'><div class="code">Dumppo ac <span class="re2">minsleep=</span>S3</div></div></div>
</p>
  
<h2>Enlever la sécurité sous Outlook (2002)</h2>
<p>
    <div class='code-container-area'><div class='code-container'><div class="code">HKEY_CURRENT_USER\Software\Microsoft\Office\<span class="nu0">10.0</span>\Outlook\Security &nbsp;<span class="re2">Leve1Remove=</span>exe;asp;...</div></div></div>
</p>
  
<h2>Outlook ne voit pas les contactes enlevés</h2>
<p>
<div class='code-container-area'><div class='code-container'><div class="code">HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9ab86eec20435c43ac7615f6e592b13e</div></div></div>

  On y trouve deux clefs avec 'Carnet d'adresses Outlook'. Supprimer le gros bloc binaire de la fin
</p>  
  
<h2>Désactiver les ports ouverts</h2>
<h3>Supprimer les ports 445 (UPD/TCP) SMB</h3>
<p>
  Aller dans la registry
  <div class='code-container-area'><div class='code-container'><div class="code">HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters</div></div></div>
  Créer une valeur D-word appelée "SMBDeviceEnabled" et la mettre à 0.
</p>
  
<h3>Désactiver pour 1025</h3>
<p>
  Détruire la clef suivante :
  <div class='code-container-area'><div class='code-container'><div class="code">HKEY_LOCAL_MACHINE<span class="sy0">/</span>Software<span class="sy0">/</span>Microsoft<span class="sy0">/</span>Windows<span class="sy0">/</span>CurrentVersion<span class="sy0">/</span>Explorer<span class="sy0">/</span>Remote<br />
&nbsp; Computer<span class="sy0">/</span>NameSpace<span class="sy0">/</span><span class="br0">&#123;</span>D6277990-4C6A-11CF-8D87-00AA0060F5BF<span class="br0">&#125;</span></div></div></div>
  This key instructs Windows to search for Scheduled Tasks on remote computers.
</p>

<h3>Netbios/SMB</h3>
<p>
  Pour désactiver le mode "direct Host" (445 - SMB)<br />
  go to Computer Management<br />
  System Tools<br />
  Device Management<br />
  View<br />
  Show Hidden Devices<br />
  Non Plug and Play Drivers<br />
  <br />
  Go to NetBios over TCP/IP right click and disable.
  This will disable the direct host listener on port 445/tcp. (Windows 2000 uses 445 called direct host to do SMB without having to use netbios. IT uses port 445 instead of port 139 for communication.)
</p>    ]]></content>
  </entry>
  <entry>
    <title>Bloc-note &#039;iPaq&#039;</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/41" />
    <id>http://artisan.karma-lab.net/node/41</id>
    <published>2006-01-03T00:53:59+01:00</published>
    <updated>2008-02-12T12:27:08+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Windows" />
    <category term="Aucun" />
    <category term="Note" />
    <summary type="html"><![CDATA[<p>Bon, l'iPaq et moi, ce n'est pas une histoire qui a durée, j'ai vite craqué et offert la bestiole à mon père. Ces pages restent donc là pour mémoire.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Bon, l'iPaq et moi, ce n'est pas une histoire qui a durée, j'ai vite craqué et offert la bestiole à mon père. Ces pages restent donc là pour mémoire.</p>
<!--break-->

<h2>Synchroniser l'iPaq avec linux</h2>

<pre><div class='code-container-area'><div class='code-container'><div class="code"><span class="co0"># urpmi synce</span></div></div></div></pre>
Il faut ensuite avoir les modules suivant de compilé :
<pre><div class='code-container-area'><div class='code-container'><div class="code"><span class="co0"># modprobe usbserial ppp_generic ppp_async </span></div></div></div></pre>
<p>Lancer, en tant qu'utilisateur, la commande dccm</p>
<pre><div class='code-container-area'><div class='code-container'><div class="code">$ dccm</div></div></div></pre>
<p>Connecter l'iPaq, vérifier /dev/ttyUSB0 existe et tapper (root) :</p>
<pre><div class='code-container-area'><div class='code-container'><div class="code"><span class="co0"># synce-serial-config ttyUSB0 </span></div></div></div></pre>
<p>Une fois ceci fait, ce ne sera plus à refait. </p>
<p>Maintenant, toujours sous le prompt root, lancer la connexion</p>
<pre><div class='code-container-area'><div class='code-container'><div class="code"><span class="co0"># synce-serial-start </span></div></div></div></pre>
<p>Pour tester, revenir sous l'utilisateur :</p>
<pre><div class='code-container-area'><div class='code-container'><div class="code">$ pstatus</div></div></div></pre>
<p>Tout ceci peut être automatisé via hal/ivman et ajoutant à <div class='code-container-area'><div class='code-container'><div class="code"><span class="sy0">/</span>etc<span class="sy0">/</span>IvmanConfigActions</div></div></div>:</p>
<pre><div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>ivmivm:<span class="re2">Matchme=</span><span class="st0">&quot;hal.serial.device&quot;</span> <span class="re2">value=</span><span class="st0">&quot;/dev/ttyUSB0&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>ivm:Option <span class="re2">name=</span><span class="st0">&quot;exec&quot;</span> <span class="re2">value=</span><span class="st0">&quot;/usr/bin/synce-serial-start&quot;</span> <span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>ivm:Option <span class="re2">name=</span><span class="st0">&quot;exec&quot;</span> <span class="re2">value=</span><span class="st0">&quot;play /usr/share/apps/raki/Infbeg.wav&quot;</span> <span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="sy0">&lt;/</span>ivm:Match<span class="sy0">&gt;</span></div></li></ol></div></div></div></pre>
<p>Ensuite, installer les utilitaires synce pour KDE</p>
<pre><div class='code-container-area'><div class='code-container'><div class="code"><span class="co0"># urpmi synce-kde synce-kde-devel</span></div></div></div></pre>
<p>PS: le synce-kde-devel est necessaire dans ma distrib mais ce n'est pas le cas pour toutes. </p>
<p>Enfin, sous konqueror, aller en "rapip:/" pour explorer l'iPaq</p>


<h2>Installer Linux sur l'iPaq</h2>
<ul>
<li>haret.exe : le boot loader</li>
<li>zImage</li>
<li>initrd</li>
<li>startup.txt</li>
</ul>
<p>Sous linux, le modules usbnet doit être compilé. Le scripte usbnet.sh qui suit nous permettra de connecter le réseau :
<div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="co0">#!/bin/bash</span></div></li>
<li class="li1"><div class="de1"><span class="co0">#</span></div></li>
<li class="li1"><div class="de1"><span class="co0"># ipaqnet &nbsp; Control script for iPAQ USBNet connection</span></div></li>
<li class="li1"><div class="de1"><span class="co0">#</span></div></li>
<li class="li2"><div class="de2"><span class="co0"># Author: Michel Stempin</span></div></li>
<li class="li1"><div class="de1"><span class="co0"># Creation: 11/08/2002</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re2">PC_ADDR=</span><span class="nu0">192.168</span><span class="nu0">.6</span><span class="nu0">.1</span></div></li>
<li class="li1"><div class="de1"><span class="re2">IPAQ_ADDR=</span><span class="nu0">192.168</span><span class="nu0">.6</span><span class="nu0">.2</span><span class="sy0">/</span><span class="nu0">32</span></div></li>
<li class="li2"><div class="de2"><span class="re2">IPAQ_NET=</span><span class="nu0">192.168</span><span class="nu0">.6</span><span class="nu0">.0</span><span class="sy0">/</span><span class="nu0">24</span></div></li>
<li class="li1"><div class="de1"><span class="re2">UPLINK_IF=</span>ppp0</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">start<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; modprobe usbnet</div></li>
<li class="li2"><div class="de2">&nbsp; ifconfig usb0 inet <span class="re1">$PC_ADDR</span> up</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> -ne <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">fi</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&amp;</span>gt;<span class="sy0">/</span>proc<span class="sy0">/</span>sys<span class="sy0">/</span>net<span class="sy0">/</span>ipv4<span class="sy0">/</span>conf<span class="sy0">/</span>usb0<span class="sy0">/</span>proxy_arp</div></li>
<li class="li2"><div class="de2">&nbsp; <span class="re2">UPLINK=</span>ifconfig <span class="re1">$UPLINK_IF</span> <span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="nu0">2</span><span class="sy0">&gt;&amp;</span><span class="nu0">1</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re4">$?</span> -ne <span class="nu0">0</span> <span class="br0">&#93;</span>; <span class="kw1">then</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">fi</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&amp;</span>gt;<span class="sy0">/</span>proc<span class="sy0">/</span>sys<span class="sy0">/</span>net<span class="sy0">/</span>ipv4<span class="sy0">/</span>conf<span class="sy0">/</span><span class="re1">$UPLINK_IF</span><span class="sy0">/</span>proxy_arp</div></li>
<li class="li2"><div class="de2">&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&amp;</span>gt;<span class="sy0">/</span>proc<span class="sy0">/</span>sys<span class="sy0">/</span>net<span class="sy0">/</span>ipv4<span class="sy0">/</span>ip_forward</div></li>
<li class="li1"><div class="de1">&nbsp; ip route del <span class="re1">$IPAQ_NET</span> dev usb0</div></li>
<li class="li1"><div class="de1">&nbsp; ip route add <span class="re1">$IPAQ_ADDR</span> dev usb0</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">stop<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; ifconfig usb0 down</div></li>
<li class="li1"><div class="de1">&nbsp; rmmod -r usbnet</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">case</span> <span class="st0">&quot;$1&quot;</span> <span class="kw1">in</span></div></li>
<li class="li2"><div class="de2">&nbsp; start<span class="sy0">|</span>add<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; start</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">;;</span></div></li>
<li class="li1"><div class="de1">&nbsp; stop<span class="sy0">|</span>remove<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; stop</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">;;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="sy0">*</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">echo</span> $<span class="st0">&quot;Usage: $0 {start|stop|add|remove}&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">esac</span></div></li></ol></div></div></div></p>

<p>Pour gagner du temps, il est possible de lancer haret via linux par la commande :
<div class='code-container-area'><div class='code-container'><div class="code">$ &nbsp;prun <span class="st0">&quot;Storage Card/haret.exe&quot;</span></div></div></div></p>

<p>Le fait d'avoir nommé le fichier de config "startup.txt" évite d'avoir à gérer le côté interactif d'haret qui boot tout seul. </p>
<p>Lors du boot, lorsque le kernel le demande, débrancher la prise usb et rebrancher là. Sous linux, cela devrait donner dans les logs un truc du genre :
<div class='code-container-area'><div class='code-container'><div class="code">Jun <span class="nu0">29</span> <span class="nu0">01</span>:<span class="nu0">14</span>:<span class="nu0">47</span> antinea kernel: usb0: register usbnet at usb<span class="nu0">-0000</span>:<span class="nu0">00</span>:<span class="nu0">02.1</span><span class="nu0">-1</span>, CDC Ethernet Device, de:d5:e9:e1:e2:<span class="kw2">bc</span></div></div></div></p>

<p>Il faut ensuite lancer le script :
<div class='code-container-area'><div class='code-container'><div class="code"><span class="co0"># usbnet start</span></div></div></div></p>

<p>Tout ceci durant les 20 secondes du boot <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/> Ensuite la partition nfs est mointé et l'iPaq boot dessus et crash... pour l'instant <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/></p>

<p>29/06/05 - Bon, on retestera plus tard. Une pise à exploiter, faire un vrai diskless avec un fichier config de haret comme suit (à adapter) :
<div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">pfw 0x40e0005c <span class="nu0">1</span> 0x600a9558 </div></li>
<li class="li1"><div class="de1">pfw 0x0c000008 <span class="nu0">1</span> 0x0040</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">set</span> kernel <span class="st0">&quot;<span class="es0">\S</span>torage Card<span class="es0">\z</span>Image-&amp;lt;version number&amp;gt;&quot;</span></div></li>
<li class="li2"><div class="de2"><span class="kw1">set</span> mtype <span class="nu0">459</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">set</span> cmdline <span class="st0">&quot;root=/dev/nfs nfsroot=192.168.0.200:/home/ipaq_rootfs <span class="es0">\</span></span></div></li>
<li class="li1"><div class="de1"><span class="st0">ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0:ipaq:usb0 <span class="es0">\</span></span></div></li>
<li class="li1"><div class="de1"><span class="st0">console=ttyS0,115200n8&quot;</span></div></li>
<li class="li1"><div class="de1">bootlinux </div></li></ol></div></div></div></p>



<h2>Installer des softs via Linux</h2>

<p>La vraie galère de base avec un iPaq c'est que tout le monde semble persuadé que nous utilisons tous ActiveSync. Hors bien évidement, ce dernier n'existe pas sous Linux. Alors comme toujours il faut feinter...</p>

<h3>Méthode n°1 - Wine</h3>
<p>Wine est un "émulateur" de windows sous Linux. Il permet donc d'exécuter des application windows avec plus ou moins de bonheur. Pour simplifier la configuration de wine, le bon plan est d'utiliser WineTools <external  href="http://www.von-thadden.de/Joachim/WineTools/">http://www.von-thadden.de/Joachim/WineTools/)</external>. Dans sa version 2.1.2 (le package Mandrake est téléchargable sur le net en googlisant "winetools-2.1.2 rpm") l'auteur préconise l'utilisation de la version 20041019 (googliser wine-20041019-mdk.i586.rpm). Pour moi tout autre combinaison donne des problèmes.</p>

<p>Il suffit ensuite d'installer les deux RPM et de lancer wt2 (<div class='code-container-area'><div class='code-container'><div class="code"><span class="sy0">/</span>usr<span class="sy0">/</span><span class="kw3">local</span><span class="sy0">/</span>bin<span class="sy0">/</span>wt2</div></div></div>) en tant qu'utilisateur (pas root !!!). Se laisser guider dans l'ordre du menu pour installer le fake windows, DCOM98 et IE6.</p> 

<p>Ensuite, télécharger <div class='code-container-area'><div class='code-container'><div class="code">ActiveSync</div></div></div> chez M$, et, en ligne de commande, taper wine <div class='code-container-area'><div class='code-container'><div class="code">MSASYNC.EXE</div></div></div>, l'installation se passe sans soucis. Il suffit d'annuler lorsque que le soft tente la recherche de l'iPaq.</p> 

<p>Une fois cette installation de base terminée, plus de soucis pour le reste. Par exemple télécharger Adobe Accrobat Reader 2.0 pour PPC, taper wine abobereader2_ppc.exe, se laisser guider jusqu'à la fin. Ensuite, il suffit d'aller dans <div class='code-container-area'><div class='code-container'><div class="code">~<span class="sy0">/</span>.wine<span class="sy0">/</span>drive_c<span class="sy0">/</span>program files<span class="sy0">/</span>Microsoft ActiveSync</div></div></div> pour y trouver généralement un sous dossier du nom de l'install (dans ce cas adobe reader) et d'y trouver le ou les .cab à télécharger sur le palm (via RAPIP sous kde avec wince, cf chapitre suivant). </p>

<h3>Méthode n°2 - Orange</h3>
<p>L'idée est ici d'extraire les fichiers .cab contenus dans les install de type installShied. Un utilitaire permet de faire cela pour Linux, il s'agit d'Orange.</p>

    ]]></content>
  </entry>
</feed>
