Simon Willison
85

Thủ thuật

Khi file thực thi cũng chính là một cơ sở dữ liệu SQLite

(giờ Việt Nam)

Tóm tắt AI

Farid Zakaria giới thiệu kỹ thuật độc đáo biến file SQLite thành tệp thực thi Linux bằng cách tận dụng định dạng ELF và cơ chế binfmt_misc, cho phép hệ điều hành chạy trực tiếp dữ liệu từ file SQLite.

Bản dịch AI

24 tháng 8 năm 2026 - Link Blog

Tệp thực thi của bạn là một cơ sở dữ liệu SQLite (via) Farid Zakaria mô tả một mô hình Linux thú vị để tạo ra một tệp cơ sở dữ liệu SQLite có thể được sử dụng trực tiếp như một tệp nhị phân thực thi.

Thủ thuật này thiết lập ID ứng dụng 4 byte của định dạng tệp SQLite (nằm ở byte thứ 68 của tệp) thành SELF, viết tắt của Structured Executable & Linkable Format (Định dạng Liên kết & Thực thi Cấu trúc). Các thành phần khác nhau của định dạng tệp thực thi ELF sau đó được sắp xếp vào một số bảng SQLite khác nhau, sử dụng lược đồ này.

Trình thông dịch tự thực thi (self-exec interpreter) của họ (mã C tại đây) sau đó có thể trích xuất và thực thi các phần cần thiết.

Bạn có thể sử dụng thêm một cơ chế của Linux gọi là binfmt_misc để hướng dẫn kernel thực thi tệp đó bất cứ khi nào nó gặp một tệp nhị phân khớp với mẫu đó. Farid sử dụng NixOS ở đây, nhưng nếu không có NixOS, tôi nghĩ việc đăng ký sẽ trông giống như thế này:

SQLiteLinuxLập trình hệ thốngKỹ thuậtELF
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Simon Willison. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.