IDA反汇编关于浮点型数据的转换1.0 = 1065353216

我们在使用IDA 逆向so的时候,经常会遇见莫名其妙的特别大的数据。比如1.0 ,使用IDA反编译之后 会变成1065353216。这到底是怎么回事呢?这就要谈到 IEEE 754 标准(这里不做介绍,请自行百度)。使用太上仪表(http://www.styb.cn/cms/ieee_754.php#)把1.0转化成二进制数就是00111111100000000000000000000000。所以它的十六进制码就是3F800000。把这个十六进制码转换成十进制码就是 1065353216。所以在IDA 里面我们看到了莫名其妙的数据 1065353216。

  那么其他数据对应的浮点型是什么呢?我们反其道而行,比如我们碰到1056964608,将其转成16进制数就是 3f000000,再由十六进制转浮点数就是 0.5。

发布了63 篇原创文章 · 获赞 41 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/MarketAndTechnology/article/details/80989948
今日推荐