我在网上搜索过,无处不在:FILD将 整数的二进制补码转换为80位的扩展精度浮点数,并将其放在浮点堆栈顶部。 所以,我有一个程序做到这一点,但我得到的结果是意想不到的。FILD和FSTP如何工作?
例子: 我在内存中的数字0xFF20A810(让我们在0x40000000之后说) FILD [0x40000000之后] FSTP [0x40010000]
结果我得到的是0x41EFE41502000000。数字如何转换? 我正在使用这个crackme,我只是找不到解决方案。
谢谢
我在网上搜索过,无处不在:FILD将 整数的二进制补码转换为80位的扩展精度浮点数,并将其放在浮点堆栈顶部。 所以,我有一个程序做到这一点,但我得到的结果是意想不到的。FILD和FSTP如何工作?
例子: 我在内存中的数字0xFF20A810(让我们在0x40000000之后说) FILD [0x40000000之后] FSTP [0x40010000]
结果我得到的是0x41EFE41502000000。数字如何转换? 我正在使用这个crackme,我只是找不到解决方案。
谢谢
0x41EFE41502000000是双精度4280330256.0。 0xFF20A810是4280330256作为无符号整数。
所以你不小心加载它,我认为,qword,并得到幸运(其他字节为零)。
非常感谢(: – user1291797 2012-03-30 15:00:35
你期待它做什么? – 2012-03-25 21:55:27