
Tag - code
Quand on est stupide comme moi...
Par eau le mardi 2 décembre 2008, 15:02 - geeking
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
Par poz le vendredi 17 octobre 2008, 12:28 - geeking
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...
Par eau le samedi 13 septembre 2008, 03:43 - geeking
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
Par eau le mercredi 13 août 2008, 23:11 - geeking
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!
Par eau le mercredi 2 juillet 2008, 23:27 - geeking
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!
Par eau le mercredi 2 juillet 2008, 14:59 - geeking
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 :)
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
Par eau le mercredi 25 juin 2008, 23:56 - geeking
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 ?)
Par poz le vendredi 23 mai 2008, 10:56 - geeking
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...
Par eau le samedi 3 mai 2008, 11:11 - geeking
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!
Par eau le mardi 29 avril 2008, 12:23 - geeking
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...
Par eau le jeudi 27 mars 2008, 21:47 - geeking
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!
Par eau le vendredi 21 mars 2008, 11:16 - geeking
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..
Par eau le mardi 26 février 2008, 13:33 - geeking
Prrrrt,
Je viens de decouvrir ce projet en lisant un forum convivial
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...
Par eau le lundi 25 février 2008, 00:51 - geeking
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 :
- http://wikis.sun.com/display/SunStudio/Dwarf+Differences+between+Sun+Studio+and+GCC+compilers
- http://developers.sun.com/sunstudio/documentation/ss11/mr/READMEs/c++_faq.html
Sinon j'imagine que comme d'hab je suis le dernier a decouvrir ca mais y a
pleins de trucs convi a lire :
samedi 2 février 2008
BPF, LSF, DLPI, et bla!
Par eau le samedi 2 février 2008, 01:16 - geeking
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!
Par eau le mercredi 30 janvier 2008, 10:40 - geeking
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!
Par eau le mercredi 23 janvier 2008, 19:24 - geeking
He beh, apres des tas de POST, de papers, de coding practice dans tout les sens, le CERT nous sort ca :
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!
Par eau le mardi 22 janvier 2008, 22:51 - geeking
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.
Par poz le mardi 22 janvier 2008, 14:01 - geeking
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.
« billets précédents - page 2 de 4 - billets suivants »