1 ポイント 投稿者 GN⁺ 2025-02-08 | 1件のコメント | WhatsAppで共有
  • LinuxPDFは、PDF内でLinux VMを実行するデモで、VM画面とキーボード入力UIがPDF内に一緒に配置されている
  • 実行環境はChromiumベースのブラウザに限定されており、他のPDF環境では動作は期待しにくい
  • キー入力は、画面上のキーボタンを押すか、上部の入力ボックスに直接タイプしてVMへ送信できる
  • 提供されるキーには、Esc、Tab、Enter、Shift、Ctrl、Alt、方向キー、Home/End、PgUp/PgDn、F1〜F12、数字・文字キーまで含まれる
  • 実装を確認したいユーザーは、GitHubのlinuxpdfリポジトリでソースコードを見ることができる

PDF内のLinux VMデモ

  • LinuxPDFは、PDFドキュメント内でLinux VMを実行するデモ
  • 動作環境はChromiumベースのブラウザに限定される
  • 画面には、VMの読み込み状態を示すLoading...という文言がある

VMにキー入力を送る

  • 入力方法は2つある
    • 画面に表示されたキーボタンを押す
    • Type here for keyboard inputs.入力ボックスに直接タイプする
  • 現在押されているキーはPressed:領域で確認できる

提供されるキー構成

  • 制御キーと特殊キー
    • Esc、Tab、Caps、Enter、Shift、RShift、Ctrl、Alt、Space、Menu
    • Home、Ins、Del、End、PgUp、PgDn
  • 方向キーとファンクションキー
    • ^<v>
    • F1からF12まで
  • 一般キー入力
    • 数字1〜0、-=
    • QWERTY文字キー
    • [, ], ;, ', ,, ., /, \\, `

ソースコード

  • Source code: LinuxPDFのソースコードリポジトリ

1件のコメント

 
GN⁺ 2025-02-08
Hacker Newsのコメント
  • 動作せず、文書が反応しない。ちなみに HP DeskJet 2820e Printer を使った

    • スキャンするたびに正しいキーに丸を付けて、これをスキャナーに繰り返し入力する必要がありそう
    • PDFには実際に、どの要素を画面に表示するか/印刷するかを別々に定義する機能がある(Optional Content)
  • ここ数日の間に「PDF内でLinuxを実行」と「PDFをLLMに投入する方法」がそれぞれ話題になったが、人々がさまざまな種類のPDFパーサーや評価器をLLMにつなぎ始めると、かなり興味深いハッキングの可能性が生まれそう

    • LLMの中でLinuxを実行して計算資源の窃取に使い、それでLLMを学習させたりBitcoinをマイニングしたりできるかもしれない
    • PDFは昔から非常に魅力的な攻撃ベクトルだった。多くの人はPDFを単なるテキスト文書だと思っており、実行可能なコードを簡単に入れられることを知らない
      Acrobatのような人気リーダーにひどく多くの脆弱性がある点まで合わせると、企業をハッキングするための完璧な入口になる
  • 数日前に投稿されていた記事: https://news.ycombinator.com/item?id=42891937
    リポジトリにも内部の仕組みがどう動作するかについての説明と情報がある

  • ついに出たか。「Linux.jsをPDFに入れて、Linuxの中のブラウザの中のPDFの中のLinuxの中のブラウザの中のPDFの中のLinuxを実行する」という冗談を、あまりにも長い間言い続けてきた

    • 正確には違う。このPDFはまだブラウザを開くことはできない
  • これをJavaScriptでやるのは少し反則のように感じる。PostScriptでも似たことが可能なのか気になる

    • 可能ではあるが、PDFの中では無理。PDFはPostScriptのチューリング不完全な部分集合しかサポートしておらず、PDFの設計者たちは文書形式の中にチューリング完全な言語を入れると性能問題が起きると考えたため
      その後、考えを変えてJavaScriptサポートを追加した
    • 計算の観点では可能。PostScriptにはx86 CPUエミュレーションに必要な整数算術演算があり、エミュレーション用メモリとして使いやすい変更可能なバイト文字列もある
    • PostScriptには、テキストアドベンチャーゲームをプレイできるZMachineインタープリタである zmachine.ps がある
      もちろんPostScript製のチェスエンジンや三目並べもあるし、忍耐力があればNESゲームもできるだろうが、スタックをかなりいじる必要があるかもしれない
  • ついにPDF内で rm -rf / を実行できるようになった

    • PostScriptは "shredpage" 演算子でそれをサポートしている
  • これを10個コピーしてUSBドライブに入れれば、ポータブルKubernetesクラスターを楽しめる
    https://news.ycombinator.com/item?id=42681039

  • VirusTotalで少なくとも3件の検出が出るが、意味があるかはよく分からない
    ClamAV: Js.Trojan.Obfus-48
    Cylance: Unsafe
    Google: Detected

  • Firefoxの about:configpdfjs.enableScriptingfalse に設定すればよい

  • ところで、PDF内でLinuxを実行するLinux向けPDFエディタもあるのだろうか? Evinceでは読み込めなかった

    • 実行できたのはChromeだけだった。Adobe Reader、Firefox、Evinceなどでは動かない
      こうした「PDF内でコーディング」系は、ほとんどがChromeを実行環境としてのみ対象にしているように見える。Chromeが文書内でより多くのコード実行を許可しているなどの理由があるのかは、よく分からない