Windows api MessageBoxA не может работать с чистым стеком?

Я хочу вызвать функцию с чистым стеком, который может отрезать стек вызовов.

==================== начало псевдокода =========================== =====

stackBaseAddress = найти базовый адрес стека с помощью NtCurrentTeb

stackCurrentSize = stackBaseAddress - esp

резервный стек

memset (esp, 0, stackCurrentSize)

MessageBoxA (0, "1", 0, 0) <== здесь проблема, MessageBoxA завершается ошибкой, а GetLastError == 0

восстановить стек

============================= конец псевдокода =================== ==================

если нет memset(esp, 0, stackCurrentSize), все идет хорошо.

так что я думаю, что в стеке должно быть что-то, что нельзя стереть, но что?

0 ответов

Другие вопросы по тегам