我读到过,要想成功地返回lib-c攻击,攻击者应该把命令的地址(例如 "bin/sh")准确地存储在堆栈上,然后再返回到'system'函数(例如)的地址。
所以'system()'函数读取该地址作为其'参数'并执行该命令。但是现在在反汇编了一个调用system()的程序后,我注意到它并没有使用堆栈来获取那个字符串的地址("bin/sh")。相反,该地址被存储在EDI或RDI寄存器中。只要攻击者不能访问这些寄存器,就有可能进行这样的攻击?
![]() |
怕考试的杯子 · python selenium 多次执行 ...· 7 月前 · |
![]() |
温柔的槟榔 · 干货 | 成本低误差小,携程基于 ...· 1 年前 · |
![]() |
深情的钱包 · map.find与string.find的返 ...· 1 年前 · |
![]() |
乖乖的手术刀 · 使用 Python ...· 1 年前 · |
![]() |
温文尔雅的小蝌蚪 · 讨论区_python基础_m0_541505 ...· 1 年前 · |