当我在一个裂缝上练习逆向工程时,我发现自己因这条指令而感到困惑
MOV DWORD PTR [6CCCDC],EDX
不应该允许它,因为intel语法是MOV dest,src
感谢那些有帮助的人;
答案 0 :(得分:1)
它是有效的,并遵循您实际提到的语法MOV dest,src
。
简单部分EDX
是源,它从该CPU寄存器中读取值。
然后[6CCCDC]
是目的地。注意方括号,它们表示数字是指针而不是立即数。所以目的地是内存地址0x6CCCDC。
DWORD PTR
是一个修饰符,用于指示正在操作的数据的大小,此处为32位。在这个特定的指令中,它是冗余的,因为dword可以通过使用32位寄存器EDX来推断。根据确切的编译器,它可以是可选的或强制的。它在即时到内存传输中很有用,因为它指定了硬编码常量的宽度。
简而言之,整个指令的意思是“取EDX
寄存器的值,并将其放在从6CCCDC开始的32位存储单元中。
答案 1 :(得分:0)
为什么不允许这样做?
EDX
为src
,DWORD PTR [6CCCDC]
为dest。因此,这会将EDX
移至DWORD PTR [6CCCDC]
。