作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 Windows 中使用 EncodePointer/DecodePointer 有什么好处?
MSDN
说:
编码全局可用的指针有助于保护它们不被利用。 EncodePointer 函数使用 secret 混淆指针值,使其无法被外部代理预测。 EncodePointer 使用的 secret 因每个进程而异。
现在的问题是:如果攻击者在我的程序之外,那么它的地址空间与我的地址空间不同,所以我的应用程序中的地址对其不可用。如果它可以在我的地址空间中执行代码,它可以调用 DecodePointer 并使用该地址来调用编码指针。
那么这些函数的用途是什么以及它们如何帮助我提高安全性?
最佳答案
您错过了意图,EncodePointer() 可以防止恶意数据。在恶意代码变得有害之前,它需要首先开始运行。完成这项工作的基本方法是覆盖函数调用的返回地址或覆盖函数指针。程序本身现在通过分别从函数返回或通过函数指针调用来激活代码。 EncodePointer 保护函数指针,攻击者无法猜测如何对他写入的数据进行编码,以便在程序的 DecodePointer() 调用后它仍然指向他的代码。
数据不能调用EncodePointer。
关于c++ - 使用 EncodePointer/DecodePointer 的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20260523/
在 Windows 中使用 EncodePointer/DecodePointer 有什么好处? MSDN 说: 编码全局可用的指针有助于保护它们不被利用。 EncodePointer 函数使用 se
我是一名优秀的程序员,十分优秀!