C64识别磁盘映像之间的常见模式

时间:2016-07-02 04:28:03

标签: search binary c64

我有来自C64的2个磁盘映像,例如:

  • disk1它是一款游戏,首先是一些启动画面和音乐
  • diks2它是一个演示,包含许多歌曲和相同的音乐和第一张磁盘。

是否有机会用一些Hex编辑器检查2个图像我可以在2个文件中的某个点看到相同的模式二进制序列?它们会以同样的方式存储吗?如果是,那么匹配模式的正确方法是什么?

(目标是在150k +程序文件中搜索该歌曲并查看它使用的是什么磁盘)

1 个答案:

答案 0 :(得分:1)

不幸的是,答案取决于它。我将在这里概述一些依赖项。

  1. 演示经常包含翻录的游戏音乐,或者较新的游戏可能包含某些演示的着名音乐。在这两种情况下,音乐都是相同的,并且音乐的播放器也是相同的,因为播放器大部分时间都是音乐本身的组成部分。因此,在这种基本情况下,使用相同的二进制数据序列,并在光盘上使用一种或另一种形式。
  2. 演示经常压缩其内容以加载更快或创建更小的程序。在这种情况下,二进制数据序列肯定是不同的。你可以检查一下,如果在演示开始时有一些"噪音"解压缩,通常是边框中的颜色线,或更新屏幕上的字符。
  3. 一些较大的游戏也压缩了加载的内容,例如:特种部队。然后在光盘上不同的序列。一些用于破解的内存转储工具,例如ISEPIC,也压缩了记忆图像。
  4. 有些游戏甚至加密了他们的内容,例如Bards Tale 2.然后再次在光盘上不同的序列。在你拆卸游戏的加载程序之前,你无法知道。
  5. 如果是2-4,那就没有希望了。 (我不知道你正在看的确切类型的游戏或演示。)

    1. 此外,光盘映像具有一定的布局,请参阅http://unusedino.de/ec64/technical/formats/d64.html。鉴于此,相同的字节序列将分发到光盘的不同扇区。这些部门也不是顺序的,而是(不是真的)随机的。除非您要查找的数据小于磁盘扇区,因此小于256字节,否则序列在同一磁道和扇区上的序列不太可能相同。因此,除非文件相同并以相同的顺序复制到光盘上,否则您将获得不同的序列
    2. 给出第5点我说很可能你不会以相同的顺序找到序列,即使没有压缩或加密。

      您可以查找256字节的块序列。但音乐的开始可能不同,因此即使是扇区也可能有不同的数据,例如一个扇区包含从偏移0开始的音乐,另一个扇区从偏移15开始。

      您至少需要查看保存在图像上的文件。您可以非常轻松地解析光盘映像的FAT并找到文件。文件是一系列曲目和扇区号。您可以将它们加载到内存中。然后比较这些文件。在这里,您需要使用在其他字节数组中查找字节数组部分的算法,因为演示的任何部分都可以是音乐,并且它可以位于游戏代码的任何部分。因为现代标准的数据非常小,所以蛮力甚至可能有效。

      1. 一些罕见的游戏使用了他们自己的光盘布局,只是加载了轨道和扇区,可能是为了加载更快或复制保护。在这些情况下,你迷路了。