Assembly ASM调用指令是否导致堆栈溢出?

Assembly ASM调用指令是否导致堆栈溢出?,assembly,x86,stack-overflow,Assembly,X86,Stack Overflow,这是我的ASM功能代码: PUSH EBP MOV EBP, ESP SUB ESP, 8 CALL 00401E20 LEAVE RETN 0x00401E20中有一个函数,它不接受任何参数,也不返回任何值。调用函数的正确方法是什么 OllyDbg说“堆栈溢出”,并在第4行加上注释。对不起,我是ASM的新手,有什么想法吗 提前谢谢。也许你应该在离开和回来之前试试流行音乐 试试这个: PUSH EBP MOV EBP, ESP SUB ESP, 8 CALL 00401E20 MOV ES

这是我的ASM功能代码:

PUSH EBP
MOV EBP, ESP
SUB ESP, 8
CALL 00401E20
LEAVE
RETN
0x00401E20
中有一个函数,它不接受任何参数,也不返回任何值。调用函数的正确方法是什么

OllyDbg说“堆栈溢出”,并在第4行加上注释。对不起,我是ASM的新手,有什么想法吗


提前谢谢。

也许你应该在离开和回来之前试试流行音乐

试试这个:

PUSH EBP
MOV EBP, ESP
SUB ESP, 8

CALL 00401E20

MOV ESP, EBP
POP EBP

LEAVE
RETN

您需要进入该函数以查看导致崩溃的真正原因。谢谢您的评论。我该怎么做?请查看我下面的评论,我认为这就是导致崩溃的原因。你的问题似乎是如何使用ollydbg,网上有很多关于它的教程。请记住,单步执行和单步执行(快捷键:F7)是有区别的。是的,我想我应该读一本关于OllyDbg的好教程。谢谢谢谢,但它不起作用:-(。更具体地说,OllyDbg指出:
呼叫DWORD PTR DS:[1000A000]
。还有其他想法吗?哦,对不起,我的错。地址错了,现在可以用了。谢谢!你不需要
pop
,在你回来之前,
leave
负责结尾。@Gunner哦,是的,没错。这是维基百科上说的。我接受这个答案是为了表示感谢,顺便说一句:谢谢!@Gunner总是很高兴知道。无论如何,cdonts他说他是ASM的新手,所以手动弹出以了解流程并不坏