2012-01-12 41 views
6

Tôi biết rằng bạn có thể bẫy cuộc gọi hệ thống bằng cách sử dụng ptrace. Nhưng những gì tôi muốn làm là bỏ qua một cuộc gọi hệ thống. Vì vậy, có thể cho ptrace để bẫy cuộc gọi hệ thống, xem số của nó và nếu số là cuộc gọi hệ thống bị bỏ qua, ptrace sẽ ngừng cuộc gọi hệ thống từ khi tiếp tục hoặc gọi lại hệ thống ngay lập tức.Bỏ qua cuộc gọi hệ thống

Vấn đề là chúng ta nên có tác dụng khiến ứng dụng bỏ qua các cuộc gọi hệ thống cụ thể bằng cách sử dụng ptrace.

Trả lời

3

Bạn có thể thử PTRACE_GETREGSPTRACE_SETREGS.
Nếu bạn thay đổi eip để sau cuộc gọi hệ thống và eax để làm cho giá trị trả lại hợp lệ, cuộc gọi có thể bị bỏ qua.
Nhưng tôi đã không thử nó, và sẽ không ngạc nhiên nếu nó không hoạt động.

+0

Thay đổi eip sau cuộc gọi hệ thống! Đó không phải là dễ dàng người bạn của tôi :( – MetallicPriest

+3

@MettalicPriest: không dễ dàng, nhưng để thay đổi hành vi của chương trình ptraced, bạn sẽ cần phải muck xung quanh với các bên trong trạng thái máy của nó. –

Các vấn đề liên quan