我正忙着解密一些游戏数据。所有加密的文件名都是相同长度的十六进制字符串,例如1790C6E445C7E38EFCD5B3042F9B4443.
我发现其中一些文件是未加密的 OGG 文件,并且我已经使用该strings命令来查找.ogg游戏二进制文件中包含的字符串列表。
现在我想知道,有没有办法找出文件名是如何创建的?
并且是否有可能以某种方式重新创建目录结构(现在它都是扁平的,但根据我找到的字符串,应该有目录)。
我正忙着解密一些游戏数据。所有加密的文件名都是相同长度的十六进制字符串,例如1790C6E445C7E38EFCD5B3042F9B4443.
我发现其中一些文件是未加密的 OGG 文件,并且我已经使用该strings命令来查找.ogg游戏二进制文件中包含的字符串列表。
现在我想知道,有没有办法找出文件名是如何创建的?
并且是否有可能以某种方式重新创建目录结构(现在它都是扁平的,但根据我找到的字符串,应该有目录)。
这看起来可能是原始文件名上的一些散列,并且因为它们的长度为 32 个字符,所以它很可能是一个 md5 散列。或者,它可能是 sha* 变体之一,在 32 个字符后剪切。
如果您可以访问 linux 系统,则可以尝试类似
$ echo -n 'introduction.ogg' | md5sum
dc8f2a080281b924622580a8d662874c
如果这不匹配,请尝试sha1sum, sha224sum, sha256sum, sha384sum, sha512sum。这些都会导致更长的结果,因此您的文件名可能位于结果的开头、结尾或中间的某个位置。
或者,只需将您的文件名粘贴到这个具有这些和更多算法的在线工具中。
坏消息是,您将无法从哈希中猜测原始文件名。所有这些散列都是(打算成为)单向函数——很容易从原始数据中获取散列,但没有退路。这就是为什么像这样的散列用于密码存储的原因 - 您可以通过加密来验证密码,但您无法从散列中获取密码。