再多一眼看一眼就会爆炸
还是 32 位程序
虽然没有检测到 canary 保护
但是在主函数中看到了 canary 函数
跟进看看
从文件中读取 4 个字节的 canary 值,存入 global_canary
我们再来看 ctfshow 函数:
canary 的值放到了 s1
nbytes 决定着我们的读入长度,并且这个值我们可控,那就可以溢出
最后会比较 s1 和 global_canary 是否一样,不一样就退出程序
说白了就是一个 canary 保护
只不过这个 canary 值是从文件里面读取的