我正在对一种文件格式进行逆向工程,其中(在我已经解码的许多其他事物中)存储了文件的“长度”。 :seconds。
通过更改文件并将其加载到程序中进行一些实验,我收集了以下可能性:
我的猜测是这是一种浮点数,但是我的技能太有限了,无法知道哪种类型。
我知道文件中的所有其他数字都存储为little-endian。
有人有任何线索吗?
#1 楼
这似乎非常类似于IEEE754格式,我假设您的两个字节时间码中的每一个都以两个零字节开头,这两个零字节组成一个4字节(32位)值。您可以假设使用高字节1的命令位清零;如果您在字节1中设置了最高位,则可能会得到一个负值。 (如果在大多数示例中,如果byte1为零,则值等于指数,因为被乘数为1)。不是
0041
,并且您在检查0:08
值时可能犯了一个错误,应该是0:18
秒或004b
分钟。评论
啊,这就是为什么我很沮丧!在它们之前似乎有两个垃圾字节,可以将其设置为任何值,而不会影响任何内容。谢谢。事实证明,无效值确实是我的错误,程序决定一次仅以该值崩溃。
–汤姆·伍德
2014-12-30 8:10
评论
为什么要收票?这似乎是“对特定系统进行逆向工程,但仍存在明确定义的问题”的情况,特别是当OP执行逻辑上的第一步-尝试不同的值,检查结果-并将此信息提供给我们时。 br />我想同意Guntram Blohm的观点,我认为这不是题外话。我已经展示了对所涉及概念的基本理解,并且清楚地确定了问题。我是一个初学者,因此即使确定基本浮动也存在问题,因此不应滥用政策来反对我。