How much is pushed onto a 32-bit stack under Windows x86-64 on an exception?

后端 未结 2 1617
孤独总比滥情好
孤独总比滥情好 2021-01-14 12:18

In this this question, I give some background on a parallel language I have implemented. The compiler generates native x86-32 code.

A key implementation decision is

2条回答
  •  花落未央
    2021-01-14 12:53

    The same stack context, if you talking about emulated x32 environment on a x64 box, then its exactly the same size as on a x32 which in my case is 0x3E0 bytes aligned to DWORD.

    Everything emulated on WOW64 process should be handled exactly the same at is x32 counter part at least when it comes to functionality, now if you rely on TEB32 for inspect the stack that is a different case, as you can see on this article:

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

    Sadly there isn't an official paper i could find regarding your question.

    Also here is an interesting paper you can read regarding WOW64 emulated process:

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

    Finally if what you meant is to have an stack made function to handle exceptions it can be done without any worry, i can see here on trace logs after the exception is trigger, how some function made in stack, is receiving the exception before the mine SEH, it seems to be some kind of Avast engine or maybe some spyware, i cant trace it to any knowed module since after the function pass, it is dealloced.

    Hope that i've helped on something.

    PS: If you can post some extra info maybe the stack log and your function to handle exceptions, we could help more.

提交回复
热议问题