用户1340774522  转发了 @tombkeeperVM 的微博:【有哪些让你目瞪口呆的 bug?】

早年堆栈溢出 JMP ESP 就能执行的时候,我写过一个程序去找各种 JMP ESP 的同功地址。比如 MOV EAX, ESP/JMP EAX,也包括 CALL ESP。

然后在测试的时候发现,用 CALL ESP 写的攻击程序在某些机器上永远不能成功,而在另一些机器上百试百灵。最后发现影响因素是 CPU:在 AMD 的 CPU 上正常工作,换 Intel 的 CPU 就不行。

原来当时 Intel 的 CPU 有个延续了很多年的 Bug:CALL ESP 也会和别的 CALL 指令一样,先把目标的下一条指令的地址压到堆栈里。也就是说,CALL ESP 会先修改 ESP 的内容,所以一执行就出错。

还遇到过一批电脑,这批电脑中的任何一台,只要用 GCC 编译 OpenSSL 就会死机。

我先后尝试过在 Windows 上用 MinGW 编译、在 Windows 上用 Cygwin 编译、在 Windows 上用虚拟机装 Linux 编译、格式化硬盘后直接装上 Linux 编译,全都会死机。而且具体编译到哪儿死机是没准的。

这个我猜问题也出在 CPU 上,但始终没搞清楚是什么 BUG。

2019-01-12
https://www.zhihu.com/question/21747929/answer/572278167
 原文转发[31]  原文评论[21]
转发理由: //@Libre盖子:还有当年的 SYSRET 提权漏洞。SYSRET 是原本 amd64 的指令,Intel 从 AMD 获得了 amd64 的授权后也实现了它。但是 Intel 的工程师可能没仔细看 datasheet,结果两个指令的权限处理有区别。AMD 的 CPU 都是安全的,Intel 的则可以用来提权…… //@刘鑫Mars: 哈哈哈哈哈哈bug拯救世界!   2019-01-13 09:15:22  举报 收藏 操作
 转发  评论  赞[0] 
评论只显示前140字:

 
还没有人针对这条微博发表评论!