ran*_*ame 2 floating-point x86 assembly reverse-engineering x87
正在做一个破解,试图写一个keygen,我对一些FPU指令感到困惑.
fild qword ptr ss:[esp] ; loads 4275451536.0000000000 into ST0. ESP has FED63690
lea esp, dword ptr ss:[esp+8]
fstp qword ptr ss:[ebp-410] ; loads D2000000 into ebp - 410
fld qword ptr ss:[ebp-410] ; loads 4275451536.0000000000 into ST0
fstp qword ptr ss:[esp+8] ; loads D2000000 into esp+8
Run Code Online (Sandbox Code Playgroud)
我想知道它弹出时如何将4275451536.0000000000转换为D2000000?
代码将值4275451536.0作为双精度浮点写入地址[ebp-410].4275451536.0作为IEEE-754双精度浮点的表示形式为41EFDAC6D2000000(您可以在此处进行转换).由于您只查看了较低的4个字节,因此您看到了D2000000,但您应该查看整个8个字节以查看整个值.
如果您想知道如何达到41EFDAC6D2000000的值,请阅读有关双精度浮点格式的信息.我上面链接的工具将为您提供有效数和指数的值.
归档时间: |
|
查看次数: |
3502 次 |
最近记录: |