2012-02-27 55 views
3

在这个this question中,我介绍了一些我已经实现的并行语言的背景知识。编译器生成本机x86-32代码。在Windows x86-64下,有多少压入32位堆栈的异常?

一个关键的实现决定是从堆中为每个函数(调用)分配堆栈空间。这允许递归,直到你用完虚拟机,并启用一个仙人掌堆栈,甚至适用于嵌套并行子代的词法范围等。

编译器的代码生成器可以计算函数本身需要多少堆栈空间;这很麻烦但很简单,它已经做得很好。操作系统调用的堆栈需求没有问题;我的函数不做任何(如果需要的话,代码切换到标准的“大堆栈”,系统调用,然后切换回来)。为了在异常和异步调用的情况下安全,它会向函数所需的堆栈空间添加一个令人震惊的常量,目前大约有500个字节,旨在覆盖x86-32完整的上下文保存,并通过windows 32体验进行校准。

这种语言和异步异常处理在x86-32系统上都很好用。我们偶尔会在x86-64系统上运行这个32位实现的问题。我怀疑一个异常堆栈溢出。

问题是,当在Windows 64机器上运行我的32位实现时,Windows能够将多少硬件异常或StopThread调用压入栈中(除以零)?我很紧张,Windows推动一个完整的x86-64上下文,这比x86-32上下文更大。有人知道吗?有没有一个文件可以回答这个章节?

我即将准备运行一些动态实验来查看。

回答

2

相同的堆栈上下文,如果你在一个x64盒子上谈论仿真的x32环境,那么它的尺寸和x32上的尺寸完全一样,在我的情况下它是0x3E0字节对齐到DWORD。

在WOW64过程中模拟的所有东西至少在功能上应该与x32计数器部分完全相同,现在如果您依赖于TEB32来检查不同情况下的堆栈,您可以在此看到文章:

http://www.dumpanalysis.org/blog/index.php/2009/07/07/raw-stack-dump-of-wow64-process/

可悲的是没有一个正式的论文中,我能找到的关于你的问题。

而且,这里是一个有趣的纸,你可以阅读了有关WOW64模拟的过程:

http://blog.rewolf.pl/blog/?p=102#.UBTmHaBEUXw

最后,如果你的意思是有一个堆栈由函数来处理异常可以无后顾之忧地完成,我可以在这里看到异常触发后的跟踪日志,堆栈中的某些函数如何在SEH之前接收到异常,它似乎是某种Avast引擎或者可能是某种间谍软件,我无法追踪到任何知道的模块自从功能通过后,就被处理了。

希望我对某件事有所帮助。 PS:如果你可以发布一些额外的信息,也许堆栈日志和你的函数来处理异常,我们可以帮助更多。

3

[答案完整;看到具体的值]的Win32 Vista的和Win64中WOW64为Windows7的

========================================================================== 

运行在位Windows Vista,做一个IDIV零除数,我得到以下值:

[email protected] == x01C00800 // base of heap-allocated stack frame 
[email protected] == x01C00FF8 // stack at "top" of allocated stack frame 
[email protected] to SEH == 0x1C00C30 // ESP measured at first instruction of Structured Exception Handler 
ContextOffset[ESP]== 0x1C00D2C // Pointer to context block at entry to SEH 

所以从划分点的ESP = 0x1C00FF8到推入的上下文块的底部,推送0x1C00FF8-0x1C00D2C = 0x2CC = 字节。从推送的上下文块的底部到SEH的入口,0x1C00D2C-0x1C00C30 = 0xFC == 字节被推送。所以,它出现 716 + 252 = 968字节被推(我觉得可笑)。

它变得更糟。接下来是SEH入口堆栈框的转储;请注意0​​x1C00C30以下的值低至0x1C00B78(请参见0x30C0BB8处的“明显的Win32返回地址”0x77c39534),它们不是cdcdcdcd;我相信Windows已经将控制权交给了我的SEH。这是0x1C00B78-0x1C00C30 = 0xB8 = 184个附加字节。 (所以,可笑+难以置信)= 字节需要到达 SEH,最小。 [古怪,由另一个线程执行一个Win32 ThreadStop出现推没什么上停止的线程堆栈]

0x01C00800 01b002f0 00000001 cd4b1b19 cdcdcdcd cdcdcdcd 0000000b cdcdcdcd cdcdcdcd ð.°.......KÍÍÍÍÍÍÍÍÍ....ÍÍÍÍÍÍÍÍ 
0x01C00820 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00840 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00860 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00880 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C008A0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C008C0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C008E0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00900 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00920 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00940 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00960 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00980 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C009A0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C009C0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C009E0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00A00 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00A20 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00A40 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00A60 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00A80 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00AA0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00AC0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00AE0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00B00 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00B20 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ffff0000 cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ..ÿÿÍÍÍÍ 
0x01C00B40 00000035 00000034 00000001 cdcdcdcd cdcdcdcd f5f55f5f cdcdcdcd cdcdcdcd 5...4.......ÍÍÍÍÍÍÍÍ__õõÍÍÍÍÍÍÍÍ 
0x01C00B60 cdcdcdcd cdcdcdcd ffff0000 cdcdcdcd cdcdcdcd 0190bfa8 52b396ac 52b396ac ÍÍÍÍÍÍÍÍ..ÿÿÍÍÍÍÍÍÍͨ¿..¬–.R¬–.R 
0x01C00B80 cdcdcdcd 0190bfa8 cdcdcdcd 00000011 00000000 01c00d18 cdcdcdcd cdcdcdcd ÍÍÍͨ¿..ÍÍÍÍ..........À.ÍÍÍÍÍÍÍÍ 
0x01C00BA0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00BC0 cdcdcdcd cdcdcdcd 00000000 cdcdcdcd 01c00c30 77c39534 cdcdcdcd 00000011 ÍÍÍÍÍÍÍÍ....ÍÍÍÍ0.À.4.ÃwÍÍÍÍ.... 
0x01C00BE0 00000000 01c00c30 77c39598 77c395b1 43e4d1f4 00000000 01c00d18 00456c00 ....0.À.˜.Ãw±.ÃwôÑäC......À..lE. 
0x01C00C00 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd 00000000 00400000 01c00bf0 cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ[email protected]ð.À.ÍÍÍÍ 
0x01C00C20 0184ff74 77c09aa2 35e18e8c 01c00c50 77c65dd9 01c00d18 0184ff74 01c00d2c tÿ..¢šÀwŒŽá5P.À.Ù]Æw..À.tÿ..,.À. 
0x01C00C40 01c00cec 0184ff74 77c65ded 0184ff74 01c00d00 77c65dab 01c00d18 0184ff74 ì.À.tÿ..í]Æwtÿ....À.«]Æw..À.tÿ.. 
0x01C00C60 01c00d2c 01c00cec 00456c00 00000000 01c00d18 0184ff74 77c39442 01c00d18 ,.À.ì.À..lE.......À.tÿ..B”Ãw..À. 
0x01C00C80 0184ff74 01c00d2c 01c00cec 00456c00 7ffde08c 01c00d18 01b00300 cdcdcdcd tÿ..,.À.ì.À..lE.Œàý...À...°.ÍÍÍÍ 
0x01C00CA0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00CC0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x01C00CE0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd 00000072 01850000 0184c000 00cdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍr........À..ÍÍÍ. 
0x01C00D00 01c00800 77c65c37 00c00d18 01c00d2c 01c00d18 01c00d2c c0000094 00000000 ..À.7\Æw..À.,.À...À.,.À.”..À.... 
0x01C00D20 00000000 023eb44c 00000000 0001003f 00000000 00000000 00000000 00000000 ....L´>.....?................... 
0x01C00D40 00000000 00000000 ffff037b ffff2120 ffffffff 02383596 051f001b 02382ecc ........{.ÿÿ !ÿÿÿÿÿÿ–58.....Ì.8. 
0x01C00D60 ffff0023 00000000 c0000000 00004000 00000000 c000c000 00000000 80000000 #.ÿÿ.......À[email protected]À.À.......€ 
0x01C00D80 0000c001 00000000 c0008000 00000000 c0000000 0000c001 00000000 c002e000 .À.......€.À.......À.À.......à.À 
0x01C00DA0 00000000 80000000 00003fff 40000000 4010a51c 00000000 00000000 0000003b .......€ÿ[email protected]¥[email protected];... 
0x01C00DC0 00000023 00000023 7ffde08c 01b00300 0190bfa8 00000000 00000000 00000063 #...#...Œàý...°.¨¿..........c... 
0x01C00DE0 01c00800 023eb44c 0000001b 00010246 01c00ff8 00000023 2120037b 051f0000 ..À.L´>.....F...ø.À.#...{. !.... 
0x01C00E00 02383596 0000001b 02382ecc 00000023 00001f80 0000ffff 00000000 c0000000 –58.....Ì.8.#...€...ÿÿ.........À 
0x01C00E20 00004000 00000000 00000000 c0000000 0000c000 00000000 00000000 80000000 [email protected]À.À.............€ 
0x01C00E40 0000c001 00000000 00000000 80000000 0000c000 00000000 00000000 c0000000 .À.............€.À.............À 
0x01C00E60 0000c001 00000000 00000000 e0000000 0000c002 00000000 00000000 80000000 .À.............à.À.............€ 
0x01C00E80 00003fff 00000000 00000000 a51c4000 00004010 00000000 00000000 00000000 ÿ[email protected]¥[email protected] 
0x01C00EA0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00EC0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00EE0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00F20 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00F40 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00F60 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00F80 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00FA0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00FC0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x01C00FE0 00000000 00000000 00000000 00000000 00000000 00000000 52b396ac 01c00b78 ........................¬–.Rx.À. 


======================================================================================== 

运行在64个位Windows 7,WOW64下运行32个的过程中,做一个IDIV与零除数,我得到以下值:

[email protected] == x02100800 // base of heap-allocated stack frame 
[email protected] == x02100FF8 // stack at "top" of allocated stack frame 
[email protected] to SEH == 0x02100BD4 // ESP measured at first instruction of Structured Exception Handler 
ContextOffset[ESP]== 0x02100D10 // Pointer to context block at entry to SEH 
从ESP = 0x02100FF8在所述分割的点,到推上下文块的底部,0x02100FF8-0x02100D10 =了0x2e8 = 字节被推

所以( Win32 p使用)。从推送的上下文块的底部到SEH的条目,0x02100D10-0x02100BD4 = 0x132 == 字节被推送(Windows32推送)。所以,它出现 744 + 316 = 1060个字节被推送(我发现比Win32推送的可笑量更差)。

它变得更糟。接下来是SEH入口堆栈框的转储;请注意0​​x02100BD4以下的值低至0x021009D8(请参阅至少“显而易见的Win32返回地址”,地址为0x021009D8的0x77c39534),这些地址不是cdcdcdcd;我相信Windows已经将控制权交给了我的SEH。这是0x02100BD4-0x021009D8 = 0x1FC = 508个附加字节。 (所以,可笑+难以置信)= 字节需要达到SEH,最小值。

0x02100800 020402f0 00000001 fa0ad4b0 cdcdcdcd cdcdcdcd 0000000b cdcdcdcd cdcdcdcd ð.......°Ô.úÍÍÍÍÍÍÍÍ....ÍÍÍÍÍÍÍÍ 
0x02100820 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100840 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100860 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100880 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x021008A0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x021008C0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x021008E0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100900 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100920 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100940 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100960 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100980 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x021009A0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x021009C0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd 74fce2d9 00000000 ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÙâüt.... 
0x021009E0 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100A00 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd 002bbfc8 00000000 02040300 00000000 ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÈ¿+............. 
0x02100A20 fffd708c 00000000 77791266 00000000 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd Œpýÿ....f.yw....ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100A40 cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd cdcdcdcd ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 
0x02100A60 0010001f 00001f80 002b0023 0053002b 002b002b 00010246 00000000 00000000 ....€...#.+.+.S.+.+.F........... 
0x02100A80 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100AA0 00000000 00000000 00000063 00000000 00000000 00000000 00000000 00000000 ........c....................... 
0x02100AC0 002bbfc8 00000000 02100ff8 00000000 02100800 00000000 02040300 00000000 È¿+.....ø....................... 
0x02100AE0 fffd708c 00000000 0000002b 00000000 76f612ea 00000000 00000000 00000000 Œpýÿ....+.......ê.öv............ 
0x02100B00 002fe7e0 00000000 fffd5000 00000000 002ffd20 00000000 002ff170 00000000 àç/......Pýÿ.... ý/.....pñ/..... 
0x02100B20 74f32450 00000000 0281b1a4 00000000 2120037b 051f0000 027b359f 00000011 P$ót....¤±......{. !....Ÿ5{..... 
0x02100B40 00000000 02100cc0 00001f80 0000ffff 00000000 80000000 00004001 00000000 ....À...€...ÿÿ.........€[email protected] 
0x02100B60 00000000 c0000000 0000c000 00000000 00000000 00000000 00000000 00000000 .......À.À...................... 
0x02100B80 02100bd8 00000011 00000000 02100bd8 7797b2da 7797b2f3 72982375 00000000 Ø...........Ø...Ú.—wó.—wu#˜r.... 
0x02100BA0 02100cc0 00456c00 0000c002 00000000 00000000 80000000 00000000 00400000 À....lE..À.............€[email protected] 
0x02100BC0 02100b98 dfb28000 0203ff74 779971d5 071ce70d 02100bf8 7797b459 02100cc0 ˜....€.ßtÿ..Õq™w.ç..ø...Y´—wÀ... 
0x02100BE0 0203ff74 02100d10 02100c94 0203ff74 7797b46d 0203ff74 02100ca8 7797b42b tÿ......”...tÿ..m´—wtÿ..¨...+´—w 
0x02100C00 02100cc0 0203ff74 02100d10 02100c94 00456c00 00000000 02100cc0 0203ff74 À...tÿ......”....lE.....À...tÿ.. 
0x02100C20 7797b3ce 02100cc0 0203ff74 02100d10 02100c94 00456c00 fffd708c 02100cc0 Î.—wÀ...tÿ......”....lE.ŒpýÿÀ... 
0x02100C40 02040300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100C60 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100C80 00000000 00000000 00000000 00000000 00000000 00000000 00000072 02040000 ........................r....... 
0x02100CA0 0203c000 00000000 02100800 77930133 00100cc0 02100d10 02100cc0 02100d10 .À..........3.“wÀ.......À....... 
0x02100CC0 c0000094 00000000 00000000 0281b1a4 00000000 00000000 00000000 00000000 ”..À........¤±.................. 
0x02100CE0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100D00 00000000 00000000 00000000 00000000 0001003f 00000000 00000000 00000000 ................?............... 
0x02100D20 00000000 00000000 00000000 0000037b 00002120 0000ffff 027b359f 051f0023 ............{... !..ÿÿ..Ÿ5{.#... 
0x02100D40 027b2ecc 0000002b 00000000 80000000 00004001 00000000 c000c000 00000000 Ì.{.+..........€[email protected]À.À.... 
0x02100D60 80000000 0000c001 00000000 c0008000 00000000 c0000000 0000c001 00000000 ...€.À.......€.À.......À.À...... 
0x02100D80 c002e000 00000000 80000000 00003fff 80000000 400fdfb2 00000000 0000002b .à.À.......€ÿ?.....€.ß[email protected]+... 
0x02100DA0 00000053 0000002b 0000002b fffd708c 02040300 002bbfc8 00000000 00000000 S...+...+...Œpýÿ....È¿+......... 
0x02100DC0 00000063 02100800 0281b1a4 00000023 00010246 02100ff8 0000002b 2120037b c.......¤±..#...F...ø...+...{. ! 
0x02100DE0 051f0000 027b359f 00000023 027b2ecc 0000002b 00001f80 0000ffff 00000000 ....Ÿ5{.#...Ì.{.+...€...ÿÿ...... 
0x02100E00 80000000 00004001 00000000 00000000 c0000000 0000c000 00000000 00000000 ...€[email protected]À.À.......... 
0x02100E20 80000000 0000c001 00000000 00000000 80000000 0000c000 00000000 00000000 ...€.À.............€.À.......... 
0x02100E40 c0000000 0000c001 00000000 00000000 e0000000 0000c002 00000000 00000000 ...À.À.............à.À.......... 
0x02100E60 80000000 00003fff 00000000 00000000 dfb28000 0000400f 00000000 00000000 ...€ÿ?...........€.ß[email protected] 
0x02100E80 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100EA0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100EC0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100EE0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100F00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100F20 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100F40 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100F60 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100F80 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100FA0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................ 
0x02100FC0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 fffffd34 ............................4ýÿÿ 
0x02100FE0 000002e4 fffffd34 000002cc 00000019 00000000 00000063 52b396ac 02100b78 ä...4ýÿÿÌ...........c...¬–.Rx... 
成本进入SEH

最后的总结:

  • WINDOWS32推968个字节,象垃圾一样清除184个字节超出;你需要1152个字节的额外堆栈,超出了你在陷阱点的地位。
  • Windows64(WOW64)推1060个字节和508个象垃圾一样清除字节超出;除了你在陷阱处的内容之外,你还需要1568个字节。

在Windows的肆意使用栈空间的时候,它很难定义一个“小型激活记录”方案。

我猜例外Windows下的处理必须超过慢,开机;读取和写入所有这些字节需要时间。

我很可能会用的Windows8测试版再次尝试。我期望会感到厌恶。

+0

我来到这里对我的X32的Windows 7 0x3E0字节由0的DIV后压入堆栈,所以我不会依靠稳定的价值观,除了间谍软件或AVS可你之前处理您的异常,并推动更多的字节到上下文。 – ffenix 2012-07-30 19:33:41

+0

我愿意在我的跑步世界中取缔间谍软件。 AVs进入我的地址空间,并与我的例外混合?所以AVs是我的地址空间中的水蛭?现在,*这是一个很好的建筑。 – 2014-04-01 06:16:49