如何检测写入堆栈地址的线程?

时间:2012-08-26 19:55:16

标签: c linux assembly gdb

我看到传递给函数的变量的值在从函数返回后变为null。变量被推送到堆栈,而返回时则弹出。我们有办法找到罪魁祸首吗?我可以保护那个堆栈位置吗?我检查了程序集,没有看到任何可能改变堆栈的rbp偏移量?

push   %rbp
mov    %rsp,%rbp
push   %rbx

.....................



add    $0x8,%rsp
pop    %rbx
leaveq

2 个答案:

答案 0 :(得分:1)

我认为操作系统应该保护您的进程免受其他任何弄乱其内存的进程的影响。你确定你的程序中没有内存损坏吗?你有多个线程吗?这些人更可能是另一个流氓程序的罪魁祸首。

答案 1 :(得分:1)

正常调试程序。你试图让事情变得比他们需要的更难。