3

我有一个用 QuickBasic(游戏)编写的应用程序。我拥有它的权利,但没有编写原始代码。我面前有源代码,但我正在努力理解这一切。有什么方法可以让逆向工程变得更容易?现在我正在使用 FbEdit,只是试图将应用程序拆分为各个组件部分。

4

1 回答 1

4

如果您有代码并且只是试图理解它,那么您并不是真正的逆向工程。听起来更像您只是在做“维护”,但除此之外。

处理遗留项目需要大量阅读代码、弄清楚它在做什么、做笔记和重命名,直到你可以分离出各个部分,无论是 UI/菜单、动画、AI,还是游戏所做的任何事情.

对于逆向工程 dos 游戏(在汇编中),我倾向于:

找到调用图形中断的代码区域,并开始命名那些 graphics_N,以及文件处理或声音等。然后你可能会注意到文本/菜单的位置,并且你知道在游戏中的位置,所以你可以单步执行代码,看看代码是如何跳来跳去的。你可能会注意到一些子函数更新了一个动画,你可以给它命名,然后找到它被调用的地方,以便更好地理解它的使用方式和位置。

通过访问代码,如果变量、函数和结构的名称毫无意义,我会感到震惊。但是小名字的QB更容易......

我没有使用过 FBEdit,但 Visual Studio 在阅读 QB 代码方面做得很好(它认为它是 VB6/VB.Net),但从那里你可以很快地将它重写为 C#。我已经为我的一些旧 QB 代码做了这个。您只需要编写一些执行经典 QB 功能的辅助函数,直到您删除这些基本抽象。

于 2011-04-26T19:06:47.837 回答