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

Reverse engineering 如何对QuickBasic应用程序进行逆向工程?,reverse-engineering,basic,qbasic,quickbasic,Reverse Engineering,Basic,Qbasic,Quickbasic,我有一个用QuickBasic(游戏)编写的应用程序。我拥有它的权利,但没有编写原始代码。我面前有源代码,但我在试图弄明白这一切的时候有点头疼。有没有办法让逆向工程更容易?现在,我正在使用FbEdit,只是试图将应用程序拆分为不同的组件部分。如果你有代码并且只是试图理解它,那么你就不是真正的逆向工程。听起来更像是你在做“维护”,但这不重要 处理一个遗留项目需要大量阅读代码、了解它在做什么、做笔记和重命名东西,直到你能够分离出各个部分,比如UI/菜单、动画、AI,或者游戏所做的任何事情 对于反向工

我有一个用QuickBasic(游戏)编写的应用程序。我拥有它的权利,但没有编写原始代码。我面前有源代码,但我在试图弄明白这一切的时候有点头疼。有没有办法让逆向工程更容易?现在,我正在使用FbEdit,只是试图将应用程序拆分为不同的组件部分。

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

处理一个遗留项目需要大量阅读代码、了解它在做什么、做笔记和重命名东西,直到你能够分离出各个部分,比如UI/菜单、动画、AI,或者游戏所做的任何事情

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

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

有了这些代码,如果变量、函数和结构的名称毫无意义,我会感到震惊。但QB更容易用小名字

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

我希望这不是我的游戏。:-)虽然它们是在20世纪90年代初编写的,我知道我现在是一个更好的程序员。。。我希望它不会那么糟糕。