嗨,大家好进出口工作在CTF挑战,不太了解这个ASM命令:
mov %edx,0x20(%esp,%eax,4)
林假设它:移动$edx
成(0x20 + $esp + $eax + 4)
然而,当我检查这个使用gdb这是不正确的。 任何人都介意解释这个指令是如何工作的?
谢谢你的帮助!
嗨,大家好进出口工作在CTF挑战,不太了解这个ASM命令:
mov %edx,0x20(%esp,%eax,4)
林假设它:移动$edx
成(0x20 + $esp + $eax + 4)
然而,当我检查这个使用gdb这是不正确的。 任何人都介意解释这个指令是如何工作的?
谢谢你的帮助!
AT&T语法的x86内存引用是这样的:
displacement(base,index,scale)
给予位移+碱+(指数*标度)的地址。
也就是说,目标存储器地址为您instuction是%ESP + 0×20 +(4 *%EAX)。