unix4fun

Aller au contenu | Aller au menu | Aller à la recherche

mardi 2 décembre 2008

aie! j'ai mal!

aie!

Quand on est stupide comme moi...

Je cherchais a comprendre des choses, jusque la rien de surprenant, j'ai commence a matter comment je pourrais differencier certains pattern d'autres, au sein d'un meme fichier.

C'est un probleme "classique", je sais!, vous avez une reponse, j'imagine bien (au pire commentez), mais comme je suis un peu stupide, j'essaye de comprendre.

Alors en posant la question autour de moi, une des reponses m'a intrigue, c'est: "mesure l'entropie!"

Wai alors pour la definition, je dois vous avouer, apres qqes debats et discussions sur la definition de l'entropie, il y en a qqes unes, voir meme pleins, ca depend des donnees a analyser, de la taille de la lune, de la couleur de la farine apres une journee au soleil, etc.. bref (allez voir wikipedia, theorie de l'information blablabla)...

Mais surtout aujourd'hui on m'a parle d'un outil "stan" qui semblerait pourrait donner l'illustration d'une (parmis d'autres) reponse a mes questions, alors je matte et je fais un test tout bete :

$ ./stan -b test.txt.gz
General statistics for the stream, bytes 75
   Arithmetic mean:       101.786667  ~  0x65(e)
   Median:                115.000000  ~  0x73(s)
   Deviation:              69.466979  ~  0x45(E)
   Chi-Square test:       520.023529
   Entropy per byte:        5.241939
   Correlation co.:         0.390945
[...]

VS

$ ./stan -b testrnd
General statistics for the stream, bytes 75
   Arithmetic mean:       113.720000  ~  0x71(q)
   Median:                106.000000  ~  0x6a(j)
   Deviation:              74.741610  ~  0x4a(J)
   Chi-Square test:       205.423529
   Entropy per byte:        5.925420
   Correlation co.:        -0.148000
[...]

Et on observe qqes "debut" de difference... c'est marrant, maintenant faut essayer de comprendre... quand on est stupide comme moi...

$ vim stan.c bits.c pattern.c stats.c
[...]

vendredi 17 octobre 2008

Détection rapide de protocole layer7

Alors dans le cadre de mon job je suis tombé sur un article qui m'intéresse. Peut-être que ça sera le cas pour toi aussi, ami lecteur. La problématique est la suivante : sur des gros liens (Gbps typiquement), comment reconnaître les applications utilisées ? Ça peut être pour un admin, qui cherche à identifier les flux qui circulent sur son réseau, ou autre.

La technique "de base" consiste à inspecter les payloads à la recherche d'une signature applicative (à la snort, ou qosmos en propriétaire et plus exhaustif). Le "hic", c'est que sur des liens chargés, ça rame sa mère. Ou alors faut se payer la super solution corporate pouic pouic de Qosmos à 50KEUR, avec une bécane de 32 procs, des cartes DAG (Endace) d'acquisition et tout le bousin.

Mais nous, chez Unix4fun, on est pauvres, et on pense à la plèble, alors on écarte cette solution. Durant ma visite du Web je suis donc tombé sur un article pas mal, qui explique comment en 4 ou 5 paquets TCP (hors établissement de la connexion, SYN, SYN/ACK, ACK), on peut taguer un flux comme étant telle ou telle application, avec un taux d'erreur acceptable (de l'ordre de 5%). L'idée est évidemment d'utiliser des mécanismes d'apprentissage statistique (chaînes de Markov, etc) ; mais avec ça on n'est pas avancé, le problème étant de mesurer et d'apprendre sur les bonnes métriques. Ici, on s'inquiète uniquement de la taille des payloads, et du "sens" du paquet (client -> serveur, ou serveur -> client), qui est un facteur discriminant supplémentaire, et indépendant du contexte (type de réseau, type d'appli, besoin de performance, etc).

Bref, c'est ma pause déjeuner au bureau, je vais pas m'attarder.

L'article Early Application Identification

La thèse sur le sujet (même auteur principal) : Classification temps réel d'applications sur l'Internet. Elle se lit vite, et la dernière partie est en français, pour madame Michu, mais sans les formules et un peu allégée.

samedi 13 septembre 2008

A mon stage chez l'agence tout risque, j'ai appris a bricoler des clotures...

Mac OS X ne possede pas pthread_barrier_t et j'ai vu d'autres problemes avec d'autres "unix", donc j'ai fait mes "barriers" "maisons", on verra bien quand je devrais porter sous win32...

c'est ICI, comments are welcome...

have fun!.

mercredi 13 août 2008

pthread pour les NULL

Je code comme un boulet et en ce moment j ai pleins de blems de "scheduling" et de "concurrence", mon code n'est pas thread safe et je dois jongler avec differentes conditions plus ou moins synchro mais qui sont hyper importantes.

bref comme je galerais un peu, nitrouze m'a montre ce petit reminder sympa pour me rappeler les bases des POSIX threads... y a pas a dire je suis un boulet et y a pas de secret si on pratique pas, ca reste pas..

HTH, ++

mercredi 2 juillet 2008

L'appel du 2 Juillet 2008!

J'ai l'air con je croyais que getaddrinfo(3) allait fonctionner pareil partout et voila que je constate la chose bete et suivante,

  • NetBSD:
[1] eau@bearcave:~ 
$ telnet 31
31: No address associated with hostname
[2] eaul@bearcave:~ 
$
  • Linux:
eau@turtle ~ $ telnet 31
Trying 0.0.0.31...
telnet: Unable to connect to remote host: Invalid argument
eau@turtle ~ $ 

putain quoi mais pourquoi ce con il se dit "tiens 31, ca doit etre 0.0.0.31.." quelle tache! si qqun a des recommendations ou une explication, car du coup pour verifier que j ai a faire a un host, je fait un getaddrinfo(3) et si rc != 0 bah c'est pas un host, mais la Linux (menelusme(tm)) il me retourne 0 a chaque fois... ca suce..

gmrlmglrmgrlm cherchage de solution... silvouple AIDEZZZZZZZZZZ MOIIIIIII!!!! JE SUIS UNE TANCHEEEE BORDEL!!!!

Linux, Cisco, Poils!

C'est peut etre "vieux" (y'en a qui aiment dire ca le plus souvent possible pour bien souligner qu'il sont tres contemporains), en tout cas, moi je connaissais pas et je trouve ca fun, fendart meme, mouahhahah j'en ris :)

uClinux sur du cisco muah!

Y a des gens qui commencent des trucs sexy, je suis sur qu'il y a ou va y avoir une suite c'est pas possible! ca date de 2001! (je faisais des avions en papier en disant que j'etais trop fort a cet epoque).

Et puis y a ca aussi.

have fun..

mercredi 25 juin 2008

TCP on steroids et encore d'autres trucs

Si toi aussi tu fais du code reseau en ce moment et que tu cherches toute sortes d'idees, tips et ce genre de choses Il n'y a pas longtemps la grande, la celebre USENIX conference a eu lieu avec son lots d'idees a reflechir-o-pompaz.

Peut etre que tu trouvera ce trucs interessant:

http://www.usenix.org/events/usenix08/tech/full_papers/menon/menon_html/index.html

Sinon y a ca qui traine aussi...

enjoy!

vendredi 23 mai 2008

Sexy Ksplice (girls ?)

Booon, alors je suis tombé sur un petit truc rigolo. Un petit soft, qui fait la modification de code à runtime dans le noyau linux, c'est persistant, qui plus est ! Au prochain reboot ça restera en place. Idéal par exemple pour faire des patches de sécurité sans engendrer un reboot. Les esprits vifs (et pervers ?) feront tout de suite des remarques du genre "haaaan, et pis comme ça c'est plus propre que d'écrire dans /dev/kmem", euh, certes, certes. Petits canaillous.

Le lien, par ici (sponsorisé par le MIT).

samedi 3 mai 2008

OpenBSD, PF, PHP, etc...

Un blog avec un projet sympa linked, des experiences a la noix d'installation d'OpenBSD dans des conditions plus ou moins relou, des idees et un projet potentiellement utile..

bref marrant et a lire..

mardi 29 avril 2008

l'ambition mon enfant, te perdra!

un projet ambitieux d'apres la description, a matter de plus pres...

http://people.csail.mit.edu/fredette/tme/

(trouve sur le blog de mr hubertf)

jeudi 27 mars 2008

IPv6 et algoflash, comment utiliser de l'engrai a fougere sur mon code merdique...

Alors ca fait qqes temps que je codouille en v6 etc... j'ai qqes soucis mais globalement c'est assez simple de faire du code clean et dual stack en C, j'ai pas encore teste en python.

J'ai une question a tout les gurus-ultra-leet-v6 tout ca.. je cherche une solution au moyen de faire des filtres pcap avance en ipv6, et ca ne semble pas possible, cf tcpdump(8) :

[...]
  Proto is one of ether, fddi, tr, wlan, ppp,  slip,  link,
  ip,  arp,  rarp, tcp, udp, icmp or ip6, and indicates the
  protocol layer for the index  operation.   (ether,  fddi,
  wlan,  tr,  ppp,  slip  and  link  all  refer to the link
  layer.) Note that tcp, udp and other upper-layer  proto-
  col  types  only  apply  to  IPv4, not IPv6 (this will be
  fixed in the future)
[...]

donc si qqun a une idee...

Voila la ptite doc sympa ipv6 prog tout ca :

* http://www.euchinagrid.org/IPv6/IPv6_presentation/Introduction_to_IPv6_programming.pdf

Qu'on va mirrorer gentillement paske c'est bien utile quand meme :

* introduction_to_v6_prog.pdf

vendredi 21 mars 2008

FNV je sais pas si c'est bien mais on va voir!

Alors je sais pas ce que ca vaut, mais j'avais besoin d'un hash sur un petit bloc de donnees et de maniere repetee, et surtout dont le resultat reste sur 32 ou 64bits avec une bonne distribution pour "eviter","limiter" les collisions.

Apres avoir teste sha1 et md5, et bon en le rapellant trop souvent c'est quand meme un ptit peu lent.

poz ou ppr m'ont parle de ca, y a longtemps il me semble :

http://isthe.com/chongo/tech/comp/fnv/

si y a des gens avec de l'experience et un peu matheux, qui veulent bien commenter :)

mardi 26 février 2008

convi debug disass et consorts..

Prrrrt,

Je viens de decouvrir ce projet en lisant un forum convivial

http://radare.nopcode.org/

Une suite de tools autour d'un editeur hexa avance, pour faire du disass, du tracing etc... il est meme capable de bosser sur du java bytecode et/ou des format PE.

Enfin voila marrant, je regarde et je teste pour le moment..

lundi 25 février 2008

sunstudio, gcc, dwarf, sparc et petits nains de jardins...

Des p'tites infos et projets interessants au cours de mon joujou avec ma sunblade 1500.

Deja je me suis fait chier avec SunStudio mais en fait j'ai decouvert ca (trop tard!): http://cooltools.sunsource.net/gcc/

Pour les petits documents utiles :

Sinon j'imagine que comme d'hab je suis le dernier a decouvrir ca mais y a pleins de trucs convi a lire :

http://wikis.sun.com/dashboard.action

samedi 2 février 2008

BPF, LSF, DLPI, et bla!

Des ptits links parfois utiles pour tenter de faire du SOCK_RAW, voir du link level et de maniere optimal, de maniere portable il y a libpcap (mais ce n'est pas toujours le plus efficace), j'ai appris a propos de LSF (qui est l'equivalent de BPF pour linux), et a propos d'autres... etc.. etc.. solaris bla

Si ca peut en aider d'autres :

http://www.faqs.org/faqs/internet/t...

http://www.tcpdump.org/papers/bpf-u...

http://www.linuxjournal.com/article...

http://www.opensolaris.org/os/proje...

http://www.opensolaris.org/os/proje...

Shazam!!!

Update 03/02/2008:

un autre paper sur une precedente alternative au device polling. (merci poz pour le rappel)

mercredi 30 janvier 2008

au royaume de suede on aime les trucs coupes en tranches, comme par exemple : le saumon!

Y a des gens qui comme moise (toute ressemblance serait purement fortuite) qui arrivent a separer la mer en deux pour faire passer des trucs, parait que moise c'etait pour faire passer des gens (eh oui moise est un passeur, mais il avait rendu le passage industriel avant meme qu'on y pense!)

Alors la y a Kristaps Džonsons qui fait pareil avec du code, il matte le code, hope ca se separe en deux, meme en trois, attendez.. c'est quoi ces histoires !?!?!?

(en gros il a pris un NetBSD et il a fait un truc qui sent les "zone" de solaris ou jail chez freebsd ( oui oui c'est pas implemente pareil, la granularite est pas pareil, c'est pas le meme systeme tout ca tout ca, mais je parle de concepts...))

sinon y a des projets "un peu" similaire ou related genre : ca ou ca

mercredi 23 janvier 2008

oula ca se reveille!

He beh, apres des tas de POST, de papers, de coding practice dans tout les sens, le CERT nous sort ca :

secure C coding practice

Je suis en train de parcourir toutes ces choses

D'ailleurs concernant les memory management stuff... j'avais lu un truc la

hope it helps.

mardi 22 janvier 2008

const et volatile!

moi qui refais du C en ce moment, alors me voila a me replonger avec plaisir la dedans, je savais plus ce que ca definissait exactement const et volatile, qqes souvenirs, j'ai vite relu ca rapidos et pouf c'est revenu..

have fun!

libconfuse : la gestion simplifiée de vos fichiers de conf.

Youpla les gens, voilà une petite news de rien du tout pour donner signe de vie.

Je sais pas pour vous, mais ça me fatigue de devoir utiliser le format XML pour les fichiers de conf' des softs que je développe. Alors je me suis mis à utiliser une petite bibliothèque ma foi fort simplathique (mot-valise : simple et sympathique).

Ici, on a un format simple, mais on peut avoir des choses quand même plus complexes. Et surtout, c'est très facile à utiliser, dans vos programmes.

La voilà, la libconfuse.

- page 2 de 4 -