Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Claude Code Safety Net - Le plugin qui empêche l'IA de tout niquer

Vous utilisez Claude Code comme moi pour bosser plus vite sur vos projets de dev ? Hé bien j'espère que vous n'avez jamais eu la mauvaise surprise de voir l'agent lancer un petit rm -rf ~/ qui détruit tout votre répertoire home en 2 secondes. Parce que oui, ça arrive malheureusement, et plusieurs devs en ont fait les frais cette année...

Le problème c'est que les agents IA, aussi intelligents soient-ils, peuvent manquer de garde-fous sur ce qui est vraiment dangereux. Vous leur dites "nettoie le projet" et hop, ils interprètent ça un peu trop littéralement et une fois que c'est fait, y'a plus qu'à pleurer devant son terminal vide.

C'est pour ça qu'un développeur du nom de kenryu42 a créé Claude Code Safety Net qui est un plugin pour Claude Code qui agit comme un garde-fou mécanique. Son idée c'est de bloquer les commandes destructives AVANT qu'elles ne s'exécutent, et pas juste avec des règles bêtes genre "si la commande commence par rm -rf".

Le plugin est bien plus malin que ça puisqu'il fait une analyse sémantique des commandes. Il comprend la différence entre git checkout -b nouvelle-branche (qui est safe, ça crée juste une branche) et git checkout -- . qui lui va dégager tous vos changements non committés sur les fichiers suivis. Les deux commencent pareil, mais l'une vous sauve et l'autre vous ruine psychologiquement, vous forçant à vous réfugier dans la cocaïne et la prostitution.

Et c'est pareil pour les force push. Le plugin bloque git push --force qui peut écraser l'historique distant et rendre la récupération très difficile, mais il laisse passer git push --force-with-lease qui est la version plus sûre, car elle vérifie que la ref distante correspond à ce qu'on attend (même si ce n'est pas une garantie absolue).

Et le truc vraiment bien foutu, c'est qu'il détecte aussi les commandes planquées dans des wrappers shell. Vous savez, le genre de piège où quelqu'un écrit sh -c "rm -rf /" pour bypass les protections basiques. Le plugin parse récursivement et repère la commande dangereuse à l'intérieur. Il fait même la chasse aux one-liners Python, Ruby ou Node qui pourraient faire des dégâts.

Côté rm -rf, le comportement par défaut est plutôt permissif mais intelligent... les suppressions dans /tmp ou dans le dossier de travail courant sont autorisées parce que c'est souvent légitime, par contre, tenter de nuke votre home ou des dossiers système, c'est non négociable.

Et pour les paranos (comme moi), y'a un mode strict qu'on active avec SAFETY_NET_STRICT=1. Dans ce mode, toute commande non parseable est bloquée par défaut, et les rm -rf même dans le projet courant demandent validation. Mieux vaut prévenir que pleurer.

Si ça vous chauffe, l'installation se fait via le système de plugins de Claude Code avec deux commandes :

/plugin marketplace add kenryu42/cc-marketplace
/plugin install safety-net@cc-marketplace

Et hop, vous redémarrez Claude Code et c'est opérationnel.

Ensuite, quand le plugin bloque une commande, il affiche un message explicite genre "BLOCKED by safety_net.py - Reason: git checkout -- discards uncommitted changes permanently" donc vous savez exactement pourquoi ça a été refusé et vous pouvez décider en connaissance de cause si vous voulez vraiment le faire.

Bref, j'ai testé ce plugin sur mes projets et c'est vraiment cool alors si vous utilisez Claude Code en mode YOLO, ça vous évitera de rejoindre le club des devs qui ont tout perdu à cause d'un agent trop zélé...

Quand X récompense ceux qui propagent de fausses infos après un attentat

Pour ceux qui auraient raté l'info, deux terroristes ont ouvert le feu le 14 décembre dernier, lors d'une célébration de Hanoukka à Bondi Beach (Sydney en Australie), tuant 15 personnes. Et dans les minutes qui ont suivi, X s'est transformé, comme à son habitude, en machine à désinformation...

Un homme d'affaires pakistanais portant le même nom que l'un des tireurs (Naveed Akram) s'est alors retrouvé accusé d'être l'auteur de l'attentat. Sa photo a été partagée des milliers de fois, il a reçu des menaces de mort et sa famille a même été harcelée. Sauf que ce gars n'avait strictement rien à voir avec l'attaque, mais partageait juste un nom de famille très courant avec le vrai coupable.

Mais ça, les abrutis de cette planète n'y ont même pas pensé. C'est dire s'ils sont cons...

Après vous allez me dire : « Ouais mais y'a les Community Notes pour corriger ça » sauf que ça marche pas de fou ces notes de la communauté. A titre d'exemple, selon le Center for Countering Digital Hate , 74% de la désinformation liée aux élections américaines de 2024 n'a JAMAIS reçu de note de la communauté. Et quand une note finit par arriver, il faut compter entre 7 et 75 heures selon les cas pour qu'elle soit diffusée.

Donc autant dire une éternité à l'échelle d'Internet...

Et comme si la situation n'était pas encore assez critique, d'après une étude du MIT, les fausses infos se propagent 6 fois plus vite que les vraies sur ces plateformes. Bref, on est foutu face à la connerie humaine.

Surtout que d'après Timothy Graham , chercheur en médias numériques à l'université QUT en Australie, il y a maintenant une économie autour de la désinformation, notamment sur X car leur système de monétisation paie les créateurs en fonction de l'engagement généré par les utilisateurs vérifiés. Ainsi, Plus vos posts font réagir, plus vous gagnez d'argent.

Et devinez quel type de contenu génère le plus d'engagement ?

Hé bien les trucs faux, les trucs scandaleux, les trucs qui font monter les tensions.

Y'a même eu une vidéo de feux d'artifice présentée comme des « célébrations arabes » après l'attentat qui n'était que pure invention. C'était en fait les feux d'artifice de Noël du Rotary Club local, programmés des mois à l'avance. Le truc a fait des millions de vues avant d'être démenti. Certains parmi vous ont peut-être mordu à l'hameçon de cette fake news d'ailleurs.

Pire encore, Grok, l'IA d'Elon Musk intégrée à X, a carrément inventé le nom du héros qui a désarmé l'un des tireurs. Quand les utilisateurs lui demandaient qui avait sauvé des vies, l'IA sortait « Edward Crabtree » de nulle part, un nom totalement fictif tiré d'un site web frauduleux créé le jour même de l'attentat.

Et pendant ce temps, le vrai héros de cette tragédie, Ahmed al-Ahmed, un Australien d'origine syrienne qui a risqué sa vie pour désarmer l'un des tireurs et protéger les victimes, était à peine mentionné. Plus de 2,6 millions de dollars ont été collectés pour lui depuis, mais il a fallu creuser fort pour trouver la vraie histoire pendant que les fake news monopolisaient l'attention.

Le problème c'est que le modèle économique de X encourage les comptes à poster vite et fort, sans vérification. Avoir 5 millions d'impressions et seulement 2000 abonnés, ça permet de monétiser. Et plus on génère de réactions, plus on palpe... Du coup, poster « BREAKING : le tireur identifié » avec une photo d'un random est rentable, même si c'est faux.

Surtout si c'est faux, en fait... Vous savez ce syndrome de "Les merdias mainstream nous cachent des choses, mais heureusement j'ai vu une vérité alternative sur X.com et c'est encore la faute aux zarabes, à l'Europe et aux élites judéo-maçonique-réptiliennes qui veulent manger nos enfants" qui frappe ce genre de personnes dont le cerveau est trop atrophié pour qu'ils puissent développer une réflexion qui leur est propre.

Après, je ne pense pas être naïf, car la désinformation a toujours existé, mais là on parle quand même d'un système de merde qui récompense financièrement ceux qui la propagent. C'est plus un bug, c'est une feature et quand un innocent se fait menacer de mort parce qu'un comploplo en slip dans sa cave a voulu faire du clic, ça me fout les nerfs.

Bref, tant que l'engagement restera la métrique reine et que les plateformes paieront au buzz plutôt qu'à la véracité des faits, on continuera à subir ce genre de dérives horribles...

ddrescue + Raspberry Pi Imager - Le combo pour cloner vos cartes SD sans vous arracher les cheveux

Vous avez un parc de Raspberry Pi à déployer et vous en avez marre de refaire la config à chaque fois ? Ou pire, votre carte SD commence à faire des siennes et vous voulez la sauver avant qu'elle rende l'âme ? Hé bien j'ai le combo parfait pour vous les amis !

Je vais vous parler en réalité de deux outils complémentaires que vous connaissez déjà je pense : ddrescue pour le clonage/sauvetage de cartes SD, et Raspberry Pi Imager pour créer des images préconfigurées. Ensemble, ils forment une chaîne de production quasi "industrielle" pour vos projets Pi. Ça va vous faire gagner un temps précieux mais aussi vous sécuriser car on sait à quel point les cartes SD c'est capricieux parfois sur les Rpi (surtout quand y'a des coupures de jus ^^).

Commençons donc par ddrescue qui est l'outil libre parfait pour cloner des disques, mais avec un truc en plus que dd n'a pas : la gestion des erreurs et la reprise. Son secret, c'est le mapfile, un fichier journal qui garde trace de tout ce qui a été copié, du coup, si votre clone plante en plein milieu (câble qui se débranche, coupure de courant, carte SD qui fait la gueule), vous relancez la même commande et ça reprend exactement où ça s'était arrêté. Sans ce fichier, par contre, c'est retour à la case départ... snif.

⚠️ Attention : la destination va être écrasée. Donc vérifiez 3 fois vos /dev/... avant d'appuyer sur Entrée. Et oui, l'option --force porte bien son nom puisqu'elle autorise l'écriture sur un disque brut, donc si vous vous trompez de cible, c'est le drame.

La commande de base, c'est ça :

sudo ddrescue --force /dev/sdX /dev/sdY rescue.map

Vous remplacez /dev/sdX par votre carte source et /dev/sdY par la destination et le fichier rescue.map, c'est votre filet de sécurité, donc gardez-le précieusement à côté de vos images.

Après si vous préférez cloner vers un fichier image plutôt que directement vers une autre carte, c'est quasi pareil :

sudo ddrescue /dev/sdX raspios.img rescue.map

Et pour les cartes un peu fatiguées avec des secteurs défectueux, y'a une astuce en deux passes. D'abord une passe rapide qui saute les erreurs (le but c'est de récupérer le max sans s'acharner tout de suite) :

sudo ddrescue -n /dev/sdX raspios.img rescue.map

Puis une deuxième passe qui insiste sur les zones problématiques :

sudo ddrescue -r3 /dev/sdX raspios.img rescue.map

Le -r3 dit à ddrescue de réessayer 3 fois sur chaque secteur récalcitrant par contre, évitez de mettre --no-split par défaut. Ça peut sembler logique ("ne coupe pas"), mais sur un support vraiment abîmé, laisser ddrescue découper et isoler les zones foireuses est souvent plus efficace.

Maintenant faut vérifier que tout s'est bien passé… alors oui, on peut faire des contrôles, mais il faut être clair, si vous comparez juste un bout, vous validez juste un bout. Par exemple cette commande compare seulement 1 Go, et pas toute la carte :

sudo cmp -n 1G /dev/sdX /dev/sdY

Donc si vous voulez comparer TOUT (et que ça ne vous dérange pas d'attendre ^^), vous pouvez comparer l'image et la carte clonée en faisant un hash sur la totalité. Par exemple, pour vérifier que l'image écrite sur la carte correspond bien à l'image d'origine :

sha256sum raspios.img
sudo ddrescue /dev/sdY - | sha256sum

Si les deux hashes sont identiques, là, on parle (beaucoup plus) sérieusement. Et si vous ne voulez pas streamer le disque, vous pouvez aussi faire un hash du périphérique directement (mais ça lit tout le disque, donc c'est long).

Vous l'aurez compris, ddrescue nous sert à cloner ou à sauver une carte existante, mais pour déployer proprement une image, on va maintenant utiliser le fameux Raspberry Pi Imager. Car oui, l'outil officiel de la fondation a une fonction que beaucoup de gens ne connaissent pas qui est la personnalisation avancée. Comme ça, avant de flasher votre carte, vous pouvez préconfigurer plein de trucs.

Par exemple, le hostname du Pi, genre pi-cuisine ou pi-garage, l'utilisateur et son mot de passe, le Wi-Fi avec SSID et mot de passe, le SSH activé avec mot de passe ou clé publique, le fuseau horaire et la config clavier. Et précision importante, Imager prépare tout ça pour que ce soit appliqué au premier boot (c'est injecté pour l'initialisation), ce qui revient au même pour vous, mais ça explique pourquoi c'est si pratique en mode headless.

Du coup, vous flashez la carte, vous la mettez dans le Pi, vous branchez l'alimentation, et souvent c'est accessible en SSH très vite :

ssh [email protected]

C'est le mode headless parfait puisque ça vous évite d'avoir à brancher un écran + clavier + souris sur votre Rpi. Notez que l'extension en .local de mon exemple ci-dessus dépendra du mDNS (Bonjour / Avahi)... Sur certains réseaux (ou certains PC), ça pourra ne pas résoudre donc dans ce cas-là, vous passez par l'IP ou votre DNS/DHCP habituel.

Et maintenant, roulements de tambours, voici le workflow magique pour déployer un parc de Pi. Cela consiste tout simplement à configurer un Pi de référence avec tout ce qu'il vous faut dedans (paquets, services, configs...). Ensuite vous l'éteignez proprement, vous clonez sa carte avec ddrescue, et vous dupliquez cette image à volonté.

MAIS (et là c'est le point qui évite des sueurs froides), cloner une carte Linux telle quelle, ça clone aussi des identifiants qui devraient être uniques, typiquement :

  • le machine-id
  • les clés SSH hôte (host keys)

Donc si vous déployez 10 Pi clonés à l'identique, vous vous retrouvez avec 10 machines qui se présentent pareil, et côté SSH vous pouvez avoir des alertes cheloues (et côté admin, c'est pas propre).

La solution la plus simple c'est donc de préparer votre image "master" pour que chaque nouveau Pi régénère ça au premier démarrage. Sur votre Pi de référence (avant de cloner), vous pouvez faire :

sudo rm -f /etc/machine-id
sudo truncate -s 0 /etc/machine-id
sudo rm -f /etc/ssh/ssh_host_*

Comme ça, au prochain boot, le système régénère un machine-id propre, et OpenSSH régénère ses clés hôte. (Si jamais ça ne se régénère pas automatiquement sur votre variante d'OS, un redémarrage + réinstallation/relance SSH règle généralement le truc.)

Après ça, à chaque nouveau Pi, vous flashez l'image.

Maintenant si vous n'avez pas de parc à déployer, mais que vous voulez simplement personnaliser le hostname, le Wi-Fi, le user, etc., le plus simple ça reste donc de passer par Raspberry Pi Imager au moment du flash avec ses options avancées car si vous écrivez l'image avec dd/ddrescue directement sur la carte, Imager ne pourra évidemment pas appliquer ses paramètres.

Et SURTOUT, avant de lancer quoi que ce soit, pensez à identifier vos disques pour pas faire de bêtises (c'est une commande Linux, btw) :

lsblk -o NAME,SIZE,MODEL,MOUNTPOINT

Ah et désactivez aussi l'automontage sur votre machine, sinon vous allez avoir des soucis avec la destination qui se retrouvera occupée par l'OS.

Bref, avec ddrescue et Raspberry Pi Imager, vous avez maintenant de quoi cloner vos cartes SD beaucoup plus sereinement (et pas juste "les yeux fermés").

Enjoy !

Quand l'IA vous aider à hacker la mémoire des jeux

Les vieux de la vieille connaissent forcement Cheat Engine puisque c'est LE logiciel culte pour tripatouiller la mémoire des jeux , trouver l'adresse où est stockée votre santé, votre or, vos munitions, et la modifier à la volée. Sauf que manuellement, c'est un travail de fourmi... Trouver un pointeur stable qui ne change pas à chaque redémarrage du jeu, ça peut prendre des jours, voire des semaines de bidouillage.

Hé bien quelqu'un a eu l'idée un peu folle de brancher Claude directement sur Cheat Engine et visiblement le résultat est au rendez-vous.

Le projet s'appelle cheatengine-mcp-bridge et c'est un pont entre les IA compatibles MCP (Claude, Cursor, Copilot) et Cheat Engine. Concrètement, ça veut dire que vous pouvez maintenant demander à Claude de faire le boulot de reverse engineering à votre place, en langage naturel.

Dans cet outil, y'a trois couches qui communiquent ensemble : l'IA qui reçoit vos questions en langage humain, un serveur Python qui traduit tout ça en commandes techniques, et un script Lua côté Cheat Engine qui exécute les opérations sur le processus ciblé.

Et les possibilités sont dingues puisque l'outil expose pas moins de 39 "tools" MCP différents. Vous pouvez lire la mémoire (entiers, floats, strings, pointeurs), suivre des chaînes de pointeurs complexes du genre [[base+0x10]+0x20]+0x8, scanner des valeurs, analyser du code désassemblé, identifier des objets C++ via les infos RTTI, et même poser des breakpoints hardware. Il y a même le support du DBVM, le mode hyperviseur de Cheat Engine qui permet un traçage niveau Ring -1 , beaucoup plus difficile à détecter pour les protections anti-cheat classiques.

Avec ce MCP, vous lancez un jeu, vous demandez à Claude "Scanne l'or, j'en ai 15000". L'IA trouve alors 47 résultats. Vous dépensez un peu d'or dans le jeu, vous dites "Maintenant j'en ai 14900". Claude filtre et garde 3 adresses. Ensuite vous demandez "C'est quoi qui écrit sur la première adresse ?", et hop, breakpoint hardware posé automatiquement. Ensuite, un petit "Désassemble moi cette fonction", et vous avez tout le code de la fonction AddGold devant les yeux.

Tout ce processus qui prenait des heures de tatonnement se fait maintenant en mode conversation.

Pour l'instant c'est en lecture seule, pas d'écriture mémoire possible (probablement une sage précaution) et l'outil utilise les registres de débogage hardware DR0 à DR3, ce qui limite à 4 breakpoints simultanés mais garantit une compatibilité maximale avec les protections anti-cheat basiques.

Côté prérequis, c'est Windows only (à cause des canaux nommés ), Python 3.10 minimum, et Cheat Engine 7.5 ou plus récent. Et l'installation demande quelques étapes également... Il faut d'abord activer DBVM dans les settings de Cheat Engine, charger le script Lua, et configurer le chemin du serveur MCP dans votre IDE. Et n'oubliez pas de désactiver l'option "Query memory region routines" sinon vous risquez un joli écran bleu CLOCK_WATCHDOG_TIMEOUT.

C'est un projet encore frais mais j'ai trouvé ça cool, d'où le partage ici. Bon évidemment, on reste dans le domaine du reverse engineering et du modding de jeux et comme toujours, c'est destiné à un usage éducatif et de recherche donc ne venez pas pleurer si vous vous faites bannir d'un jeu en ligne, hein.

Mais en tout cas, pour les passionnés de rétro-ingénierie, les créateurs de trainers, ou simplement les curieux qui veulent comprendre comment fonctionne un jeu sous le capot, c'est un outil incroyable ! L'IA qui se met au hacking de jeux, on n'arrête vraiment plus le progrès.

Source

Quand Blizzard écrase le rêve de fans qui voulaient refaire WoW en Unreal Engine 5

Sale nouvelle pour les fans de World of Warcraft classic. J'sais pas si vous vous souvenez de Turtle WoW, ce serveur privé qui permettait de jouer à WoW vanilla sans abonnement et avec du contenu inédit, mais cet ambitieux projet vient de passer à la trappe. Malheureusement, Turtle WoW 2.0, ce remake complet en Unreal Engine 5, est officiellement DÉCÉDÉ !

Et pourtant, ce projet faisait rêver les fans. C'était World of Warcraft Classic avec des graphismes de qualité et le trailer sorti en septembre avait explosé les compteurs avec 200 000 vues sur YouTube. Le lancement était prévu pour décembre, bref, tout semblait sur les rails.

Mais c'était sans compter sur les affreux avocats de Blizzard qui ont attaqué Turtle WoW en justice. Et pas qu'un peu puisque les accusations font mal : violation de copyright, contournement des protections anti-piratage, et carrément du RICO (la loi anti-mafia américaine !). Blizzard accuse le serveur privé d'être une "entreprise criminelle internationale" qui profite des dons des joueurs tout en utilisant leurs assets sans autorisation.

Sur les forums de la communauté, plusieurs joueurs expliquent que Blizzard aurait envoyé des mises en demeure à toutes les entreprises qui collaboraient avec Turtle WoW. Difficile donc de poursuivre ce projet ambitieux quand un géant de l'industrie du jeux vidéo vous tombe dessus avec ses armées d'avocats à petits bras.

Et le truc "marrant" (quel hasard, dites donc...) c'est que Blizzard prépare justement son propre "Classic+". En gros, il vont faire exactement ce que Turtle WoW proposait gratuitement depuis des années, avec des races inédites comme les Gobelins ou les Hauts-Elfes, et du contenu tiré de Warcraft 3 mais en full payant pour les pigeons, euh pardon les joueurs qui souhaiteraient encore se faire essorer un petit peu.

Alors bien sûr, je comprends la position de Blizzard sur le papier car c'est leur propriété intellectuelle, leur jeu, leurs assets et légalement, ils sont dans leur droit. Mais voir une communauté de passionnés se faire écraser comme un moustique avec toutes ces accusations alors qu'elle ne faisait qu'entretenir la flamme d'un jeu que Blizzard avait abandonné durant des années, c'est moche je trouve.

Je ne suis pas sûr que l'image de Blizzard en sorte grandie car Turtle WoW avait quand même réussi à rassembler 44 000 joueurs en simultané à son pic, avec une communauté de près de 500 000 joueurs actifs. C'est pas rien, surtout sur un jeu sorti il y a 20 ans... c'est beau, non ?

Alors pour le moment, le serveur privé continue de tourner même si le domaine a migré de turtle-wow.org vers turtlecraft.gg. Après combien de temps avant que Blizzard n'obtienne sa fermeture définitive ? On verra bien... En tout cas, le procès suit son cours...

Voilà, c'est la fin d'un rêve pour ceux qui espéraient voir Azeroth renaître en Unreal Engine 5. Ça ne restera donc qu'une démo technique impressionnante qui ne verra jamais le jour, et surtout un rappel douloureux que face aux géants de l'industrie qui ne jurent que par le pognon, les projets les plus beaux portés par les fans n'ont pas de valeur à leurs yeux.

Source

Votre sapin de Noël est sans doute un imposteur

sapin

Souvent, le « sapin » de Noël n’est pas un sapin. Et il n’est pas lié historiquement à la naissance de Jésus de Nazareth. Deux botanistes se sont penchés sur ces paradoxes et nous aident à identifier les différents types d’arbres utilisés pour le 24 décembre.

Tout savoir sur la constellation de la Petite Ourse

C'est l'une des constellations les plus célèbres. La Petite Ourse, version miniature de la Grande Ourse, contient l'Étoile polaire. Ce groupe d'étoiles, avec sa « petite casserole », est l'un des premiers repères astronomiques que l'on apprend souvent à trouver.

Disposer d’une licence Windows officielle est essentiel pour être à jour et protégé et cela ne coûte que 19€ sur VIP-URcdkey

Obtenir une licence Windows ou Office tout ce qu’il y a de plus officiel à des prix incroyablement bas, c’est ce que propose VIP-URcdkey. On vous explique tout dans cet article.

L’article Disposer d’une licence Windows officielle est essentiel pour être à jour et protégé et cela ne coûte que 19€ sur VIP-URcdkey est apparu en premier sur Tom’s Hardware.

full

thumbnail
❌