Lợi ích của việc sử dụng EncodePointer/DecodePointer trong Windows là gì?lợi ích của việc sử dụng EncodePointer/DecodePointer
MSDN
nói:
Mã hóa con trỏ có sẵn trên toàn cầu giúp bảo vệ chúng không bị khai thác. Chức năng EncodePointer làm xáo trộn giá trị con trỏ bằng một bí mật sao cho nó không thể được dự đoán bởi tác nhân bên ngoài. Bí mật được sử dụng EncodePointer là khác nhau cho mỗi quá trình.
Bây giờ câu hỏi là: Nếu kẻ tấn công nằm ngoài chương trình của tôi, thì không gian địa chỉ của nó khác với không gian địa chỉ của tôi, vì vậy địa chỉ trong ứng dụng của tôi không thể sử dụng được. và nếu nó có thể thực thi mã trong không gian địa chỉ của tôi, nó có thể gọi DecodePointer và sử dụng địa chỉ đó để gọi con trỏ được mã hóa.
Vì vậy, việc sử dụng các chức năng này là gì và chúng giúp tôi tăng cường bảo mật như thế nào?
Nếu kẻ tấn công * không * bên ngoài chương trình của bạn thì sao? Như, nói ... mọi kẻ tấn công trong lịch sử? –
@KerrekSB Nếu nó nằm trong chương trình của tôi ?! Sau đó, nó chỉ đơn giản có thể gọi ** DecodePointer ** trên con trỏ hàm của tôi và sau đó thường gọi nó. Lợi ích của việc mã hóa một cái gì đó trong khi giải mã đơn giản như gọi một hàm mà không có bất kỳ khóa hoặc thứ gì đó như thế? và điều gì làm cho kẻ tấn công không thể gọi ** DecodePointer **? –