<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>C0daz on iMil.net</title>
    <link>http://imil.net/blog/tags/c0daz/</link>
    <description>Recent content in C0daz on iMil.net</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 03 Dec 2009 19:31:15 +0000</lastBuildDate>
    <atom:link href="http://imil.net/blog/tags/c0daz/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>t&#39;as fait de l&#39;autoQUOI ??</title>
      <link>http://imil.net/blog/posts/2009/tas-fait-de-lautoquoi/</link>
      <pubDate>Thu, 03 Dec 2009 19:31:15 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2009/tas-fait-de-lautoquoi/</guid>
      <description>&lt;p&gt;Ceux qui me connaissent et qui ont lu le post précédent ont peut-être cru à l&amp;rsquo;imposture: &lt;em&gt;&amp;quot;. Basculement vers autoconf pour la génération du Makefile&amp;quot;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;iMil ? c&amp;rsquo;est bien toi ?&lt;/p&gt;&#xA;&lt;p&gt;Oui alors attention hein, pas d&amp;rsquo;affolement. Il s&amp;rsquo;agit réellement d&amp;rsquo;une utilisation très très &lt;em&gt;light&lt;/em&gt; de ces outils que j&amp;rsquo;évite habituellement comme la peste. Tellement &lt;em&gt;light&lt;/em&gt; que seul &lt;a href=&#34;http://www.gnu.org/software/hello/manual/autoconf/&#34;&gt;autoconf&lt;/a&gt; m&amp;rsquo;a été utile.&lt;/p&gt;&#xA;&lt;p&gt;Mais reprenons. Ceux qui ont eu le courage de se plonger dans le code de &lt;a href=&#34;http://imil.net/pkgin/&#34;&gt;pkgin&lt;/a&gt; se rappellent peut-être de ce genre de choses :&lt;/p&gt;</description>
    </item>
    <item>
      <title>snprintf(surprise, BUFSIZ, &amp;quot;prout%s&amp;quot;, surprise);</title>
      <link>http://imil.net/blog/posts/2009/snprintfsurprise-bufsiz-prouts-surprise/</link>
      <pubDate>Tue, 19 May 2009 21:58:46 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2009/snprintfsurprise-bufsiz-prouts-surprise/</guid>
      <description>&lt;p&gt;Cet après midi, j&amp;rsquo;ai eu une mauvaise surprise. Je fus en effet étonné de constater qu&amp;rsquo;en compilant &lt;a href=&#34;http://imil.net/pkgin&#34;&gt;pkgin&lt;/a&gt; sous GNU/Linux, les appels du type :&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;tronquaient &lt;code&gt;a&lt;/code&gt; avec uniquement &lt;code&gt;unechaine&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Evidemment, mon premier reflexe fut de blâmer GNU/Linux puisque ce code passait sans aucun soucis sur NetBSD, DragonFly BSD et même Solaris. Et pourtant. C&amp;rsquo;est &lt;em&gt;gl&lt;/em&gt; qui m&amp;rsquo;informa que &lt;a href=&#34;http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf&#34;&gt;ce document issu de l&amp;rsquo;ISO et l&amp;rsquo;IEC&lt;/a&gt; explique clairement que le fait d&amp;rsquo;appeler &lt;code&gt;snprintf()&lt;/code&gt; de la sorte rendait le résultat &amp;ldquo;imprévisible&amp;rdquo;. Dont acte.&lt;/p&gt;</description>
    </item>
    <item>
      <title>la magie des SLIST</title>
      <link>http://imil.net/blog/posts/2009/la-magie-des-slist/</link>
      <pubDate>Sat, 14 Mar 2009 19:21:05 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2009/la-magie-des-slist/</guid>
      <description>&lt;p&gt;Il y a 5 ans de cela, &lt;a href=&#34;http://imil.net/docs/slists.txt&#34;&gt;je vous entretenais sur la beauté des SLIST&lt;/a&gt;, un concept issu du monde BSD permettant de facilement manipuler des listes chainées dans votre code C sans avoir à réinventer la roue à chaque code.&lt;/p&gt;&#xA;&lt;p&gt;Comme je n&amp;rsquo;avais plus manipulé ce type d&amp;rsquo;objet depuis un certain temps, je me suis replongé dans ce petit tutoriel, mais je lui ai trouvé un manque que je m&amp;rsquo;apprète à combler ici même.&lt;/p&gt;</description>
    </item>
    <item>
      <title>char *slurp(const char *url)</title>
      <link>http://imil.net/blog/posts/2009/char-slurpconst-char-url/</link>
      <pubDate>Tue, 10 Mar 2009 12:12:37 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2009/char-slurpconst-char-url/</guid>
      <description>&lt;p&gt;Pour mon &lt;a href=&#34;http://cvs.gcu.info/viewvc.py/pkg_dry/&#34;&gt;projet top secret que j&amp;rsquo;ai&lt;/a&gt;, j&amp;rsquo;avais besoin de télécharger un fichier, en C, via FTP ou HTTP. En cherchant ce qui est fait dans &lt;a href=&#34;http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/pkgtools/pkg_install/&#34;&gt;pkg_install&lt;/a&gt;, et plus particulièrement dans &lt;a href=&#34;http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/pkgtools/pkg_install/files/admin/audit.c&#34;&gt;admin/audit.c&lt;/a&gt;, j&amp;rsquo;ai trouvé un bon exemple d&amp;rsquo;utilisation de la &lt;a href=&#34;http://netbsd.gw.com/cgi-bin/man-cgi?fetch+3+NetBSD-current&#34;&gt;libfetch&lt;/a&gt;, dont le man est à mon avis complètement indigeste.&lt;/p&gt;&#xA;&lt;p&gt;Petit résumé.&lt;/p&gt;&#xA;&lt;p&gt;Afin de visualiser un code complet et fonctionnel sur l&amp;rsquo;utilisation de la &lt;em&gt;libfetch&lt;/em&gt;, le fichier &lt;code&gt;audit.c&lt;/code&gt; précedemment cité fera reference.&lt;/p&gt;&#xA;&lt;p&gt;Considérons une fonction, &lt;em&gt;fetch_url&lt;/em&gt; qui prendra en paramètre une URL. Afin d&amp;rsquo;utiliser la &lt;em&gt;libfetch&lt;/em&gt;, nous auront besoin du header &lt;code&gt;fetch.h&lt;/code&gt;. Voici donc le début de notre fichier contenant la fonction &lt;em&gt;fetch_url&lt;/em&gt; :&lt;/p&gt;</description>
    </item>
    <item>
      <title>La magie de l&#39;ELF</title>
      <link>http://imil.net/blog/posts/2008/la-magie-de-lelf/</link>
      <pubDate>Wed, 10 Dec 2008 16:01:00 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2008/la-magie-de-lelf/</guid>
      <description>&lt;p&gt;En comparant &lt;a href=&#34;http://beastiebox.sourceforge.net/&#34;&gt;le projet qui m&amp;rsquo;obsède jour et nuit&lt;/a&gt; et les outils similaires déjà existants (&lt;code&gt;crunchgen(1), rescue&lt;/code&gt;), j&amp;rsquo;en suis venu à me poser des questions sur le cas d&amp;rsquo;un mode &amp;ldquo;full static&amp;rdquo;. Pour mémoire, BeastieBox &amp;ldquo;trouve&amp;rdquo; la fonction à appeler fonction de &lt;code&gt;argv[0]&lt;/code&gt;, et je pars du principe que chaque nom de fonction doit être construit dynamiquement. Ce &lt;a href=&#34;http://mollacademy.gcu.info/doku.php?id=c:dlopen_self&#34;&gt;tour de passe-passe&lt;/a&gt; est facilement geré par les fonctions &lt;code&gt;dlopen(3) / dlsym(3)&lt;/code&gt; dans le cas d&amp;rsquo;un binaire compilé dynamiquement, mais quid d&amp;rsquo;un binaire &lt;code&gt;beastiebox&lt;/code&gt; compilé à l&amp;rsquo;aide du swtich &lt;code&gt;-static&lt;/code&gt; ? Point de &lt;code&gt;ld.so_elf&lt;/code&gt; à la rescousse ici, la seule solution qui m&amp;rsquo;est apparue&amp;hellip; c&amp;rsquo;est d&amp;rsquo;attaquer le binaire comme le fait précisemment &lt;code&gt;ld.so_elf&lt;/code&gt;, en &lt;code&gt;mmap&lt;/code&gt;&amp;lsquo;ant le binaire et en l&amp;rsquo;adressant via les structures ELF.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Duplication de symboles, la bonne methode</title>
      <link>http://imil.net/blog/posts/2008/duplication-de-symboles-la-bonne-methode/</link>
      <pubDate>Sat, 06 Dec 2008 16:03:09 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2008/duplication-de-symboles-la-bonne-methode/</guid>
      <description>&lt;p&gt;On oublie le post ci dessous. En effet, après avoir posté le resultat de mes travaux sur &lt;em&gt;tech-userlevel@&lt;/em&gt;, j&amp;rsquo;ai appris une astuce des plus magiques. Arnaud Lacombe me dit dans une réponse :&#xA;_&#xA;Just looking quickly at the code, you can avoid the &amp;ldquo;#ifdef BBOX commant_&lt;!-- raw HTML omitted --&gt;() #else main() #endif&amp;rdquo; heavy logic and the &lt;code&gt;commonfunc.sh&#39; hack by using nm(1), objcopy(1) and symbol renaming as done by crunchgen(1). &amp;lt;/foo&amp;gt;_ Je regarde donc comment s&#39;y prend le gaillard de &lt;/code&gt;crunchgen(1)` pour eviter les conflits de symboles et je vois ceci :&lt;/p&gt;</description>
    </item>
    <item>
      <title>cvs co ya7ans</title>
      <link>http://imil.net/blog/posts/2008/cvs-co-ya7ans/</link>
      <pubDate>Sat, 26 Jan 2008 17:05:43 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2008/cvs-co-ya7ans/</guid>
      <description>&lt;p&gt;fouyou, ce voyage dans le passé&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Il y a 7 ans, je commettais &lt;a href=&#34;http://imil.net/eldap/&#34;&gt;ceci&lt;/a&gt;. EasyLDAP était une librairie qui permettait d&amp;rsquo;implémenter une interaction LDAP en C assez simplement. Mais son but final était plus concret; en effet, en 2001, FreeBSD ne possédait pas de port &lt;code&gt;nss_ldap&lt;/code&gt;, son architecture &lt;em&gt;nss&lt;/em&gt; était quelque peu aride, et l&amp;rsquo;un de mes projets dans &lt;a href=&#34;http://www.cw.com/&#34;&gt;mon job de l&amp;rsquo;époque&lt;/a&gt;, c&amp;rsquo;était de trouver le moyen de centraliser l&amp;rsquo;authentification de nos serveurs FreeBSD, et de préférence, via LDAP.&#xA;La sale magouille que j&amp;rsquo;avais trouvé à l&amp;rsquo;époque, c&amp;rsquo;était d&amp;rsquo;utiliser la variable &lt;code&gt;LD_PRELOAD&lt;/code&gt; et de préloader, donc, la librairie &lt;em&gt;eldap&lt;/em&gt; dans laquelle j&amp;rsquo;avais redéfini les fonctions &lt;code&gt;getpwnam&lt;/code&gt;, &lt;code&gt;getpwuid&lt;/code&gt;, &lt;code&gt;getgrnam&lt;/code&gt; etc etc&amp;hellip;&#xA;Et ça marchait ! :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>à peine classe</title>
      <link>http://imil.net/blog/posts/2007/a-peine-classe/</link>
      <pubDate>Mon, 03 Sep 2007 18:01:37 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2007/a-peine-classe/</guid>
      <description>&lt;p&gt;Bon c&amp;rsquo;est pas encore super brillant, j&amp;rsquo;imagine que ça fera hurler les puristes, mais au cas ou quelqu&amp;rsquo;un aurait besoin d&amp;rsquo;une toute petite classe de rien du tout pour manipuler des fichiers de conf &amp;ldquo;basiques&amp;rdquo; du type :&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai pondu un truc &lt;a href=&#34;http://imil.net/code/simpleconf.py&#34;&gt;ici&lt;/a&gt;.&#xA;Ça s&amp;rsquo;utilise comme ça :&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;et magie :&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;Améliorations bienvenues toussa.&lt;/p&gt;</description>
    </item>
    <item>
      <title>fsHhshhhshhhHHh tsssk tssk fFSShhhsh</title>
      <link>http://imil.net/blog/posts/2007/fshhshhhshhhhhh-tsssk-tssk-ffsshhhsh/</link>
      <pubDate>Sun, 26 Aug 2007 22:21:28 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2007/fshhshhhshhhhhh-tsssk-tssk-ffsshhhsh/</guid>
      <description>&lt;p&gt;Alors voila. Y&amp;rsquo;a bien quoi, 3 ans ? 4 ans ? que moult lutins me chantaient les louanges de &lt;a href=&#34;http://python.org/&#34;&gt;python&lt;/a&gt;, mais flemme, manque de proj et de temps aidant, je snobais le langage au serpent, tout juste capable de gentiment hacker quelques codes existants, rien d&amp;rsquo;excitant. Et puis arrive ce petit proj au boulot, un truc sympa, pas bien méchant, qui me ferait manipuler des IO, des connexions interactives, un proj avec un potentiel futur relativement interessant. Du coup, moi qui aime me coller dans la merde, je dis fièrement &amp;ldquo;ouais allez en python&amp;rdquo;. Coup&amp;rsquo;d&amp;rsquo;pression coup&amp;rsquo;d&amp;rsquo;pression.&#xA;Evidemment, je commence par &lt;a href=&#34;http://diveintopython.adrahon.org/&#34;&gt;Dive Into Python&lt;/a&gt;, que j&amp;rsquo;accroche pas, mais alors &lt;em&gt;pas_du_tout&lt;/em&gt;. Puis je m&amp;rsquo;attaque au classique &lt;a href=&#34;http://www.cifen.ulg.ac.be/inforef/swi/python.htm&#34;&gt;Apprendre à programmer avec python&lt;/a&gt;. Juste enorme, excellente ressource qui met les idées bien au clair, ce fût ma révélation. J&amp;rsquo;ai poursuivi en achetant &lt;a href=&#34;http://www.amazon.fr/Au-coeur-Python-Notions-avanc%C3%A9es/dp/2744021954&#34;&gt;ce bouquin&lt;/a&gt;, et là, je dois marcher en me penchant quand je sors du metro et que je finis la lecture de 3/4 pages. Programmation reseau, &lt;em&gt;Twisted&lt;/em&gt;, multithreading et autres sujets plus kiffants les uns que les autres. Là dessus arrivent les délicieux conseils des experimentés pythonneurs tahorg, dzen, yota, mial, anhj, Klyr et j&amp;rsquo;en passe, et je finis par claquer un code pas-si-dégueu pour un coup d&amp;rsquo;essai. Allez, je résiste pas au plaisir de paster la dernière astuce issue du canal, une boucle qui construit des noms de fonctions en addictionnant des strings puis les rend &lt;em&gt;callable&lt;/em&gt;, une tuerie &amp;ldquo;classique&amp;rdquo; :&lt;/p&gt;</description>
    </item>
    <item>
      <title>back to c0daze</title>
      <link>http://imil.net/blog/posts/2007/back-to-c0daze/</link>
      <pubDate>Sat, 03 Mar 2007 02:30:36 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2007/back-to-c0daze/</guid>
      <description>&lt;p&gt;Pour déconner j&amp;rsquo;ai pondu ça ce soir: &lt;a href=&#34;http://imil.net/fon/infon.c&#34;&gt;infon.c&lt;/a&gt;&#xA;Il s&amp;rsquo;agit d&amp;rsquo;un bête petit serveur TCP à compiler avec &lt;a href=&#34;http://imil.net/docs/fonera-build.txt&#34;&gt;l&amp;rsquo;environnement de developpement de la Fonera&lt;/a&gt; et qui répond pour le moment aux requetes l[oad] et m[em]. Genre comme ça :&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;Tu l&amp;rsquo;auras compris ami lecteur, tout ce qui manque à ce bidule, c&amp;rsquo;est un frontend sur un desktop qui se glissera gentiment dans un gnome-panel ou equivalent. Tu t&amp;rsquo;ennuies ?&lt;/p&gt;</description>
    </item>
    <item>
      <title>mangemoish</title>
      <link>http://imil.net/blog/posts/2007/mangemoish/</link>
      <pubDate>Mon, 26 Feb 2007 23:34:52 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2007/mangemoish/</guid>
      <description>&lt;p&gt;Trop lourd ssh ? qu&amp;rsquo;à cela ne tienne ! &lt;a href=&#34;http://www.packetstormsecurity.nl/UNIX/penetration/tsh-0.6.tgz&#34;&gt;tsh&lt;/a&gt; et son serveur &lt;em&gt;tshd&lt;/em&gt; ne pesent chacun que 60K tout mouillés :)&#xA;Avec eux, retournez en 1978 et hardcodez un password dans un .h, à mort les fichiers de conf ! port d&amp;rsquo;ecoute et shell pat defaut à changer ? on recompile.&lt;/p&gt;&#xA;&lt;p&gt;Allez, juste pour le f[ou]n, on ajoute :&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;au Makefile fourni.&#xA;On edite &lt;em&gt;tsh.h&lt;/em&gt;, on modifie &lt;em&gt;char *secret = &amp;ldquo;gnagnagna&amp;rdquo;&lt;/em&gt; avec son mot de passe spéciale lose favori, on remplace :&lt;/p&gt;</description>
    </item>
    <item>
      <title>blagounette du dimanche</title>
      <link>http://imil.net/blog/posts/2007/blagounette-du-dimanche/</link>
      <pubDate>Sun, 25 Feb 2007 18:16:03 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2007/blagounette-du-dimanche/</guid>
      <description>&lt;p&gt;Alors que je me disais qu&amp;rsquo;il serait assez convivial d&amp;rsquo;avoir un serveur ssh un peu plus costaud que &lt;em&gt;dropbear&lt;/em&gt; sur ma Fonera, je me lance dans la cross-compil d&amp;rsquo;OpenSSH. Dans les grandes lignes ça donne ça :&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;En ayant préalablement installé l&amp;rsquo;environnement de compilation comme expliqué trois posts plus bas.&#xA;Je me retrouve donc avec &lt;em&gt;ssh, sshd etc&lt;/em&gt; compilés, et comme l&amp;rsquo;espace memoire est particulièrement restreint (c&amp;rsquo;est ce qui motive la foultitude de flags du &lt;em&gt;configure&lt;/em&gt;), je &lt;em&gt;strip&lt;/em&gt; puis &lt;em&gt;du -sh&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>fais des trucs pas très nets avec ta foune</title>
      <link>http://imil.net/blog/posts/2007/fais-des-trucs-pas-tres-nets-avec-ta-foune/</link>
      <pubDate>Tue, 20 Feb 2007 00:17:01 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2007/fais-des-trucs-pas-tres-nets-avec-ta-foune/</guid>
      <description>&lt;p&gt;Allez, trois ptites contribs, des trucs glânés à droite à gauche, des trucs testés, des experiences avec ce petit bout de machine qui m&amp;rsquo;empeche de dormir depuis quelques jours :&lt;/p&gt;&#xA;&lt;p&gt;. &lt;a href=&#34;http://imil.net/docs/fonera-ssh.txt&#34;&gt;Activer le ssh sur sa Fonera&lt;/a&gt;&#xA;. &lt;a href=&#34;http://imil.net/docs/fonera-cifs.txt&#34;&gt;Montage cifs depuis une Fonera&lt;/a&gt;&#xA;. &lt;a href=&#34;http://imil.net/docs/fonera-build.txt&#34;&gt;Compiler une application pour la Fonera&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Have fun&lt;/p&gt;</description>
    </item>
    <item>
      <title>tu t&#39;ennuies ?</title>
      <link>http://imil.net/blog/posts/2005/tu-tennuies/</link>
      <pubDate>Wed, 04 May 2005 10:26:44 +0000</pubDate>
      <guid>http://imil.net/blog/posts/2005/tu-tennuies/</guid>
      <description>&lt;p&gt;ami visiteur en mal de contribution, lis ce qui suit.&#xA;Alors voila, j&amp;rsquo;ai une manie très accaparante, je met les mains dans tout et n&amp;rsquo;importe quoi à la fois. Résultat, j&amp;rsquo;ai un tas de projets en standby, tous fonctionnels et releasés, mais très faiblement maintenus.&#xA;J&amp;rsquo;ai fait une page dédiée aux projets &amp;ldquo;en cours&amp;rdquo;, &lt;a href=&#34;http://imil.net/wp/?page_id=21&#34;&gt;voir &amp;ldquo;projects&amp;rdquo; ci-dessus&lt;/a&gt;.&#xA;Dans cette liste de projets, voici les contributions les plus critiques dont j&amp;rsquo;ai besoin :&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
