Question

So basically I disassemble some code on 32bit Linux and in the rodata section, where double should exist, I find these 8 bytes:

00000000 00002440

The original double number is 10.0

Could anyone tell me how to transform this 8 bytes into double?

Was it helpful?

Solution

Put the bytes into a buffer and ask C to interpret the memory as a double.

#include <stdio.h>  

int main(){
    char* foo = "\x00\x00\x00\x00\x00\x00\x24\x40";
    double bar =*((double*) foo);
    printf("%f\n", bar);
}

Output:

10.000000
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top