如何对 QuickBasic 应用程序进行逆向工程?

问题描述 投票:0回答:1

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

reverse-engineering basic qbasic quickbasic
1个回答
5
投票

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

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

对于 DOS 游戏的逆向工程(汇编)我倾向于:

找到调用图形中断的代码区域,并开始将它们命名为graphics_N,文件处理或声音等也是如此。然后您可能会注意到文本/菜单在哪里,因为您知道游戏中的哪个位置是的,您可以单步执行代码并查看代码如何跳转。您可能会注意到一些子函数更新了动画,您可以将其命名,然后找到调用它的位置,以更好地了解它的使用方式和位置。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.