Stfu or code (le blog de pthc)
Mes bookmarks à moi que au moins je pourrais retrouver :
- La cité de la sodomie
- HowTo BDSM
- Google
- Nofrag

Chans que j'oublie toujours l'url :
- MacroChan
- ChanSluts (il y avait plein de CP sur /b/ hier)
- FapChan
- PChan

Prog :
- 99 bottles of bear
- Cours GtkFr

Asm :
- Les opcodes x86
- Interrupt Jump Table

(Enfin une utilité à ces blogs : stockage des bookmarks)

Rechercher

Archives

Nombre de visiteurs*

* Visiteurs uniques : une (1) visite par IP.

Flash x86_64 pour linux

Lundi 17 novembre 2008 à 15 h 15
Cela faisait des lustres qu'on l'attendait, le voici enfin, le plugin flash officiel et non libre pour linux enfin compatible avec l'architecture x86_64.
Finit le nspluginwrapper instable, et finit le browser en userland 32 bits tandis que le système est en 64 bits.

Actuellement pour y passer sur ubuntu avec firefox :
cd ~
sudo apt-get --purge remove nonfree-flashplugin nspluginwrapper
wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
tar xvf libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
sudo mv libflashplayer.so .mozilla/plugins/



Pour archlinux 64 bits :
(pensez à désinstaller toute version nspluginwrapper ou lib32 avant ça)
yaourt --noconfirm -S flashplugin-alpha-64


Les autres :
http://labs.adobe.com/downloads/flashplayer10.html


De vrais paquets dans les dépôts des distribs ne devraient pas tarder.
4 commentaires, dernier de LeGreg.

Dvorak

Samedi 26 juillet 2008 à 04 h 49
À ne pas confondre avec ni Borat ni Dvorák, j'en ai déjà entendu parler pour rire. Puis, sous le coup de 4h04 du matin (olol) si c'est réellement utilisé par des gens je me suis qu'être fou peut être amusant.
Personne n'oserait emprunter ne serait-ce que 30 secondes votre ordinateur portable.

Le dernier membre de nofrag a en avoir parlé il y a 3 ans semble être mort quelques mois plus tard. Pas vraiment rassurant.

Quelques recherches sur google après je remarque que Wikipedia est bien fournit sur le sujet, c'était pas la peine de chercher bien loin.

Je lis l'article, en particulier le chapitre Français. Après tout le dvorak est censé être optimisé pour une langue, la mienne étant le Français c'était logique.
Mais quelle horreur tout de même, dire qu'avec ça on est censés taper plus vite.

Ah oui, pour ceux qui ne l'auraient pas encore remarqués, le dvorak est un layout de clavier, une disposition autre qu'azerty.
C'est possible d'en changer sans changer de clavier. La preuve avec la combinaison Shift + Alt pour les Windowsiens, ça a déjà du vous arriver de vous retrouver avec le clavier en qwerty.

Wikipedia donne une commande, je copie colle un setxkbmap -layout fr -variant dvorak de suite dans un terminal et là, c'est le drame.
Même avec l'image de la disposition du clavier sous les yeux, c'est très dur de taper la moindre chose. Mais très vite au bout de la deuxième phrase de test je commence déjà à me deviner dans quelle partie du clavier se trouve la touche tant cherchée.
Il y a pas à dire, c'est vraiment bien conçu, dès que vous tapez sur une lettre il est fort probable que la suivante sera à l'opposé du clavier pour nous permettre d'optimiser au mieux les mains.

Bon c'est bien beau ce jouet, mais en tant que geek qui se respecte je passe plus de temps à coder qu'à écrire en Français. Et justement, le coding c'est plein de caractères loufoques. Elle est où la variante dvorak-c++ ? fr-dvorak-bépo semble pas beaucoup plus rassurant, et surtout non pré-installée sur mon Xorg.
Aller hop, une recherche parmis les paquets de ma distrib révèle deux trucs interessants :


Deux compilations plus tard je m'entraine sur un programme ncurses qui me fait taper différentes successions de lettres. J'apprends assez vite mais j'abandonne là pour l'instant mon expérience avec le layout.
Le logiciel ne permet l'apprentissage que dvorak classique, pas de dvorak-fr ou autres.
J'ai d'ailleurs oublié le fr-dvorak-bépo qui n'a vraiment pas l'air apte à la programme (je me trompe ?) pour m'intéresser au dvorak-programmer (dvp) disponible dans ma distrib. Ça semble vraiment interessant. Imaginez du c, c++ ou php où les accolades ne se font d'une seule touche !
Évidemment pour ça il faudra oublier le Français. Les lettres accentuées, le fait que les fonctions en coding sont en anglais alors que presque tout le reste de ma vie est en Français font que on ne peut profiter des deux à la fois.

Je vais y réfléchir un peu plus à une heure moins tardive, il doit bien y avoir un moyen de passer de l'un à l'autre d'une seule combinaison de touches.


Points positifs :
- apprentissage pas *si* dur ni lent
- parfait pour les fénéants
- rapide
- la sdl bypasse le layout xorg. aucun problème avec les fps

Points négatifs :
- apprentissage pas *si* facile ni rapide
- à utiliser avec un clavier full oled sinon brute force oblige rien que pour réussir à rétablir le layout azerty...
- pas une solution miracle pour la programmation (pas de disposition français)
- sans pavé numérique l'apprentissage des chiffres est encore plus lourd que le reste
- elle est où maintenant la touche pour activer la console dans quake ?


Demain je teste si la commande vocale est optimisée pour le coding en brainfuck.

DevNote - #5 - svn checkout

Mercredi 23 juillet 2008 à 15 h 38
Putain qu'il date le dernier topic.
Entre temps, j'ai passé deux mois sans laptop + impossible d'obtenir une carte wifi potable + stage de merde (une cms en php; je déteste les langages scriptés, php le premier) ce qui m'a bien ralenti dans le dév de ce projet.

Aujourd'hui il commence à se faire temps, à rendre public tout ça.
Le côté scolaire n'est plus un problème, mon DUT est finit et l'accord que l'on a fait avec l'IUT était que le code nous appartiendrait intégralement.
Le nom, c'est AirGTKrack, pour aircrack en gtk.
C'est un logiciel modulaire. Même l'interface graphique est plugin, seul le protocole entre le démon et le client est rigide. Ce qui veut dire que créer un plugin optionnel simulant un compteur geiger s'agitant en fonction des paquets WiFi, ne serait pas difficile à faire.

Mon ami google ayant bien compris le message que je ne veux pas qu'il parle de AirGTKrack, il s'est retenu. Donc voici une liste raccourcie :
- L'adresse du projet SourceForge.
On y trouve le SVN et les membres de l'équipe de dév.
Contactez moi pour en faire partie, c'est super ça rend intelligent, géri le cancer et en plus ça n'engage à rien.

- Le paquet ArchLinux.
Parce que c'est la distrib sur laquelle le projet a été codé, parce que on l'aime tous dans l'équipe et parce que c'était ce qu'il y avait de plus simple.
Un simple yaourt -S airgtkrack-svn vous l'installe, le démon avec.
C'est très pratique de n'avoir qu'à cliquer sur l'icone pour que ça marche.

- svn co https://airgtkrack.svn.sourceforge.net/svnroot/airgtkrack/trunk airgtkrack && cd airgtkrack && sh autogen.sh && ./configure && make && sudo make install.
Utilisateurs d'ubuntu pas la peine d'essayer, l'automake que j'ai utilisé est incompatible avec celui d'ubuntu.
Bien entendu il a fallu que je remarque ça APRÈS avoir galéré comme une merde pour que l'automake fonctionne chez moi.
J'abandonne pour l'instant, tant que je n'aurais pas de liens clairs ou d'aide sur ce répugnant système.
Le premier qui s'en plaint, qu'il vienne plutôt m'expliquer comment faire un script automake qui fonctionne pour toute distrib.

- svn co https://airgtkrack.svn.sourceforge.net/svnroot/airgtkrack/trunk airgtkrack -r 181 && cd airgtkrack && make && sudo make install
Devrait mieux marcher.
Un binaire pourrait être tarballé, si il y a de la demande.
Pour lancer, c'est airgtkrack en root. Ensuite, un clic sur préférences vous permettra d'activer le mode monitor sur votre carte wifi, et le reste je vous laisse découvrir (c'est assez clair comme ça que ça ne signifie pas "démerdez vous", ou il faut que je rajoute un smiley ?)


Voilà tout y est. À vous de me remonter ce qui merde, vos idées et demandes d'explications sur le code.
8 commentaires, dernier de pthc.

DevNote - #4 - beta1 && deception

Vendredi 11 avril 2008 à 01 h 49
On peut dire que la première beta est officiellement sortie, et plutôt stable.
Supporte la plus part des cartes drivers du moment qu'ils sont capables de gérer le mode monitor.
Le listage des points d'accès se fait sans problèmes, à noter un problème de tampon trop petit en zone avec une activité wifi conséquente.
Le crack du wep est enfin présent. Peu efficace encore, il faut qu'il y ait trafic sur le réseau à craquer sinon avoir une sacré batterie sur son laptop.
Pas de génération de paquets (arp replay, chopchop, fragmentation, etc), ce qui est la cause de la lenteur du cassage wep.



Je ne sais pas quand j'aurais l'envie réelle de faire de nouvelles fonctionnalités, même la réinjection de paquets qui serait pas très difficile à intégrer.

Il y a bien la déception à cause du retour côté scolaire, mais ce qui me bloque déjà c'est le fait que sur aircrack-ng je n'arrive plus à effectuer un replay quelque soit l'ap, je ne comprends vraiment pas ce qu'il se passe. J'aurais oublié quelque chose ? Cette carte wifi serait pourrie ? (une atheros !)
Mon ordinateur portable est parti en sav de toute façon, à cause de court circuit sur la carte mère faisant griller les transfos un par un.

Ma carte wifi alfa high power basée sur un chipset realtek 8187 qui marchait très bien a aussi rendu l'âme. Trop de pluie lors des wardrivings, trop de coups en étant dans mon sac. L'ampli n'est plus stable, et ses données son tellement corrompues qu'à un mètre il est difficile d'en recevoir les paquets.

J'ai bien reçu ma première fonera cette semaine. Passage sur dd-wrt réussi, reste à comprendre pourquoi ipkg refuse de fonctionner même après activation du jffs. Il faudrait aussi que j'arrive à compiler un cross gcc pour fonera.
En fait, un tel portage reste ma seule source d'excitation (et ma seule source wifi qui pourrait fonctionner sans ENCORE faire des frais de caret wifi). Heureusement que on a conçu le projet en séparant démon et client, les deux en communication réseau pour pouvoir foutre le démon sur un routeur wifi.



Je ne sais vraiment pas quand m'y remettre.
Déjà que je suis pas sorti de ma maladie attrapée juste avant la semaine de la soutenance, ce qui fait que je me soigne que maintenant.

Et puis je suis tellement déçu par la note.
Pas quelle soit mauvaise, elle nous situe juste au dessus d'un site web nul dont les parties dynamiques montrent les requêtes sql sans aller plus loin, et juste en dessous d'un site web moyen.
D'accord l'équipe a réussi sa gestion de projet... enfin il faut quand même noter qu'il était seul le webmaster, webmaster qui n'a pondu aucune ligne de code : il ne s'est pas caché que son frère a effectué tout le travail. Mais comment à la soutenance il a pu réussir devant un jury de profs pourtant compétents ?

J'attends vos conseils pour effectuer un school shooting sous peu.

Oh, et ta gueule pthc.
5 commentaires, dernier de mst.

DevNote - #3 - ls

Lundi 11 février 2008 à 02 h 37
Je n'aurais jamais pensé que travailler en équipe serait si dur.
Peut être que c'est parce que à cause du côté scolaire, que des gens avec peu de compétences se retrouvent sur un tel projet. Ou peut être tout simplement parce que ils ont réussi à se montrer meilleurs qu'il ne le sont.
En entreprise cela n'arriverait certainement pas, du moins pas une telle différence de niveaux. Alors, le côté "apprendre à travailler en équipe, comme en entreprise", c'est plutôt raté.
Reste que ce projet est une bonne chance de prouver nos capacités, voire même de nous élever donc je ne le laisserais pas tomber et y contribuerai jusqu'au bout.



Ce sont les statistiques du svn sur les deux derniers mois.
A l'heure où je parle, on est à la révision 57. Sacré avancement par rapport à avant.
Je ne suis plus tout seul non plus à m'activer sur le code et comme je suis mauvais en gtk et tout ce qui est interfaces graphiques, ça aide.
Fait marrant, les copiers coller sont finalement pas si présents que ça. Il y a eu beaucoup plus de modifications que prévues, obligeant à reprogrammer entièrement certaines parties. D'autres ont été reprogrammées sans même se baser sur aircrack-ng; le code source de ce dernier tombe parfois dans le folklore.


Ceci est la fenêtre principale, nommée "list" puisque son but est de lister les réseaux environnants.
Pour pouvoir arriver à ce résultat, elle met en mode "monitor" la carte wifi et reçoit donc chaque trame 802.11 circulant dans le coin. Elles sont ensuites interprétées une par une pour afficher ce résultat en temps réel et non par scan d'environ 5 secondes, où le résultat n'est affiché qu'après le scan. Ca peut paraitre inutile, mais pas tant que ça puisque pour cracker un réseau wifi le mode monitor sera nécéssaire.

A terme de quelques semaines, notre but est une nouvelle fenêtre qui permettra de donner plus de détails de ces réseaux (comme sur kismet / kismac), et à partir duquel il sera possible d'attaquer le réseau en question.
Une fois cela fait il y aura un plugin permettant d'évaluer la sécurité du réseau, et lui donner une note. Pour se donner bonne conscience.
Ensuite, l'on s'amusera à coder de petites features par ci par là. On a déjà le channel hoper intelligent (augmente les chances de trouver un réseau), un power affiché sur plus de cartes que aircrack-ng le fait.
Compteur geiger, brouilleur de canal, localisation gps, connection au réseau une fois la clé crackée + test de débit intégré, spoof d'ap et fout à micro ondes pour plus tard.

DevNote - #2 - Wake up

Vendredi 18 janvier 2008 à 03 h 08
La dernière fois je n'ai pas été très clair, déjà à cause de la fatigue me faisant écrire n'importe quoi, mais aussi par le côté "je me jette dans le technique, au plus profond".
On va essayer de faire mieux cette fois (ce qui est mal barré vu l'heure).

Ce logiciel que je suis censé créer avec mon équipe, est un logiciel tournant sous Linux, peut être Mac / BSD plus tard, permettant d'afficher une fenêtre, qui listera tous les réseaux wifi que l'on reçoit dans le coin.
Bien sûr, comme on se base sur aircrack-ng, il sera question de plus qu'un simple listage, et ira donc jusqu'au crack de clé wifi.

Depuis le dernier article, j'ai potassé ce que j'avais fais, réfléchis avec mes coéquipiers, codé et recodé certaines choses.
J'ai maintenant un résultat, une ébauche qui bien que paraissant ridicule, est un véritable avancement face à l'impasse dans laquelle nous étions.

Vous avez le droit d'être déçus, ça n'affiche même pas les réseaux.
Cependant nous avons ici un démon / serveur, un client s'y connectant, et un plugin chargé par le client.
Ce plugin, nommé par moi même "ls" (LiSt), sera celui qui affichera les réseaux. Pour l'instant, il créé juste une fenêtre avec au lieu d'une liste, un bouton qui ne fait rien (c'était juste pour occuper l'espace durant le test), et en bas une barre de status qui en sa droite affiche l'état de la batterie quand l'ordinateur est sur batteries.
La barre de progression montre le pourcentage de courant restant, le temps en minutes à droite affiche le temps restant (O'RLY ?).

J'avais prévenu, c'est ridicule pour ceux qui ne codent pas en gtk, et certainement aussi pour ceux qui ont l'habitude, mais j'ai réalisé de très nombreux problèmes avec tout ce modèle, comme simplement la function gtk_main qui rentre dans une boucle : elle tourne tout le temps. Du coup, si le client demande à un plugin de mettre à jour un truc dans la fenêtre, gtk est pas content, et une assertion échouée m'explique que ce que je fais n'est pas bien, c'est pas thread safe et cie.
Pour l'instant, je me contente donc d'appeler une fonction idle qui se situe dans le plugin. Elle est appelée quand le client a finit une itération de sa boucle de traitement, et cette fonction idle va faire le boulot de gtk_main beaucoup plus proprement.
En fait, je me demande même si c'est pas la seule vraie solution à utiliser, je dois avouer que je suis assez débutant en gtk, et les documentations ne donnent pas de détails clair sur ce genre de cas.

La prochaine étape sera un listage des cartes wifi, avec un assistant configuration, et seulement après on pourra s'occuper du listage.
Des retours d'idées de features à implémenter sont toujours les bienvenues.

DevBlog - #1 - Untitled

Samedi 5 janvier 2008 à 21 h 43
Puisque parfois gueuler n'est pas la solution exacte au sein d'un projet informatique où mon diplome est en jeu, je prévois de m'amuser ici.
Bien sûr il y aura, et avant tout du technique sur l'état d'avancement.

Le but, est de créer un fork de aircrack-ng, suite complète d'infiltration dans un réseau wifi de préférence sécurisé sinon ce n'est pas drôle. Mais n'oublions pas, nous avons l'accord du propriétaire de la borne, et ce logiciel n'a que pour but d'effectuer un audit de la qualité de la sécurité mise en place. Et puis merde, même le FBI dit que cracker la clé wifi n'est pas illégal (espionner chez quelqu'un, télécharger des vidéos pédophiles sur sa connexion, etc par contre l'est).

Ce fork n'est pas censé apporter un support windows à l'injection de paquets, pour la simple raison que cette tâche me demanderait de recoder en partie windows, du moins la pile sans fil.
Non, il va juste afficher une interface next-gen un peu comme KisMAC le fait déjà, sauf que notre logiciel, sera fonctionnel sous GNU/Linux à l'aide de l'api graphique gtk. L'on programme en langage C bien sûr, qui correspond le mieux pour un tel projet.
Le projet possède déjà sa page sourceforge quasi-vide, et sera opensource.

Comme il faut que le logiciel soit simple d'utilisation, la couche d'accès aux périphériques sera un démon tournant seul sous utilisateur root.
Le core sera le client, la communication entre les deux se fera par sockets tcp, pour une utilisation future par réseau; démon tournant un wrt54g entre autres. Il s'agit du binaire lancé dans le menu, par l'utilisateur.
L'interface graphique sera elle même un plugin lancé par le core. Merci celui qui nous a bloqué à ça sans possibilité de revenir en arrière, alors que lui même n'a jamais fait en C le moindre appel à une fonction exportée par une bibliothèque dynamique. Encore moins des plugins.
Différentes fonctionnalités seront codées dans un futur proche au travers de plugins, telles qu'une sorte de compteur-geiger aidant à la localisation d'un réseau.

L'architecture est assez complexe, donc pas de screenshots encore, et certainement pas avant deux semaines sauf peut être des screenshots provenant des maquettes de l'interface.
Actuellement, j'en suis à avoir le démon se mettant en écoute, le client s'y connectant. Une majeure partie du code se connectant à l'interface wifi et la batterie est déjà fait. Le restant sera juste une mise en forme; donner la liste des interfaces et récupérer le choix, plutôt que de demander à l'utilisateur bêtement le nom de l'interface choisie, etc.
Il me reste aussi à établir les échanges entre le démon et le client. Ensuite je devrais passer au core aider la personne chargée de s'en occuper, puis je devrais m'occuper des plugins restants.
Autrement dit, la charge de travail est conséquente. En plus, je ne suis vraiment pas aidé que ça soit par nos tuteurs techniques / professeurs / professionnels censés nous contacter depuis deux mois pour qu'on décide de quoi aura l'air ce soft, ou même les membres du projet.
Heureusement je suis assez fier d'avoir le boulot qui me parait le plus intéressant, sur un projet dont l'idée de base vient de moi (marre de taper 10 commandes dans la voiture alors que deux clics pourraient suffire. Certains comprendront).
J'apprends pas mal de choses de moi même, comme le fait que sous UNIX tout est vraiment plus fichier que je l'imaginais : accéder à la carte wifi se fait par fichiers. Une vraie partie de plaisir même si le tout est trop lourd pour le niveau technique que l'on est censés avoir, ce qui risque de nous empêcher de finir dans les temps.
Putain souhaitez moi bonne chance.

Si vous avez des idées à implémenter, n'hésitez pas à les poser ici j'y songerais en fonction du réalisable.
4 commentaires, dernier de divide.