3

我在网上搜索过,到处都是:FILD 将整数的二进制补码转换为 80 位扩展精度浮点数,并将其放在浮点数堆栈的顶部。所以,我有一个程序可以做到这一点,但我得到的结果是出乎意料的。

示例:我在内存中有数字 0xFF20A810(假设在 0x40000000 中) fild [0x40000000] fstp [0x40010000]

我得到的结果是 0x41EFE41502000000。数字是如何转换的?我正在使用它的crackme中间,但我找不到解决方案。

谢谢

4

1 回答 1

3

0x41EFE41502000000 是双精度的 4280330256.0。0xFF20A810 是 4280330256 作为无符号整数。

所以你不小心将它加载为 qword,并且很幸运(其他字节为零)。

于 2012-03-25T21:27:27.447 回答