2011-10-07 29 views
12

như bạn có thể biết một không thể tạo ổ cắm RAW bằng cách sử dụng Ổ cắm Windows mà không có đặc quyền quản trị. Vấn đề là, tôi cần phải gửi tin nhắn ICMP, vì vậy tôi cần ổ cắm RAW. Vấn đề: Chương trình của tôi cần chạy mà không có quyền quản trị.Tại sao ping hoạt động mà không có đặc quyền quản trị viên?

Điều đó dẫn tôi đến câu hỏi, cách công cụ ping gửi tin nhắn ICMP với quyền quản trị?

+0

Thử thực hiện cuộc gọi hệ thống tới 'ping [tên máy chủ]' trong ứng dụng của bạn - Tôi không nghĩ rằng cần có quyền quản trị. Ngoài ra, những gì bạn đã thử, và nếu nó không, thông báo lỗi là gì? – jefflunt

+0

Tôi không chắc rằng nó hoạt động không có đặc quyền quản trị viên. Trước đây tôi đã ping trở lại với một số thông báo lỗi "truy cập bị từ chối" trong Vista. Win7 của tôi không, nhưng tôi đã tắt UAC, vì vậy tình hình hiện tại của tôi có thể không điển hình. –

+0

@normalocity: Tôi không cần ping, tôi cần một số thông báo ICMP khác. Đó là lý do tại sao tôi muốn biết, làm thế nào ping có thể gửi ICMP w/o quyền admin ...;) – dom0

Trả lời

13

Mặc dù ICMP sử dụng ổ cắm RAW (yêu cầu quyền quản trị trên Win2K trở lên), Microsoft tránh các quy tắc bảo mật riêng của mình để cho phép API ICMP của nó vượt qua. Như vậy, không sử dụng ổ cắm RAW trực tiếp để gửi tin nhắn ping ICMP của riêng bạn. Sử dụng IcmpSendEcho() và các chức năng liên quan để thay thế.

+0

Cảm ơn đã giúp tôi rất nhiều! – dom0

+0

@Remy Lebeau Trong đó đơn vị hoặc trình bao bọc là 'IcmpSendEcho' được triển khai? – user1580348

+0

@ user1580348: nếu bạn [đọc tài liệu] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa366050.aspx), bạn sẽ thấy rằng đó là một hàm được xuất trong 'Icmp. dll' (Win2K) và 'Iphlpapi.dll' (XP trở lên). –

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