-
-
[求助]哪位大神帮忙看看:关闭GS和safeSEH的情况下,部分ebp和返回地址还是无法被淹没
-
发表于:
2017-4-6 11:40
3451
-
[求助]哪位大神帮忙看看:关闭GS和safeSEH的情况下,部分ebp和返回地址还是无法被淹没
想做一个缓冲区溢出的实验,代码很简单:
用vs2010编译的代码,编译选项中关闭了GS和safeSEH,调试结果发现最初始的ebp和返回地址以及入参都无法被淹没,而再往后的一系列的ebp、返回地址和SEH等都被淹没了:
在程序调试过程中,赋值部分的代码都是跑的正常的,只是在往002AF7EC处写数据的时候,F8单步调试这部分代码,却看到内存中的数据没有任何变化,此时也没有抛出任何异常,相当于到002AF7EC处时跳过了这几处地址直接往后淹没了。
两个疑问,求指点:
1) 002AF7EC处的返回地址为什么无法被覆写?难道是因为它是prolog创建的吗?还是系统的什么安全措施?
2) 因为没有看到任何内存读写异常,所以很好奇002AF7EC起始的几处内存无法被淹没是如何实现的?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)