News


Fermeture définitive de la version en ligne de Hacklol Modifier, sortie de la version téléchargeable

News

La version en ligne de Hacklol Modifier a été définitivement fermée, le 21 juillet 2026, c'est-à-dire plus de 12 ans après son ouverture (en 2014) !

La raison de la fermeture : Hacklol Modifier nécessitait un proxy pour pouvoir fonctionner et charger les pages web (Hacklol Page Loader). Pour des raisons de sécurité, j'ai décidé de fermer Hacklol Modifier pour éviter de laisser un proxy ouvert sur Internet (d'autant plus que le site web est désormais hébergé sur ma propre infrastructure, et non plus sur un hébergeur gratuit comme autrefois).

Cependant, une version téléchargeable de Hacklol Modifier est désormais disponible ! Rendez-vous ici pour la télécharger.

Elle est compatible avec Windows et Linux (MacOS suivra prochainement), et ne nécessite aucune configuration compliquée : il suffit juste de lancer le .exe sous Windows ou le .AppImage sous Linux pour pouvoir utiliser l'application. L'utilisation est voulue pour être simple et accessible à tout le monde. Comme toujours, le code source est ouvert sur Github.

L'application ouvre une fenêtre avec un formulaire qui demande, comme pour la version en ligne, l'adresse URL du site à modifier (http/https). Pour le reste, le fonctionnement est identique à la version en ligne.

Fonctionnement technique

Pour ceux qui sont intéressés pour le fonctionnement technique, voici quelques explications.

Hacklol Modifier est à la base une application PHP hébergée sur un serveur Apache, stack classique en somme. Mais problématique : comment la transformer en une application de bureau qui puisse être lancée sans configuration compliquée, et sans avoir à installer PHP et Apache ? Et aussi multi-plateforme ?

J'étais tombé sur le projet Desktop PHP, mais il ne permettait pas de personnaliser grand chose. De plus, il ne permettait pas de générer un exécutable utilisable simplement. Et il n'avait plus l'air maintenu.

J'ai donc tenté de mixer Electron (qui permet de développer des applications de bureau en NodeJS, et embarque un navigateur Chromium) et PHP. Mais comment faire pour embarquer un moteur PHP sur une application Electron, tout en restant multi-plateforme ?

Je suis par la suite tombé sur le projet StaticPHP qui permet de générer un exécutable PHP portable qui embarque toutes les librairies et extensions PHP nécessaires. Il peut générer un exécutable Windows et Linux. Pile ce dont j'avais besoin.

J'ai commencé par mettre en place le système de build pour Linux sur ma machine locale, jusqu'à arriver à générer un exécutable PHP portable appelable depuis l'application Electron. Quelques étapes plus tard, j'arrivais à ouvrir Hacklol Modifier directement dans une fenêtre Electron. Pour cela, j'utilise directement PHP avec son mode serveur (qui permet de ne pas avoir besoin de bundler également Apache), ce qui a fonctionné relativement bien.

J'ai ensuite dû continuer le développement niveau Electron. J'ai mis en place un système qui permet de détecter un port TCP libre, et de demander à PHP de démarrer son serveur dessus. Par la suite, j'ai dû faire en sorte que le serveur PHP soit fermé lors de la fermeture de l'application Electron.

Par la suite, j'ai dû corriger d'autres problématiques, notamment le fait que le localStorage s'efface à la fermeture de l'application Electron (dû au fait qu'un port différent est utilisé à chaque fois). Pour cela, on stocke le localStorage dans un fichier JSON au niveau du stockage utilisateur Electron, et on le réinjecte à la prochaine ouverture de l'application.

Egalement, et chose faisable uniquement grâce au fait que via Electron, nous avons totalement la main sur le navigateur Chromium : j'ai mis en place un bypass pour contrer les anti-iframes (en manipulant les headers Content-Security-Policy), permettant d'ouvrir la plupart des sites sans le proxy Hacklol Page Loader (qui reste cependant activé par défaut), chose qui n'était pas possible sur la version en ligne.

Pour finir, j'ai mis en place un workflow Github pour générer l'exécutable PHP à la fois pour Linux et Windows. Par la suite, j'ai ajouté également l'étape de construction de l'exécutable Electron.

Le code source est disponible ici : https://github.com/Eliastik/hacklol-modifier

Commentaires