基本上,我希望通过将SIGSEGV捕获到特定位置来模拟内存。这些位置将是零权限映射使用mmap()。表现并不重要,因为它只是一个实验。我想出了如何计算在处理程序中访问的内存位置,但我一直在试图弄清楚是否发生了写入的读取,以及如何用假数据模拟成功的读取,或者如何模拟成功的写入,拦截写入的数据。
你能给我一些提示吗?或者其他的方法(也许是与信号无关的东西)?
我希望能在广域网上找到更多关于这一点的信息,我想在lol之前没有人有过这样愚蠢的想法。
谢谢
发布于 2022-08-12 06:18:46
我不太明白你所说的模拟是什么意思。有更多的未知-访问的宽度,副作用等。无论如何,如果你要找到所有缺失的部分,你下一步要做什么?
如果您只是模拟一个访问,并从处理程序返回,CPU将重新运行错误的指令,并猜怎么着?-它将立即分段错误再次。
现在打开一罐蠕虫.
你可以试着
registers)
ucontext中找到指向
计算出(doubleplustricky)
ucontext appropriately
返回的
我相信拐角处的案件会太多。
现在打开另一罐蠕虫
另一种更像调试器的方法是实现一个单步处理程序.在分段故障处理程序中
protection
ucontext
。
在一个单步处理程序中
的操作。
https://stackoverflow.com/questions/73320747
复制相似问题