❌

Vue lecture

QBZ, le client Qobuz pour Linux c'est terminé !

Si vous avez lu mon article sur QBZ , le client Qobuz open source qui permettait d'écouter sa musique en "bit-perfect" sous Linux, hé bien oubliez-le. En effet, Qobuz a demandé à son développeur d'arrêter le projet, et ce dernier n'a pas eu d'autre choix que d'obéir. Bref, le dépôt est fermé et il n'y aura plus de mise à jour.

C'est sacrément dommage je trouve...

Après la raison, comme expliquée ici par le support de Qobuz, c'est que cette application plaçait Qobuz en position "non conforme" vis-à-vis des ayants droit notamment parce que les lectures ne sont pas comptabilisées côté Qobuz, ce qui laisserait les artistes sans rémunération.

Perso, j'aime bien Qobuz et je trouve qu'ils font du super boulot, mais ils ont sacrément manqués de stratégie sur ce coup là !

Je ne sais pas si techniquement ça aurait été jouable, mais à leur place, j'aurais demandé au dev de QBZ d'intégrer mes API de mesure (en plus de lui filer un petit chèque) sans pour autant rendre proprio le code. Ou au pire, je l'aurais embauché pour faire un vrai client Linux officiel avant de laisser mourir ce projet libre, ce qui leur aurait éviter de prendre un risque avec leur image auprès de la communauté du libre.

Bref, 1/ ils se privent d'un super client Linux 2/ ils perdent un dev qui a quand même taffé durant des années bénévolement pour leurs services 3/ j'imagine qu'ils vont également perdre des abonnés payants sous Linux. 4/ Et ils prennent le risque de voir débarquer des forks de rebelles moins conciliants avec leurs services.

De mon point de vue ce n'était pas une décision très réfléchie, même si c'est vrai, ils ont été pro et courtois avec le dev de QBZ (traduction : ils ne lui ont pas mis un procès au cul).

Dommage.

  •  

REA - J'ai testé le reverse engineering par agent IA

REA , pour "Reverse Engineer Anything", c'est un serveur MCP qui buzze ces derniers jours et qui permet de connecter votre agent IA (Claude Code, Codex, Cursor...) sur Ghidra, Hopper ou IDA, et sur des analyseurs pour les applis Electron, .NET ou les sites web.

Vous repérez ainsi une fonction qui vous plaît dans une appli, puis l'agent la décortique sans le code source et vous en code une version toute fraiche... Tiens ça me rappelle quelque chose...

Comme je voulais voir ce que ça donnait, je me suis donc monté un petit banc d'essai à l'arrache sur mon ordi avec Claude Code en Opus 5.5, REA 6.4.0 comme seul serveur MCP et Ghidra comme moteur.

Mes tests se découpent donc en 4 exercices : un keygen, un patch, une fonction d'appli à recréer ainsi que des codes de triche. Pour les deux premiers, j'ai bien sûr compilé des programmes maison avec un faux système de licence afin de ne pas sombrer dans l'illégalité en codant un vrai keygen ou un crack (et au passage me faire delete mon compte Anthropic ^^).

rea doctor valide Ghidra 12.1.4

Mon crackme, c'est donc une fausse app nommée "PixelNote Pro" qui réclame un nom d'utilisateur et une clé d'activation, compilé pour Mac ARM.

Une fois que je lui ai dis ce que je voulais faire, l'agent a donc ouvert le binaire dans Ghidra via REA, lu le pseudo-code, l'a recoupé avec l'assembleur là où le décompilateur écrivait une rotation de bits sous une forme peu lisible, et m'a pondu un keygen en Python en 2 minutes chrono pour un coût API de Claude 50 centimes. J'ai ensuite fait tourner son générateur sur 479 noms tirés au hasard et le binaire les a tous acceptés.

Le crackme ouvert à la main dans Ghidra : la fonction entry et son pseudo-code

La boucle de calcul de la clé, dans le pseudo-code que REA sert à l'agent

Le patch, c'est le plus bluffant j'ai trouvé. Le petit utilitaire que je me suis fait a pour mission de compter les lignes et les mots d'un fichier texte. C'est très basique. Et j'ai donc voulu faire un patch pour qu'il affiche aussi les caractères. Comme REA, avec Ghidra, ne touche pas aux octets de l'exécutable, l'agent a donc dû faire le reste à la main... il a logé ses instructions dans une zone remplie de zéros de la partie exécutable, détourné trois instructions d'origine vers elles, puis re-signé le binaire pour que macOS le lance :

Le compteur d'origine, sa version patchée par l'agent, puis le keygen du crackme accepté par le binaire

Pour mon 3ème exercice, je me suis dit que j'allais cloner la fonction d' Amphetamine qui garde mon Mac éveillé tant qu'une appli donnée est ouverte. Via Ghidra, malheureusement REA a refusé le binaire universel Intel et ARM d'Amphetamine, alors l'agent en a extrait lui-même la partie ARM. Il a alors trouvé qu'Amphetamine posait une assertion d'énergie du système et surveillait la liste des applis lancées. Et magie de l'IA, il a ensuite codé en Swift un petit outil qui fait tout pareil. J'ai testé avec la Calculatrice, ça marche, à condition de lui donner le nom de l'appli dans la langue du système, ou son identifiant.

pmset ne montre l'assertion d'éveil que pendant que la Calculatrice est ouverte

Et le dernier, c'est Wolfenstein 3D (j'ai pris la version shareware 1.4) dont l'exécutable DOS est compressé. L'agent a donc écrit son propre décompresseur, puis retrouvé dans le code le raccourci clavier pour tricher (c'est M+L+I qui met santé à 100, munitions, clés, mitrailleuse... et score remis à zéro), le paramètre goobers qui, avec Maj gauche + Alt + Retour arrière, débloque les touches de debug comme le mode Dieu, et même un juke-box caché. Tout correspond au code source publié depuis par id Software.

Par contre, ses logs montrent qu'il cherchait ces codes par leur nom avant de les avoir vus. Je me suis donc fait avoir puisque le modèle les connaissait déjà. Par contre, il les a bien retrouvé dans le binaire.

Début de partie du shareware 1.4 dans DOSBox, lancé avec le paramètre goobers

Les trois occurrences de goobers dans l'exécutable décompressé

Alors, REA est-il indispensable ?

Hé bien pour le savoir, j'ai relancé les quatre exercices avec le même modèle, les mêmes fichiers et les mêmes consignes, mais avec REA en moins... juste Claude Code qui pilote Ghidra. Hé bien Claude tout nu a tout réussi lui aussi, mais en écrivant quand il en avait besoin ses propres scripts Ghidra en Java, là où REA lui servait le pseudo-code et l'assembleur sur un plateau.

Bref, ce que je peux vous dire avec mes tests, c'est que REA ne fait pas mieux qu'un Claude à qui on demande d'installer Ghidra et de l'utiliser. Par contre, REA a été plus rapide sur le keygen (2 minutes 22 contre 2 minutes 48 pour Claude), sur Amphetamine (9 minutes contre 16 minutes pour Claude) et sur Wolfenstein (10 contre 14 pour Claude), mais plus lent sur le patch (7 minutes et demie contre un peu plus de 2 pour Claude).

A voir ce que ça donnerait avec un modèle local genre Qwen (débloqué avec Heretic , alleeeez)...

REA est sous licence MIT et l'analyse tourne en local (même si ses résultats partent quand même chez le fournisseur de votre modèle, donc évitez d'y passer un binaire confidentiel), et Hopper comme IDA restent des outils commerciaux dont REA ne fournit aucune licence.

Notez aussi que son créateur exclut le contournement de licences et la fabrication de patchs pour les jeux, d'où encore une fois mon crackme fait maison et les codes qu'id a lui-même mis dans Wolfenstein ^^.

Autre précaution à prendre si vous vous lancez et qui touche cette fois à la fiabilité de ce que l'agent IA peut vous raconter : Des chercheurs ont publié fin mai un préprint montrant qu'un binaire piégé peut donner ses propres ordres à l'IA qui l'analyse . Pour cela, il suffit d'y glisser des chaînes de texte sans effet à l'exécution, qui se retrouvent ensuite dans le code décompilé et soufflent de fausses instructions au modèle, pour lui faire mal interpréter le programme. Je n'ai pas testé REA là-dessus, mais le principe vaut a priori pour tout agent branché sur Ghidra, donc faites bien attention avant de donner un échantillon suspect à votre agent IA préféré.

Et si seul Ghidra vous intéresse, sachez que le ce MCP dont je vous ai parlé en février permet aussi de faire le pont agent IA <> Ghidra.

Voilà, pour installer REA, un petit :

npx rea-agents setup

Et c'est parti !

  •  

Ported2Browser - +200 jeux dans le navigateur

Mercredi, c'est le jour des enfants, mais c'est surtout celui des adultes qui n'ont aucune envie de bosser !!

Alors pour ceux-là, je vous ai débusqué Ported2Browser , un annuaire qui recense +200 jeux et logiciels capables de tourner directement dans l'onglet de votre navigateur. Bref de quoi jouer sans rien installer sur l'ordi...

Vous vous baladez sur le site ou vous cherchez ce que vous voulez, vous cliquez et hop, ça se lance directement depuis le site qui héberge le portage.

Vous pouvez ainsi filtrer par plateforme (NES, Super Nintendo, Nintendo 64, GameCube, Game Boy et d'autres), par tags, ou par façon de jouer. Par là, j'entends soit au clavier et à la souris, ou la manette ou directement via l'écran tactile. Il y a même un éditeur d'images, Compositor, pour les graphistes qui n'arrivent VRAIMENT pas à décrocher de leur boulot ^^.

En tout cas ça m'a fait plaisir de retomber sur "You don't know Jack" auquel je jouais quand j'étais petit (en français). Je l'avais complètement oublié ce jeu, c'est fou !

Voilà, je vous laisse découvrir tout ça, histoire de vous détendre avant le 17 octobre ^^ !

  •  

Le Petit Prince devient un jeu 3D dans votre navigateur (Merci l'IA)

Je pense que ça va vous plaire ! En tout cas, moi ça m'a vraiment impressionné ! Le Petit Prince parmi les étoiles , c'est un jeu en 3D qui se lance directement dans le navigateur et qui nous emmène de planète en planète tout comme dans le conte de Saint-Exupéry. Il n'y a rien à installer, et le jeu est en français, en plus de sept autres langues.

La carte du voyage en français : B-612 est ouverte, les sept autres planètes attendent

Au premier clic, la carte du voyage s'ouvre avec huit planètes, et au démarrage, seule B-612 est accessible. Le roi, l'allumeur de réverbères, le géographe et les autres attendront donc leur tour pendant que vous promenez le petit prince sur son astéroïde (après une courte cinématique où il contemple une mer de nuages), entre ses volcans et sa fleur. Votre progression, elle, reste sauvegardée dans le navigateur d'une visite à l'autre.

Sur B-612, premier objectif : faire le tour de la planète, entre la cabane et les deux volcans

L'ambiance est reposante, un peu magique et m'a bien replongé en enfance, quand je lisais cette histoire poétique et un peu bizarre ^^.

Derrière ce jeu, il y a Sac, un créateur basé à Singapour qui parle d'IA et de 3D toute la journée sur X. Dans son post de lancement , il explique avoir passé 16 jours sur ce projet avec l'aide de Claude Opus 5.5, en combinant Tripo et Blender . Mais c'est surtout Opus 5.5 qui a transformé chaque planète du conte en scène 3D totalement explorable. Il a promis aussi de publier un peu plus tard le code source du jeu et le détail de comment il a réussi à faire tout ça. Après avoir fait ce jeu pour tester les capacités de l'IA, ce qu'il pense maintenant, c'est que plus personne n'a la moindre raison de ne pas l'utiliser.

En attendant qu'on ait les détails de son making-of, en creusant un peu, ce qu'on peut déjà voir c'est que c'est un export Unity qui tourne en WebGPU (sans aucun repli vers WebGL2), découpé en lots de chapitres, et que les commentaires dans le code renvoient à des documents de conception écrits en Markdown (UI_DESIGN.md, ENGLISH_COPY.md, WEB_BUILD.md...) ainsi qu'à des scripts Python qui génèrent en l'occurrence les polices et les logos.

Maintenant, quelle part a été faite à la main, ça, on ne le saura que lorsqu'il publiera sa technique...

Mais en tout cas, si après avoir joué à ce jeu, ça vous donne envie de vous y mettre pour réaliser vous aussi le jeu vidéo de vos rêves que vous avez dans la tête depuis que vous êtes tout petit, voici ce que vous avez à votre dispo.

Tout d'abord, il vous faut des graphismes et pour cela, Tripo transformera une description texte ou une simple image en modèle 3D, surtout si vous utilisez aussi son add-on officiel pour Blender qui permet de faire ça sans quitter le logiciel (à condition d'avoir une clé API Tripo). Maintenant, si vous préférez tout garder sur votre machine, n'oubliez pas que TRELLIS de Microsoft génère lui aussi des modèles 3D, sous licence MIT, et que je vous avais présenté son portage sur les Mac Apple Silicon il y a quelques mois.

Ensuite, pour que Claude pilote Blender, il y a MCP for Blender , l'ex-blender-mcp. L'IA y écrit elle-même le Python de Blender pour la modélisation, les matériaux, l'animation, le rig et la retopologie, et le serveur lui ajoute Poly Haven, Sketchfab ainsi que la génération 3D par Tripo ou Hyper3D Rodin (il propose aussi Hunyuan3D, mais la licence de Tencent exclut l'Union européenne, donc à voir ce qu'on fait de ça chez nous...).

Côté moteur, Unity a déclaré obsolète le serveur MCP intégré à son éditeur au profit du Unity CLI , gratuit et indépendant de son offre Unity AI, qui sait configurer Claude et installer des skills Unity pour votre agent.

Ça donne ceci si vous voulez l'installer. Ça commence par Blender d'abord, et puis Unity :

uvx mcp-for-blender setup
unity pipeline install
unity mcp configure claude
unity skill install <agent-name>

Ensuite, pour sortir le jeu et qu'il tourne dans le navigateur, sachez que le WebGPU d'Unity n'est plus expérimental depuis Unity 6.6 , mais qu'il faut encore l'ajouter vous-même aux API graphiques du lecteur Web. Quant au chef d'orchestre, Claude Code, comme vous le savez, c'est payant et inclus dès l'abonnement Pro de Claude , à 20 balles par mois.

Après, le hic, c'est ce WebGPU obligatoire car le jeu exige Chrome ou Edge 113 et plus, Safari 26, ou Firefox 141 sous Windows et 145 sur les Mac Apple Silicon. Et sous Linux (si j'en crois le suivi du W3C ), Chrome ne l'active d'office qu'avec un GPU Intel récent ou une carte NVIDIA sous Wayland, et Firefox seulement en Nightly.

Donc si l'écran vous dit que votre navigateur n'est pas compatible, séchez vos larmes et essayez depuis un Mac ou un PC Windows.

Et puis si l'envie vous prend d'adapter un autre classique à votre tour, choisissez-le bien, puisque le texte de Saint-Exupéry reste protégé en France jusqu'en 2032 et que ses héritiers exploitent le nom et les personnages comme étant des marques . Du coup, y'a des chances que Little Prince, le jeu, saute rapidement.

La rose va être bien triste encore...

Source : littleprince.dev

  •  

xboxrecomp - Transformer un jeu Xbox en .exe Windows

xboxrecomp est un outil de recompilation qui vient de voir le jour et qui devrait vous intéresser si vous êtes nostalgique de la première Xbox. En effet, ce dernier prend l'exécutable d'un jeu de la Xbox originale, traduit chacune de ses fonctions x86 en code C, puis recompile le résultat en programme Windows 100% natif. Cela veut dire que le jeu ensuite peut tourner directement sur votre ordinateur, sans faire appel à un interpréteur ni à un émulateur. C'est ce qui s'appelle de la recompilation statique, et je vous en parle régulièrement parce que je trouve ça assez magique (rappelez vous de Zelda 64 recompilé ).

Le dépôt de xboxrecomp ne contient évidemment aucun fichier de jeu pour ne pas s'exposer au courroux des ayants-droits. Vous devez donc avoir votre propre disque, en extraire le default.xbe, et la chaîne d'outils (du Python avec capstone, puis Visual Studio 2022 pour compiler) génèrera chez vous tout le code C du jeu. Pas de bouton magique, par contre, le premier lancement d'un jeu recompilé plantera et ensuite, ça avancera crash après crash. Notez que ce projet s'est construit avec Claude Code également.

Pour le moment, le seul jeu qui va au bout de sa recompilation, c'est Burnout 3: Takedown. Tous les modes démarrent et se jouent, seul ou à deux, mais les menus tournent à environ 14 images par seconde et les courses à 2 à 4 FPS sur une machine à 12 cœurs. Y'a pas non plus de possibilité de faire des sauvegardes et c'est manette obligatoire. Bref, c'est pas encore très jouable.

En fait le problème c'est le GPU de la Xbox (le NV2A) qui est émulé en logiciel, et c'est malheureusement ça qui fait chuter les FPS. Le "No emulation" du slogan ne vaut donc que pour le processeur, mais pas les morceaux audio ni le GPU repris de xemu. Mais ça changera peut-être bientôt.

Maintenant, si vous cherchez un jeu Xbox précis à installer, regardez plutôt du côté de SCDA-XBERecomp , qui est l'inverse de xboxrecomp. C'est n'est pas un outil universel mais une recompilation uniquement du jeu Splinter Cell: Double Agent. Celui-ci réimplémente le noyau, Direct3D et DirectSound côté Windows, et vous laisse régler le champ de vision ou lever la limite de 30 images par seconde.

Et si vous voulez juste rejouer à vos jeux Xbox ce soir, un émulateur comme xemu fera très bien comme d'hab.

Moi de mon côté, j'avance toujours sur mon recompilateur universel de ROMs Kompote et ça marche vraiment très bien. Là je suis en train d'implémenter le support des jeux Amiga... je pense que dans quelques jours, ce sera cuit à point.

Source : xboxrecomp sur GitHub

  •  
❌