首页 > 解决方案 > 金丝雀泄漏 (scanf("%d", num)

问题描述

我正在为一些关于堆栈金丝雀的缓冲区溢出练习而苦苦挣扎。假设在 main 函数中,我们有一个缓冲区buf和一个整数num

所以在 main 函数内部,它看起来像这样:

char buf[32] = {0};
fflush(stdout);

int num;
scanf("%d", &num)
getchar();
print("%lu", *(unsigned long *)(buf + num));

有什么方法可以让金丝雀泄漏scanf("%d", num)吗?我一直在网上做一些研究,但我得到的最接近的是,给出一个负数scanf(....可能会导致内存泄漏(泄漏金丝雀)。但我似乎无法理解这是如何工作的

非常感谢任何帮助我朝着正确方向前进的帮助!!

标签: memory-leaksscanfbuffer-overflow

解决方案


推荐阅读