Tôi đang làm việc trên một hệ thống giống như Ideone, nơi mã người dùng không đáng tin cậy phải chạy trong chế độ hộp cát.Cách ngăn chặn cuộc gọi hệ thống được thực hiện với ptrace
Đối với điều này, tôi đã tìm kiếm các khả năng của ptrace
cho lớp bảo vệ đầu tiên. Tuy nhiên, sau một vài thử nghiệm có vẻ như:
- Tôi có thể chặn cuộc gọi hệ thống trước khi được gọi và sửa đổi đối số đầu vào.
- Tôi có thể chặn cuộc gọi hệ thống sau khi cuộc gọi được gọi và thay đổi giá trị trả lại.
- Tuy nhiên, có vẻ như không có cách nào để ngăn chặn cuộc gọi từ hoạt động vui vẻ cả (ngoại trừ việc giết toàn bộ đơn đăng ký).
Tôi muốn chặn một số cuộc gọi hệ thống nhất định và trả lại mã kết quả giả mà không có cuộc gọi thực sự xảy ra. Có cách nào để thực hiện điều này?
PTRACE_SYSEMU? Theo manpage: "Cuộc gọi này được sử dụng giống như chế độ người dùng Linux muốn mô phỏng tất cả các cuộc gọi hệ thống của trẻ" – Krumelur