Apollo 11, le documentaire du dépassement

Comment échapper au spectacle lamentable d'un humanité de rampants, empêtrés dans de querelles intestines qu'ils reconduisent sans cesse en dépit de la démonstration flagrante que l'Histoire leur en donne de la futilité ; enfin merde, se faire la guerre pour s'accaparer un bout de territoire ? pour imposer ses idées, ou pire, ses valeurs, voire, plus pathétique encore, sa religion ? A défaut de parvenir à coexister paisiblement avec autrui, ne viendra-t-il à l'esprit de personne de vivre et mourir sagement dans son coin ? Quand se faire oublier sera-t-il enfin érigé en principe de vie ?
Paradoxalement, c'est quand elle s'est ainsi abaissée sous l'animal, ou pour le dire très opportunément, lorsqu'elle est tombée plus bas que terre, que cette humanité semble trouver le ressort nécessaire pour s'élever au-dessus d'elle. C'est du moins ce que donne à voir l'aventure de la conquête spatiale, qui est avant tout le produit du génie de la guerre. De fait, si l'on veut bien admettre que l'Humanité est animée de la rage de se répandre, alors la guerre est bien cet accélérateur de l'Histoire que décrivait Lénine, et pour aussi lamentable que ce soit, il faut admettre qu'au fond, elle nous sert. Ruse de l'Histoire, pour résumer.
Ainsi, c'est alors que la guerre froide bat son plein que l'Amérique va trouver l'énergie de s'ébrouer enfin. Humiliée par les réussites de l'URSS, d'autant plus insolentes que la dictature exercée par le Kremlin lui permet de (faire) taire tous ses échecs, elle se lance à son tour dans la conquête spatiale et parvient, le 20 juillet 1969, à faire vivre à l'Humanité un moment, ce pourquoi elle demeure encore à ce jour une nation indépassée : dans le respect des hommes, car Apollo n'est pas un radeau de la Méduse jeté en pleine mer, en arracher à cette Terre pour les faire marcher sur la Lune.
Continuer la lecture de "Apollo 11, le documentaire du dépassement"
Apollo 11, le documentaire du dépassement

Root Me : racine-moi, si tu l’oses !

Lorsque je me suis intéressé à la sécurité informatique, je n'ai pas bien su pas où attaquer la chose. Finalement, je me suis décidé à l'attaquer à sa racine, Root Me étant là pour ça.
Le site de Root Me, avec son trop cool de logo
La sécurité informatique est un vaste domaine, c'est le moins que l'on puisse dire, d'autant plus que certains s'emploient à l'étendre joyeusement. Sans doute, dans la vie professionnelle, il faut savoir ravaler son domaine d'expertise pour l'accorder aux couleurs du temps, quitte à forcer un peu sur la peinture. Reste que cela ne va pas sans générer une certaine confusion. Pourquoi pas un "Grenelle du cul", avait proposé Roselyne Bachelot, lassée que l'on promette un Grenelle sur tout. On voit l'idée.
Pour y mettre un pied – dans la sécurité informatique, pas au cul –, j'ai déterminé que je partirai de la base, c'est-à-dire de la technique, et qu'après avoir acquis un vernis, je ferai des choix. Toutefois, passé un certain temps à lire quelques documents et regardé quelques vidéos portant essentiellement sur les techniques d'intrusion analysées par des pentesteurs, il m'est apparu impossible de vraiment assimiler des connaissances sans m'adonner à une pratique assez intense, les sujets, même à ce niveau et dans cette spécialité, étant trop divers.
Pirater le réseau WiFi du voisin étant exclu, les MOOC m'ont semblé tout indiqués. Reste qu'après en avoir tâté un peu, je n'ai pas trouvé la motivation pour m'y investir plus que quelques heures. Le problème, c'est que ce n'était pas le challenge. On était loin de l'ambiance demoparty, "elite rulez", ou "l337 rUl32" comme on dit maintenant, et tout ce qui tire vers le haut parce que c'est compliqué, et parce que c'est reconnu. Sorti de l'arène, le gladiateur s'ennuie.
Le salut devait venir d'ailleurs. Au hasard d'une rencontre – enfin, c'était une réunion traitant de cyberdéfense, donc le caractère fortuit est somme toute très relatif –, j'ai eu l'occasion de rencontrer quelqu'un pratiquant quelque chose de tout à fait passionnant, le forensics. Le gaillard, à qui j'ai exposé mon problème, m'a alors renvoyé sur Root Me.
Mise à jour du 30/01/2020 : Cet article a été rédigé il y a quelques mois, et n'est publié que maintenant sur ce blog pour être synchrone avec sa publication dans Programmez! Depuis, l'eau a coulé sous les ponts, m'étant adonné à bien d'autres challenges sur Root Me. Cryptanalyse, Web-client, Web-serveur et stéganographie pour l'heure : je confirme qu'ils sont tout aussi instructifs et prenants !
Continuer la lecture de "Root Me : racine-moi, si tu l’oses !"
Root Me : racine-moi, si tu l’oses !

Hackflash #3 – Dumper les heaps avec volatility

Nul ne peut prétendre s'investir sérieusement dans le forensics sans apprendre à utiliser volatility. Ce merveilleux outil sert à extraire toute sorte d'informations d'un dump de la mémoire d'une machine, capable qu'il est d'y retrouver les traces de structures de l'OS.
Volatility
Un travail souvent demandé à l'outil, c'est dumper les heaps d'un process, dans l'espoir que l'analyse de ces dernières permettra de trouver des traces de l'activité d'un utilisateur. L'exemple classique est le texte qu'un utilisateur était en train d'écrire dans le Bloc-Notes.
Etrangement, volatility ne permet pas d'emblée de procéder à un dump aussi sélectif. Heureusement, il suffit de bidouiller légèrement le code d'un plug-in pour y arriver.
Continuer la lecture de "Hackflash #3 – Dumper les heaps avec volatility"
Hackflash #3 – Dumper les heaps avec volatility

Hackflash #2 : Lister les segments d’un JPEG

Un grosse astuce en matière de stéganographie consiste à dissimuler des données dans un fichier image. Dans le cas d'un JPEG, il s'agira de jouer avec les segments.
Le flag est dans le JPEG...
La technique de base pour trouver ces données cachées est assez pénible, puisqu'elle consiste à passer en revue le contenu du fichier avec un éditeur hexadécimal tel que l'incontournable HxD.
Fort heureusement, il est possible d'automatiser cela en quelques lignes de Python...
Continuer la lecture de "Hackflash #2 : Lister les segments d’un JPEG"
Hackflash #2 : Lister les segments d’un JPEG

Hackflash #1 : Clé privée PKCS8 et formats ASN.1, DER et PEM

La quantité de formats que le profane rencontre en cryptographie a de quoi lui faire tourner la tête. Le sujet peut être d'autant plus déroutant que certains de ces formats semblent équivalents, au sens où ils permettent de véhiculer un même contenu, mais sous des formes différentes.
Tel est notamment le cas des formats ASN.1, DER et PEM, qu'il est possible d'utiliser pour stocker une clé privée générée avec l'algorithme RSA sous trois formes différentes.
Le PEM d'une clé privée
Bien connaître ces formats peut se révéler utile, notamment lors de challenges de sécurité informatique où il arrive d'avoir à forger des certificats et/ou des clés de manière tout à fait artisanale. Dans ce contexte, c'est le format ASN.1 qui peut être mobilisé.
Les brèves explications qui suivent visent à montrer, à travers l'exemple d'une petite clé privée générée avec l'algorithme RSA, comment il est possible de passer de l'un à l'autre de ces formats.
Continuer la lecture de "Hackflash #1 : Clé privée PKCS8 et formats ASN.1, DER et PEM"
Hackflash #1 : Clé privée PKCS8 et formats ASN.1, DER et PEM

Root Me (in progress)

Très amusant, et instructif !
3 200+ !
Enfin "lamer" ! 😉
Web-serveur (52/61)
5
10
10
10
10
15
15
15
15
15
15
15
20
20
20
20
20
20
25
25
25
25
25
25
30
30
30
30
30
30
30
30
30
30
30
30
30
35
35
35
35
35
35
35
35
35
40
40
40
40
40
75
Qui nous font...
1400
App - Script (1/16)
20
Qui nous font...
20
Root Me (in progress)

Desire « ONE » : le coding-of d’une BBS-intro sur Amiga

Enfin, la dernière ! Au terme de quelques années de retour dans le passé pour revisiter la programmation du hardware de l'Amiga, voici Desire "ONE", la dernière des productions d'une série dont l'idée était de rendre hommages aux grandes figures de ce que fut la scène. Après avoir successivement salué le mérite des graphistes dans Scoopex "TWO", des coders dans Scoopex "ONE", des crackers dans Scoopex "THREE", c'est donc sur une salutation aux sysops que le rideau tombe définitivement.
Desire "ONE" : Une BBS-intro sur Amiga
Sans doute, il resterait encore bien assez d'aspects du hardware à explorer pour trouver l'occasion de produire des hommages à bien d'autres figures : musiciens, swappers, suppliers, spreaders, editors et qui sais-je encore. Toutefois, il faut rester au diapason du progrès technique, et sans qu'il s'agisse de prétendre en devenir un spécialiste, mais juste savoir un peu de quoi on parle, cela impose actuellement de se former à de sujets denses et divers comme jamais : Cloud, Machine Learning, Ethical Hacking, Ray-Tracing, etc. Le temps étant compté - le développement n'est pas mon métier -, cette mise à l'heure m'apparaît prioritaire.
La production dont il sera question ici est une BBS-intro. Autrement dit, c'est une intro consacrée à la promotion d'un Bulletin Board System (BBS). Elle est le fruit d'une collaboration avec le groupe Desire, qui reste très actif sur plusieurs scènes, notamment la scène Amiga.
Comme toujours : code, data et explications dans tout ce qui suit...
Mise à jour du 15/09/2019 : La BBS-intro a été distribuée lors de la Function 2019 qui s'est tenue à Budapest, et l'archive contenant l'ADF ainsi que le source et les données est donc maintenant proposée au téléchargement.
Continuer la lecture de "Desire « ONE » : le coding-of d’une BBS-intro sur Amiga"
Desire « ONE » : le coding-of d’une BBS-intro sur Amiga

Scoopex « THREE » : Le coding-of d’un menu de trainer sur Amiga

Sur Amiga, le trainer était essentiellement un menu enjolivé par un FX et une musique, qui permettait d'activer des options pour tricher dans un jeu : "Vie illimitées: On/Off", et ainsi de suite. Dans bien des cas, le trainer a pu être le seul moyen de parvenir à profiter totalement d'un jeu sans y passer trop de temps, vu la difficulté. Ne termine pas Shadow of the Beast qui veut...
Dans la continuité d'un programme d'hommages aux différentes figures de la scène, voici Scoopex "THREE", un trainer produit pour le fameux StingRay du glorieux groupe Scoopex. Après Scoopex "TWO" rendant hommage aux graphistes, un hommage aux crackers, donc.
Scoopex THREE : Un trainer pour A500 en 2019
Comme on pourra le constater, l'originalité a pris ici le pas sur la technique. Du moins en apparence, car en matière de programmation du hardware en assembleur sur Amiga, tout devient finalement assez technique rapidement !
Code, data et explications dans tout ce qui suit...
Mise à jour du 08/12/2019 : Le menu a été magnifiquement porté sur Flashtro. C'est ici !
Ce menu n'a toujours pas été utilisé par StingRay, mais comme dans le cas de Scoopex "ONE" j'ai jugé qu'après des mois d'attente, il était nécessaire... de ne plus attendre. A priori, il devrait être utilisé sous peu. On verra bien...
Continuer la lecture de "Scoopex « THREE » : Le coding-of d’un menu de trainer sur Amiga"
Scoopex « THREE » : Le coding-of d’un menu de trainer sur Amiga

Scoopex « ONE » : Le coding-of d’une cracktro AGA sur Amiga

Comme il en a été question dans un long article sur le coding-of de Scoopex "TWO", Scoopex "ONE" était restée dans les cartons. En effet, au moment de la diffusion de Scoopex "TWO" sur Amiga 500, il s'était avéré que cette cracktro, et celle qui devait la précéder sur Amiga 1200, ne tournaient dans la trame que du fait d'une erreur de configuration de WinUAE. L'émulation n'était pas fidèle, le hardware ne volant pas autant de cycles au MC68000 que dans la réalité.
Dans Scoopex "TWO", le problème fut résolu par downsizing. Restait à trouver une solution pour Scoopex "ONE". C'est à l'occasion de la programmation d'une BBS-intro à venir pour le groupe Desire qu'elle fut trouvée. Voici donc le détail du coding-of de Scoopex "ONE", une cracktro pour Amiga 1200 :
Scoopex "ONE" : Une cracktro pour A1200 en 2019
Cette cracktro exploite quelques possibilités offertes par le chipset AGA (Advanced Graphics Architecture) : l'affichage en 256 couleurs, et le mode "burst" permettant au hardware de lire les données des bitplanes par paquets de 64 bits. En tant que telle, cette cracktro constitue une bonne introduction à la programmation du hardware de l'Amiga 1200, pour ceux qui souhaitent renouer avec le passé de la plus glorieuse gamme de micro-ordinateurs.
Cette cracktro n'a toujours pas été utilisée par Scoopex, mais j'ai jugé qu'après des mois d'attente, il était nécessaire... de ne plus attendre. A priori, elle devrait être utilisée pour la release d'une version AGA de Hired Guns. On verra bien...
Continuer la lecture de "Scoopex « ONE » : Le coding-of d’une cracktro AGA sur Amiga"
Scoopex « ONE » : Le coding-of d’une cracktro AGA sur Amiga

Déboguer facilement un service Web en PHP et JavaScript

S'il vous en reste, le développement d'un service Web en JavaScript (côté client) et PHP (côté serveur) est une bonne occasion de vous arracher des cheveux. Le débogage est une opération délicate, quand vous ne pouvez pas vous appuyer sur un système tel que Xdebug.
C'est que dans une application Web traditionnelle, un appel de service consiste simplement à appeler un script PHP dont le contenu est retourné par le serveur. Dès lors, toute erreur survenant lors de l'exécution du service s'affiche nécessairement à l'écran.
Il en va tout autrement dans le cas d'une application Web moderne, de type Progressive Web Application. Ici, l'appel de service s'effectue par le truchement d'un objet XMLHttpRequest. Le résultat de l'exécution du script est toujours renvoyé par le serveur, mais il parvient au client via une des propriétés de cet objet.
Dans ces conditions, la callback fournie à l'objet XMLHttpRequest doit analyser ce résultat pour déterminer si une erreur ou non a été rencontrée, et si oui remonter au développeur toutes les informations utiles qu'il voyait s'afficher à l'écran dans le cas d'une application Web traditionnelle : chemin d'accès au script, ligne dans le script où l'erreur est survenue, description de l'erreur, voire plus.
Déboguer facilement un service en JavaScript et PHP
La première chose à faire avant de se lancer dans le développement d'un service Web consiste donc à mettre en place une système de remontée des résultats d'un appel de service efficace. On aurait tort de s'en passer, car il ne faut finalement guère de lignes de code.
Continuer la lecture de "Déboguer facilement un service Web en PHP et JavaScript"
Déboguer facilement un service Web en PHP et JavaScript