L’IDE officiel de QT : QtCreator ??

Hello tous le monde …

Alors que je viens de recevoir le mail m’annonçant la sortie de Edyuk 1.1.0 (mon IDE QT favori) … je tombe sur QtCreator au détour d’un site … ce logiciel reprend un peu toutes les fonctionnalités d’Edyuk, avec une interface plus simple :

Comme vous pouvez le remarquer … y’a pas de grosse toolbar en haut, on passe par les menus de gauche pour choisir le mode (debug, edition, …).

Vous aurez sûrement remarqué sur le screen (en mode debug), que cette version apporte quelques petits plus, comme par exemple la possibilité de voir le contenu des variables (et pas leurs adresses comme sur edyuk), on a aussi accès à pas mal d’info sur l’exécution du logiciel (la description de chaque fonction, classe utilisé).

Je ne l’utilise pas encore pour dev, … Edyuk me suffit pour le moment ;), mais l’alternative semble sympa, d’autant plus qu’elle est « sponsorisé » par QT.

Si vous voulez le télécharger, c’est par , sinon, je trouve que l' »installer » (l’executable d’install et non l’action ;-)) est à la fois superbof et superbien … d’un côté c’est classe, car ils fournissent toutes les librairies qu’il faut pour l’utiliser (bien que dans mon cas inutile, puisque j’ai les paquets de QT4 d’installer), d’un autre côté, un .deb aurait été sympa et permettrait de ce passer des 20 mo de lib à DL.

Analyse de malware avec CWSandBox

‘tite news pour les windowsiens …

Au détour de plusieurs sites spécialisé sur la sécurité informatique (taoSecurity et honeyblog), je suis tombé sur ce sympathique site Web qui permet d’analyser les actions des logiciels que l’ont peut uploader.

L’analyse est assez poussée (comme le montre cette exemple).

On peut récupérer (sans exécuter le logiciel … ;)) :

  • Les DLL chargées
  • Le processus père ainsi que toutes ces informations (DLL,…)
  • Les accès au registre (lecture et écriture)
  • Les accès aux fichiers (avec les types d’ouverture : ecriture, ajout, …)
  • Une analyse de chaque processus lancés avec le logiciel
  • et même le PCAP (les connexions ouvertes (TCP, UDP, …)).

Et si l’on suit la manip du premier lien, on peut détailler pas mal de chose :

Utilisation du logiciel argus pour lire les connexions TCP :
$ argus -r analysis_612050.pcap -w analysis_612050.pcap.arg

$ ra -n -r analysis_612050.pcap.arg - not port 1900
   23:23:57.745266  e        igmp           10.1.7.2           ->            0.0.0.1               2        108   INT
   23:23:59.079832  e         tcp     74.213.167.192.80                  10.1.7.2.1361          2        114   RST
   23:23:59.735571  e         tcp           10.1.7.2.1037      ->      79.135.167.18.80           78      67219   RST
   23:23:59.757777  e         tcp           10.1.7.2.1038      ->      79.135.167.18.80          116     101525   RST
   23:24:00.103663  e         tcp     74.213.167.192.80                  10.1.7.2.56963         2        319   RST
   23:24:08.147828  e         tcp     74.213.167.192.80                  10.1.7.2.26155         2        319   RST
   23:24:13.463815  e         tcp     74.213.167.192.80                  10.1.7.2.54775         4        427   RST
   23:24:16.556555  e         tcp     66.232.105.102.80                  10.1.7.2.35029         3        168   RST
   23:24:18.791427  e         tcp     74.213.167.192.80                  10.1.7.2.33765         5        481   RST
   23:24:26.456790  e         udp           10.1.7.2.61548    <->           10.1.7.1.53            2        250   CON
   23:24:26.458842  e         tcp           10.1.7.2.1042      ->       91.203.93.49.80           26      17295   FIN
   23:24:26.600712  e         tcp           10.1.7.2.1044      ->       91.203.93.49.80           10       1544   FIN
   23:24:26.743598  e         tcp           10.1.7.2.1045      ->       91.203.93.49.80           10       2099   FIN
   23:24:26.854732  e         tcp           10.1.7.2.1046      ->       91.203.93.49.80           10       1284   FIN
   23:24:26.965697  e         tcp           10.1.7.2.1047      ->       91.203.93.49.80           10       1545   FIN
   23:24:27.070573  e         tcp           10.1.7.2.1048      ->       91.203.93.49.80           14       6828   FIN
   23:24:27.180786  e         tcp           10.1.7.2.1049      ->       91.203.93.49.80           26      18334   FIN
   23:24:27.310872  e         tcp           10.1.7.2.1050      ->       91.203.93.49.80           12       4822   FIN
   23:24:27.422057  e         tcp           10.1.7.2.1051      ->       91.203.93.49.80           14       7415   FIN
   23:24:27.527325  e         tcp           10.1.7.2.1052      ->       91.203.93.49.80           11       3078   FIN

Les requêtes HTTP filtré par Tshark.

$ tshark -n -r analysis_612050.pcap -R 'http.request == true and tcp.dstport != 1900'
 11   2.097490     10.1.7.2 -> 79.135.167.18 HTTP GET /scan.exe HTTP/1.1
 12   2.097563     10.1.7.2 -> 79.135.167.18 HTTP GET /cgi-bin/index.cgi?test7 HTTP/1.1
 29   2.212609     10.1.7.2 -> 79.135.167.18 HTTP GET /g.exe\330 HTTP/1.1
 36   2.266404     10.1.7.2 -> 79.135.167.18 HTTP GET /l.exe HTTP/1.1
119   2.475539     10.1.7.2 -> 79.135.167.18 HTTP GET /g.exe\330 HTTP/1.1
186   3.308669     10.1.7.2 -> 79.135.167.18 HTTP GET /g.exe\330 HTTP/1.1
188   3.390001     10.1.7.2 -> 79.135.167.18 HTTP GET /g.exe\330 HTTP/1.1
230  28.765013     10.1.7.2 -> 91.203.93.49 HTTP GET /bild15_biz.php?NN=a119 HTTP/1.1
256  28.906713     10.1.7.2 -> 91.203.93.49 HTTP GET /adult.txt HTTP/1.1
266  29.049951     10.1.7.2 -> 91.203.93.49 HTTP GET /pharma.txt HTTP/1.1
276  29.160854     10.1.7.2 -> 91.203.93.49 HTTP GET /finance.txt HTTP/1.1
286  29.271530     10.1.7.2 -> 91.203.93.49 HTTP GET /other.txt HTTP/1.1
296  29.376465     10.1.7.2 -> 91.203.93.49 HTTP GET /promo/aol.com-error.html HTTP/1.1
310  29.486416     10.1.7.2 -> 91.203.93.49 HTTP GET /promo/gmail.com-error.html HTTP/1.1
336  29.616847     10.1.7.2 -> 91.203.93.49 HTTP GET /promo/google.com-error.html HTTP/1.1
348  29.727475     10.1.7.2 -> 91.203.93.49 HTTP GET /promo/live.com-error.html HTTP/1.1
362  29.832947     10.1.7.2 -> 91.203.93.49 HTTP GET /promo/search.yahoo.com-error.html HTTP/1.1

… y’a pas besoin d’être malin pour comprendre que le fichier analysé était un virus ^^.
Donc voilà, maintenant, si vous vous posé des questions sur le prochain crack logiciel que vous téléchargez, vous saurez où aller.

htop … ou comment faire revivre le top

‘tite news sur un outil inutile mais indispensable … comme tellement de chose en informatique.

tout linuxien amateur connaît au moins une commande : « top » … mais on se rend rapidement compte que c’est assez limité … on peut pas trop se déplacer dedans, donc on peut que killer les premiers processus, … (ok un ps -aux avec un tr, un cut et un sort c’est mieux, mais bon … au moins ça se rafraichit, et de loin on a l’impression d’être en face de la matrice …).

et comme d’hab, il y a des alternatives à tout … et comme d’hab, il y a une simple commande à effectuer pour l’installer :

sudo apt-get install htop

Et vous pourrez profiter de tadaaaa :

Possibilité de :

  • trier sur le CPU, le pid, l’utilisateur, la priorité, … (F6)
  • afficher l’arbre de dépendance des processus (F5)
  • killer une appli en la selectionnant (F9)
  • chercher une appli (F3)
  • et plein d’autre chose …

C’est le sysadmin d’advisa qui me la fait découvrir … si les pro s’y mettent 😉

Centre Alsace : Le prix du gazole dépasse le prix essence

Bonsoir …

et non c’est pas une blague, au détour d’un petit trou perdu en centre alsace, j’ai trouvé cette pompe qui proposait du gazole à 1,79€ alors que le SP98 est à 1,32€.

ça fait peur … avec la crise économique … il ne manquait plus que ça.

D’accord … c’est un fake (je tiens jamais longtemps à ce jeu là)… sur le papier jaune fluo y’a marqué qu’ils se sont gourés de prix ^^.

Commandes linux sympa

Bijour à tous …

Aujourd’hui, un tout pitit article sur les commandes systèmes qui peuvent être utile.

Mais pourquoi?? :p

Bé voilà, je me suis rendu compte que ben s’amuser à faire un top, c’était pas top (^.^) pour avoir des info précises sur tel processus, ou bien, connaître l’état des disques quand on a pas accès à nautilus ou baobab …

Donc voilà, quelques commandes et enchevêtrement de commande qui rappelleront bien des souvenirs (des heures de joie de TP qui défile devant les yeux :p) aux DUTs info qui passe par là (bien sûr, y’en a d’autre, pour faire la même chose, mais celle-là ) :

  • Récupération des processus en affichant seulement : l’utilisateur, le pid, la commande, la conso CPU et RAM, le temps CPU :
    • ps aux|tr -s [:space:]|cut -d »  » -f1-4,8,9,11|sort -k3
    • Explication : le tr permet de supprimer les espaces en trop, pour permettre à cut le découpage des colonnes et sort -k3 pour le trie sur la conso CPU
    • On peut aussi réduire un peu l’affichage sur les dix derniers/premiers via un head -10 ou un tail -10
  • Utilisation du randomisateur : (inutile, mais …) (vu sur korben ^^)
    • cat /dev/urandom | tr -dc 0-9 | head -c6 (récupération de 8 chiffres aléatoires)
    • cat /dev/urandom | tr -dc a-zA-Z | head -c5 (récupération de 8 lettres aléatoires)
    • et … vous aurez compris le principe, ça peut être utile dans des scripts ou pour générer des pass.
  • Affichage de la consommation memoire et swap
    • cat /proc/meminfo | egrep ‘^(Swap[TF]|Mem).*’
    • Utilisation d’une regex pour s’arrêter au Swap et à la mémoire …
  • Récupérer les fichiers .conf modifiés il y a moins de deux jours dans le dossier /etc
    • find /etc -maxdepth 3 -name *.conf -mtime -2

Autant les premiers on s’en fout un peu … autant le dernier peut être très utile 😉

Fork et PHP utile ??

Bonsoir …

Alors voilà … thème de la soirée les forks et PHP

On lit souvent sur les forums que les forks en PHP servent strictement à rien et tous le … et je dois avouer que de la prog système en PHP, c’est vraiment bof bof.

Mais cette semaine, pour le développement de mon application de gestion de NewsLetter (pour mon apprentissage), on m’a obligé à faire des forks et autre astuces système pour optimiser un peu la bête ^^.

Au départ, j’étais plutôt septique, je trouvais ça même louche … j’avais même jamais entendu parler de fork sur PHP, mais au final, j’étais plutôt surpris du résultat …

Pour exemple : Un script doit envoyer 60 mails.

Une appli en single :

[sourcecode language= »php »]
for($i=0;$i<60;$i++) { mail($mail_a[$i],"sujet","message"); } [/sourcecode]

Une appli (en « multi thread ») :
[sourcecode language= »php »]
for($i=0;$i<60;$i++) { $pid = pcntl_fork(); if ($pid == -1) { die('dupplication impossible'); } else if ($pid) { $pid_a[] = $pid; //juste au cas où } else { mail($mail_a[$i],"sujet","message"); } } pcntl_waitpid ( 0 , $status); // on attend la mort de tous ses fils ... c'est cruel [/sourcecode] Si vous chronométrez le temps que ces deux scripts prennent, l'on remarque la rapidité du fork ... Lorsque j'ai testé le code (sur le serveur de ma boite), le premier mettait presque 30 sec pour envoyer les 60 mails (et encore, je les recevais pas tous), dans le deuxième cas, c'était instantanné, la plupart des threads ce terminaient dans la seconde. Donc voilà ... ne jamais dire que de la prog système dans le web ça sert à rien ;-), je go tenter de faire un site avec des signaux et des sémaphores :-d.

[UBUNTU] Mise à jour du paquet Edyuk

Bijour à tous …

Petite news inutile et …, je viens de mettre le paquet Edyuk à jour (sur mes dépôts), attention … c’est une version instable (rev 680 du svn, … au moment ou j’écris ces lignes, la dernière est la 682, mais bon).

Y’a eu pas mal de changement depuis la version 1.0.1 (rev 665) au niveau de la GUI, avec la correction de quelque bugs qui pouvaient s’avérer génant, suivant que l’on switchait entre les interfaces de design et de coding.

Sinon, je profite, de la mise à jour du paquet, pour signaler que j’ai un peu de temps pour créer d’autre paquets qui pourraient manquer dans les dépôts. Cela dit, n’étant pas un packageur « officiel », ces paquets n’apparaitront sûrement pas dans les dépôts d’ubuntu ou de debian, à part si vous vous arrangé pour contacter les gars chargés de l’upload des paquets …

Je sais seulement packager des programmes simple en config/make/make install et qmake/cmake, donc les modules kernels et programme en GTK ne seront pas … :-s