导致x86汇编中溢出的idiv指令的最小值

jko*_*vba 0 x86 assembly

我正在编写一个程序来练习一些逆向工程技术.以下是x86(Intel)汇编代码的相关行:

mov, eax [ebp - 20]
cdq
idiv ecx
Run Code Online (Sandbox Code Playgroud)

通过我的输入(网络套接字),我可以控制执行这些程序集之前eaxecx之前的字节.

我的问题是:我可以使用什么最小值(正或负)来引起除法溢出(其中除法溢出不是"除以零"错误,但返回的结果大于32位因此,不适合eax(返回登记册).

预先感谢您的帮助!

Jes*_*ter 6

由于你的被除数是32位,并且它被符号扩展到64位,cdq唯一的方法是获得溢出是由于二进制补码的不对称性,即它可以代表-2^31但不能+2^31.因此,你可以这样做-2^31 / -1.