Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我调用一个函数,我可以jmp在该函数中使用命令返回到不同函数的一部分吗?也就是说,这段代码是否有效:
jmp
testfunction PROC jmp jumppoint ret testfunction ENDP main PROC jumppoint: call testfunction main ENDP END
如果这是有效的,它应该产生一个无限循环。是/否?
如果你所说的“有效”是指汇编程序会让你这样做,答案是肯定的。它将引入一种无限循环;但是,由于call指令每次执行时都会在堆栈上放置额外的信息(返回地址),最终堆栈会溢出,程序会崩溃(如果您在实模式下运行,可能不会)。
call
看起来它是有效的,它会产生一个无限循环,你为什么不运行它,看看你是否正确?
当然堆栈会溢出,因为它是有限的0xFFFFFFFF >= esp > 0
0xFFFFFFFF
>= esp
> 0