Linux exécuté dans un PDF
(linux.doompdf.dev)- LinuxPDF est une démo qui exécute une VM Linux à l’intérieur d’un PDF, en intégrant dans le document l’écran de la VM ainsi qu’une interface de saisie au clavier
- L’environnement d’exécution est limité aux navigateurs basés sur Chromium, ce qui rend son fonctionnement peu probable dans d’autres environnements PDF
- Les entrées clavier peuvent être envoyées à la VM en cliquant sur les boutons de touches à l’écran ou en tapant directement dans le champ de saisie en haut
- Les touches proposées incluent Esc, Tab, Enter, Shift, Ctrl, Alt, les flèches, Home/End, PgUp/PgDn, F1~F12, ainsi que les touches numériques et alphabétiques
- Les utilisateurs qui veulent examiner l’implémentation peuvent consulter le code source dans le dépôt GitHub linuxpdf
Démo d’une VM Linux dans un PDF
- LinuxPDF est une démo qui exécute une VM Linux à l’intérieur d’un document PDF
- L’environnement de fonctionnement est limité aux navigateurs basés sur Chromium
- L’écran affiche le texte
Loading..., qui indique l’état de chargement de la VM
Envoyer des entrées clavier à la VM
- Il existe deux méthodes de saisie
- cliquer sur les boutons de touches affichés à l’écran
- taper directement dans le champ
Type here for keyboard inputs.
- La touche actuellement pressée peut être vérifiée dans la zone
Pressed:
Disposition des touches disponibles
- Touches de contrôle et touches spéciales
- Esc, Tab, Caps, Enter, Shift, RShift, Ctrl, Alt, Space, Menu
- Home, Ins, Del, End, PgUp, PgDn
- Flèches et touches de fonction
^,<,v,>- de F1 à F12
- Saisie standard
- chiffres 1~0,
-,= - touches alphabétiques QWERTY
[,],;,',,,.,/,\\,`
- chiffres 1~0,
Code source
- Source code : dépôt du code source de LinuxPDF
1 commentaires
Commentaires Hacker News
Ça ne fonctionne pas et le document ne réagit pas. Pour référence, j’ai utilisé une imprimante HP DeskJet 2820e
Ces derniers jours, « exécuter Linux dans un PDF » et « la façon de donner un PDF à un LLM » ont chacun fait parler d’eux, et si les gens commencent à brancher toutes sortes de parseurs et évaluateurs de PDF à des LLM, il pourrait y avoir des possibilités de hack assez intéressantes
En y ajoutant le fait que des lecteurs populaires comme Acrobat ont un nombre effroyable de vulnérabilités, cela devient une porte d’entrée parfaite pour pirater une entreprise
C’est un billet qui avait été posté il y a quelques jours : https://news.ycombinator.com/item?id=42891937
Le dépôt contient aussi des explications et des informations sur le fonctionnement des mécanismes internes
Le voilà enfin. Ça faisait trop longtemps que je plaisantais en disant : « Je vais mettre Linux.js dans un PDF, pour exécuter Linux dans un PDF dans un navigateur dans Linux dans un PDF dans un navigateur dans Linux »
Faire ça en JavaScript donne un peu l’impression de tricher. Je me demande si quelque chose de similaire serait possible en PostScript
Plus tard, ils ont changé d’avis et ont ajouté la prise en charge de JavaScript
zmachine.ps, un interpréteur ZMachine permettant de jouer à des jeux d’aventure textuelsIl existe bien sûr aussi un moteur d’échecs et un morpion en PostScript, et avec assez de patience on pourrait probablement même faire tourner des jeux NES, même s’il faudrait peut-être beaucoup manipuler la pile
On peut enfin exécuter
rm -rf /dans un PDF"shredpage"Si vous en copiez 10 sur une clé USB, vous pouvez profiter d’un cluster Kubernetes portable
https://news.ycombinator.com/item?id=42681039
VirusTotal remonte au moins 3 détections, mais je ne sais pas trop si c’est significatif
ClamAV: Js.Trojan.Obfus-48
Cylance: Unsafe
Google: Detected
Il suffit de définir
pdfjs.enableScriptingsurfalsedans leabout:configde FirefoxMais au fait, existe-t-il aussi un éditeur PDF pour Linux capable d’exécuter Linux dans un PDF ? Ça ne se charge pas dans Evince
Ce genre de « coder dans un PDF » semble presque toujours viser Chrome comme environnement d’exécution. Je ne sais pas s’il y a une raison, par exemple parce que Chrome autoriserait davantage d’exécution de code dans les documents