我只是为了怀旧并尝试学习一些新东西(我可以使用多种语言进行编程,并且懂一点汇编语言,但是我是逆向工程的新手),所以我试图重新创建一个旧游戏。该游戏称为Banania,看起来像这样:



现在,我的问题是找到该游戏的关卡数据(只有一个.exe文件,除此之外没有其他) 。如果我要制作这款游戏​​,我会将这些关卡(似乎尺寸为21x13)存储在一个三维数组(50x21x13)中,总共可以存储50个关卡。
但是,我似乎找不到在我的十六进制编辑器中看起来像水平的任何大小的矩形图案。

如何找到它?感谢您的帮助。

编辑:整天盯着二进制文件,终于找到了关卡数据!我很幸运地发现了它,它只是一个很大的块,只使用了大约20个不同的数字。格式完全符合我的预期。既然我知道水平的样子,那么猜测哪个整数代表哪个项目就不难了。显然,Windows 3.1上的Integers长16位(至少是我的猜测),这就是为什么我一开始没有找到它的原因。

#1 楼

根据NE dumper的输出,级别数据似乎从文件偏移量0x17600开始,每个级别的长度似乎为0x200字节。

评论


你是完全正确的,与此同时我自己也发现了这一点。感谢您指出。老实说,我有点怀疑程序可以为您找到答案。我一定会检查一下NE dumper,

–坚治
2013年6月1日19:39

Banania的作者将这些资源命名为“ LEVEL”很有帮助;)

–詹森·格夫纳(Jason Geffner)
13年6月1日在21:23

#2 楼

由于线宽与实际数据结构宽度的关系,您可能看不到矩形图案。所以它完全被取代了。

但是您可以尝试使用binwalk(固件分析工具)来显示带有文件熵的图,这有助于识别可执行文件中的重复区域。



评论


谢谢,我会调查一下。不幸的是,我目前仅使用Windows,因此我将不得不安装Linux。

–坚治
2013年6月1日下午16:21