1 điểm bởi GN⁺ 2025-02-08 | 1 bình luận | Chia sẻ qua WhatsApp
  • LinuxPDF là một bản demo chạy Linux VM bên trong PDF, đặt chung màn hình VM và giao diện nhập bàn phím trong PDF
  • Môi trường chạy bị giới hạn ở trình duyệt dựa trên Chromium, nên khó kỳ vọng nó hoạt động trong các môi trường PDF khác
  • Có thể gửi phím nhập vào VM bằng cách nhấn nút phím trên màn hình hoặc gõ trực tiếp vào ô nhập phía trên
  • Các phím được cung cấp bao gồm Esc, Tab, Enter, Shift, Ctrl, Alt, phím mũi tên, Home/End, PgUp/PgDn, F1~F12, cũng như phím số và chữ cái
  • Người dùng muốn kiểm tra cách triển khai có thể xem mã nguồn trong kho linuxpdf trên GitHub

Demo Linux VM trong PDF

  • LinuxPDF là một bản demo chạy Linux VM bên trong tài liệu PDF
  • Môi trường hoạt động bị giới hạn ở trình duyệt dựa trên Chromium
  • Trên màn hình có dòng Loading... cho biết trạng thái tải của VM

Gửi phím nhập vào VM

  • Có hai cách nhập
    • Nhấn nút phím hiển thị trên màn hình
    • Gõ trực tiếp vào ô nhập Type here for keyboard inputs.
  • Có thể kiểm tra phím hiện đang được nhấn trong khu vực Pressed:

Cấu hình phím được cung cấp

  • Phím điều khiển và phím đặc biệt
    • Esc, Tab, Caps, Enter, Shift, RShift, Ctrl, Alt, Space, Menu
    • Home, Ins, Del, End, PgUp, PgDn
  • Phím mũi tên và phím chức năng
    • ^, <, v, >
    • Từ F1 đến F12
  • Nhập phím thông thường
    • Số 1~0, -, =
    • Các phím chữ QWERTY
    • [, ], ;, ', ,, ., /, \, `

Mã nguồn

1 bình luận

 
GN⁺ 2025-02-08
Ý kiến trên Hacker News
  • Không hoạt động và tài liệu không phản hồi. Tham khảo: tôi dùng máy in HP DeskJet 2820e

    • Có lẽ mỗi lần quét phải khoanh tròn khóa đúng rồi nhập lặp lại vào máy quét
    • PDF thực ra có tính năng định nghĩa riêng những thành phần nào sẽ hiển thị trên màn hình và những thành phần nào sẽ được in (Optional Content)
  • Trong vài ngày gần đây, “chạy Linux bên trong PDF” và “cách đưa PDF vào LLM” lần lượt trở thành chủ đề nóng; nếu mọi người bắt đầu gắn nhiều loại bộ phân tích cú pháp và bộ đánh giá PDF vào LLM thì có vẻ sẽ mở ra những khả năng hack khá thú vị

    • Có thể chạy Linux bên trong LLM để dùng vào việc chiếm đoạt tài nguyên tính toán, rồi dùng nó để huấn luyện LLM hoặc đào Bitcoin
    • PDF luôn là một vector tấn công rất hấp dẫn. Phần lớn mọi người chỉ nghĩ PDF là tài liệu văn bản, không biết rằng có thể dễ dàng nhúng mã thực thi vào đó
      Cộng thêm việc các trình đọc phổ biến như Acrobat có số lỗ hổng kinh khủng, nó trở thành cửa ngõ hoàn hảo để hack vào công ty
  • Đây là bài đã được đăng vài ngày trước: https://news.ycombinator.com/item?id=42891937
    Trong kho lưu trữ cũng có phần giải thích và thông tin về cách cơ chế bên trong hoạt động

  • Cuối cùng cũng xuất hiện. Tôi đã đùa quá lâu rằng sẽ “nhét Linux.js vào PDF, rồi chạy Linux trong PDF trong trình duyệt trong Linux trong PDF trong trình duyệt trong Linux”

    • Không hẳn chính xác. PDF này vẫn chưa mở được trình duyệt!
  • Làm việc này bằng JavaScript có cảm giác hơi như ăn gian. Không biết có thể làm điều tương tự bằng PostScript không

    • Có thể, nhưng không phải bên trong PDF. PDF chỉ hỗ trợ một tập con không Turing-complete của PostScript, vì các nhà thiết kế PDF cho rằng đưa một ngôn ngữ Turing-complete vào định dạng tài liệu sẽ gây vấn đề về hiệu năng
      Về sau họ đổi ý và thêm hỗ trợ JavaScript
    • Xét về mặt tính toán thì có thể. PostScript có các phép toán số học số nguyên cần thiết để mô phỏng CPU x86, và cũng có chuỗi byte có thể thay đổi, rất phù hợp để dùng làm bộ nhớ mô phỏng
    • Trong PostScript có zmachine.ps, một trình thông dịch ZMachine có thể chơi game phiêu lưu văn bản
      Tất nhiên cũng có engine cờ vua và tic-tac-toe viết bằng PostScript; nếu đủ kiên nhẫn thì có lẽ cũng chơi được game NES, nhưng có thể phải thao tác với stack khá nhiều
  • Cuối cùng cũng có thể chạy rm -rf / bên trong PDF

    • PostScript hỗ trợ việc đó bằng toán tử "shredpage"
  • Sao chép 10 cái này vào USB là có thể tận hưởng một cụm Kubernetes di động
    https://news.ycombinator.com/item?id=42681039

  • Trên VirusTotal có ít nhất 3 phát hiện, nhưng tôi không chắc chúng có ý nghĩa gì không
    ClamAV: Js.Trojan.Obfus-48
    Cylance: Unsafe
    Google: Detected

  • Chỉ cần đặt pdfjs.enableScripting thành false trong about:config của Firefox

  • Nhưng có trình chỉnh sửa PDF nào cho Linux có thể chạy Linux bên trong PDF không? Evince không tải được

    • Nơi duy nhất tôi chạy được là Chrome. Adobe Reader, Firefox, Evince, v.v. đều không được
      Có vẻ hầu hết những kiểu “lập trình bên trong PDF” này chỉ nhắm Chrome làm môi trường thực thi. Tôi không rõ có lý do nào như Chrome cho phép chạy nhiều mã hơn bên trong tài liệu hay không