从vc7以后对调试缓冲区溢出有了很多办法,vc6貌似没有直接的办法,要么用第三方工具。
下面有一个土一点的办法:
1. 一般函数调用前都有push ebp; move ebp, esp;这样的语句,这两条语句是为了保存返回地址。可以在move ebp, esp之前查看ebp的值,然后在内存窗口的地址中输入ebp的值,不要关闭内存窗口。
2. 单步前进,同时关注内存窗口。如果发现值变了,(这个时候窗口的值会变红),就说明这条语句发生了缓冲区溢出。
3.如果这条语句调用了一个很大的函数,可以同样进行。
这个方法只使用于有调试信息的情况。