逆向工程位掩码模式

问题描述

我有一个要反向工程的二进制文件。除了关于位掩码的一步之外,我几乎已经完成了所有工作。 二进制文件基本上是带有页面链接列表。每个页面都有一个标头,其中包含指向该页面一个块的2字节指针。在标头中,还有几个字节似乎是一个位掩码,但是我还没有弄清楚该位掩码是如何工作的。

缺少的重要信息是确定是否不再使用(删除)块的标志。删除二进制文件时,读取二进制文件的程序只会更改位掩码(可能还有校验和)。因此,我的结论是,在位掩码中必须有一些位指示每个指针该块已不再使用。问题是我在此位掩码中找不到任何模式。所以我想知道我是否缺少通常应用于位掩码的内容

这是页面的开始:

enter image description here

紫色是指向下一页的指针。洋红色(大概)是校验和。橙色是指向块的2字节指针的起始位置(128个字节,因此最多64个块)。绿色是堆的开始和第一个块(A4 00 = 164,这是绿色相对于页面开始的偏移量)。

这是同一页面,但之前删除任何项目:

enter image description here

红色是更改的字符。除此之外,文件中没有任何更改(开头的文件校验和除外)。

这里是相同的比较,但是二进制:

enter image description here

我怀疑字节18h到1Bh是最后32个指针的位掩码,因为它们全为0。14h到17h是前32个指针的位掩码。问题是我无法理解位掩码,在这里也找不到任何模式。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)