Vue lecture

Half-Life 2 dans le navigateur - Le hack d'un lycéen

Vous vous souvenez de la première fois que vous avez lancé Half-Life 2 et que vous avez attrapé une caisse avec le gravity gun ? Eh bien un lycéen qui se fait appeler slqnt vient de remettre tout ça dans votre navigateur, gratuitement, sans avoir à installer Steam ni à télécharger le moindre gros paquet. Ça se passe sur hl2.slqnt.dev , c'est en ligne depuis hier, et le jeu tourne tout en fluidité, largement au-dessus des 60 images par seconde directement sous Chrome.

Sur mobile par contre, il vous faudra un clavier branché parce que les contrôles tactiles sont quasi inexistants pour l'instant, mais sur un PC, vous lancez la page et vous voilà à Black Mesa East.

Maintenant, le plus intéressant c'est comment il s'y est pris, parce que porter un jeu bâti sur le moteur Source de Valve (le même que celui de 2004, successeur de GoldSrc) dans un onglet, ça ne se fait pas en claquant des doigts.

Et slqnt n'est pas parti de zéro puisque c'est un copain qui lui a montré un portage de Portal fait par un autre dev nommé weliveinhell. Ce projet open source était d'ailleurs lui-même un fork de nillerusr/source-engine , c'est-à-dire une version modifiée de la fuite du code du moteur Source de Team Fortress 2 qui a circulé en 2020. Voilà pour la base du truc qui n'est ni plus ni moins que le moteur leaké patiemment retapé par la communauté.

L'astuce de ce portage tient dans un mode de rendu appelé ToGLES. En gros le moteur sait parler OpenGLES, le truc qu'on utilise d'habitude pour les applis Android, sauf qu'Emscripten sait traduire ces appels en WebGL2 dans le navigateur. Résultat, slqnt n'a eu quasiment aucun travail à faire côté affichage, le plus dur étant déjà fait.

Le casse-tête par contre, ça a été d'abord les assets, parce que cette version du moteur date d'avant la réédition anniversaire de HL2 et ne supportait pas ses fichiers. Il a donc fallu basculer sur la branche steam_legacy de Steam, puis dépaqueter tous les VPK du jeu et les redécouper en fichiers .data, un par carte, pour que le navigateur les charge au fur et à mesure.

Et puis il y a eu les animations faciales. C'était l'une des grandes fiertés techniques de HL2 à sa sortie, la façon dont les visages bougeaient en parlant. Sauf que ça faisait tellement planter le portage que slqnt a fini par désactiver complètement le système pour avoir quelque chose de stable.

Du coup le G-Man vous fait son monologue d'intro avec un visage figé, mais au moins ça tourne. Le reste de son journal de bord est également une jolie liste de galères de bidouilleur, vu de l'intérieur avec au hasard, les sauvegardes à recâbler sur le système de fichiers d'Emscripten, les batteries et medkits qui ne fonctionnaient pas, le gravity gun qu'Alyx vous tend mais qui n'arrivait jamais dans l'inventaire, les PNJ qui s'effondraient et mouraient au hasard, les headcrabs qui ne faisaient aucun dégât, l'eau toute noire et j'en passe...

Petit détail qui parle à quiconque a déjà bidouillé un jeu, il a dû remapper l'accroupissement sur la touche C, parce que CTRL déclenchait des raccourcis du navigateur qui pourrissent la partie.

Reste maintenant la question que tout le monde se pose : Est-ce que Valve est au courant ? Parce qu'un portage qui repose sur du code moteur leaké et sur les assets du jeu, légalement, c'est une zone grise bien grise qui tire vers le noir.

Valve a toujours été plutôt cool avec sa communauté de moddeurs, mais ça pourrait disparaître du jour au lendemain. Après si l'idée d'un jeu Source qui tourne dans un onglet vous fait marrer, c'est exactement le même esprit que ce Portal 2 transformé en serveur web , ou que ce Doom qui tourne avec juste du CSS . Mettre les vieux FPS dans le navigateur, c'est presque devenu un sport, je vous en parlais déjà avec Wolfenstein 3D .

Bref, foncez essayer tant que c'est en ligne. Et si vous y arrivez sur mobile sans clavier, écrivez vite un bouquin pour raconter comment vous avez fait !

Source

  •  

Adblock for YouTube - 10 millions d'installs et un piège dormant

Mise à jour du 26 juin 2026 : Mathias Rochus, le fondateur d'AdBlock Ltd qui édite l'extension, m'a contacté pour réagir. Il souligne que cette capacité n'a jamais servi (le rapport Island le confirme) et que le scriptlet en cause, trusted-create-element, n'est pas maison : il vient de la bibliothèque open-source de scriptlets d'AdGuard que beaucoup de bloqueurs embarquent. Surtout, il annonce corriger les deux problèmes dès aujourd'hui : suppression pure et simple du scriptlet inutilisé pour qu'aucune config serveur ne puisse l'appeler, et vérification du vrai domaine youtube.com au lieu d'une chaîne posée n'importe où dans l'URL. La nouvelle version doit encore passer la revue de Google.

Une précision quand même, parce que c'est le cœur du sujet : selon le rapport Island, quand le serveur renvoie certains paramètres, l'élément créé est une balise <script> dont le contenu est fourni directement par le serveur. Autrement dit, le verrou qu'on retire servait bien à faire tourner du code venu d'ailleurs. Le correctif, lui, est une bonne nouvelle pour les 10 millions d'utilisateurs. Je reviendrai vérifier une fois la mise à jour en ligne.


Si vous avez installé une extension qui s'appelle "Adblock for YouTube" pour virer les pubs de vos vidéos, prenez deux minutes pour lire mon article.

Les chercheurs Oleg Zaytsev et Shachar Gritzman, de la boîte de sécurité Island, viennent de passer au peigne fin une de ces extensions installée par plus de 10 millions de personnes, et ce qu'ils ont trouvé dedans n'est pas très joli joli. Le truc affiche fièrement un badge "Featured" sur le Chrome Web Store, fait bien le boulot promis (il bloque les pubs), mais il embarque aussi de quoi exécuter n'importe quel bout de JavaScript sur n'importe quel site que vous visitez.

Et ça, ça craint !

Mais avant que vous fermiez l'onglet en panique, sachez tout d'abord qu'il existe plusieurs extensions qui portent ce nom. Celle qui pose problème a un identifiant précis, cmedhionkhpnakcndndgjdbohmhepckk. Donc pour vérifier, tapez chrome://extensions dans votre barre d'adresse, activez le "Mode développeur" en haut à droite, et regardez l'ID affiché sous chaque extension. Si vous tombez sur celui-là, virez-la sans réfléchir. Si c'est un autre identifiant, ce n'est pas l'extension visée par cette analyse, ce qui ne veut pas dire pour autant que tous les bloqueurs du store sont blancs comme neige, hein...

Ce qui inquiète Island, ce n'est pas une ligne de code qui vole vos données là, maintenant mais plutôt une capacité en sommeil. L'extension contient ce que les chercheurs appellent les ingrédients architecturaux pour faire tourner du code arbitraire, et la mèche peut être allumée par un simple changement côté serveur sans que cela se voit.

En clair, du jour au lendemain, le bidule pourrait se mettre à lire vos pages, aspirer vos données et à agir à votre place dans vos comptes perso, vos applis de boulot ou vos panneaux d'admin. Au moment de l'analyse, le mécanisme dormait. Il n'était pas absent.

Et le détail qui fait sourire jaune, c'est quand même ce garde-fou censé limiter l'extension à YouTube. En théorie elle ne s'active que sur le site de Google mais en pratique, elle tourne sur absolument tous les sites, avec une vérification qui regarde juste si la chaîne "youtube.com" apparaît quelque part dans l'URL.

Oui n'importe où, du coup une adresse comme bank.example.com/search?q=youtube.com passe le test sans problème donc autant vous dire que le verrou ne verrouille pas grand chose...

Cette extension traîne sur le store depuis 2014. Au départ c'était donc un bête bloqueur de pub YouTube, jusqu'à un changement de propriétaire en 2018. Les premières versions embarquaient carrément un SDK d'injection de pub baptisé Unistream, finalement retiré en juin 2024, et les chemins d'injection de script pilotables à distance sont présents depuis février 2025. 3 autres extensions de blocage de pub liées au même écosystème ont déjà été dégagées du Chrome Web Store pour cause de malware.

Toutefois, pour le moment, il n'y a aucune preuve qu'un payload malveillant ait réellement été poussé aux utilisateurs, mais c'est la combinaison de plusieurs de ces facteurs qui pue : une extension à 10 millions d'installs, un accès à tous les sites, un canal d'injection téléguidé, un passé d'injection de pub et des cousines déjà bannies. Gloups !

Donc je vous conseille vivement de faire le tour de vos extensions. CRXplorer vous aidera à débusquer celles qui sont louches, et si vous cherchez à bloquer les pubs proprement, j'avais fait le point sur les bonnes méthodes pour ça . Petit rappel au passage, sur Chrome le uBlock Origin complet a été débranché par le passage à Manifest V3, et il ne reste que sa version Lite, forcément moins fortiche.

Donc si vous voulez le vrai, c'est sur Firefox que ça se passe maintenant.

Bref, méfiez-vous des bloqueurs de pub qui réclament la lune et au moindre doute sur l'ID, désinstallez cette merde !

Source

  •  
❌