我有一个用QuickBasic (游戏)写的应用程序。我拥有它的权利,但不是我写的原始代码。源代码就在我面前,但我在试图弄明白这一切的过程中有点头疼。有没有什么方法可以让逆向工程变得更容易?现在,我正在使用FbEdit,试图将应用程序拆分成不同的组件。
发布于 2011-04-27 03:06:48
如果你有代码并试图理解它,你就不是真正的逆向工程。听起来更像是你在做“维护”,但抛开这个不谈。
处理遗留项目需要大量阅读代码,弄清楚它做了什么,做笔记,重命名东西,直到你能分离出各个部分,无论是UI/菜单,动画,AI,还是游戏所做的任何事情。
对于反向工程dos游戏(在组装中),我倾向于:
找到调用图形中断的代码区域,并开始将这些区域命名为graphics_N,以及用于文件处理或声音等的相同名称。然后,您可能会注意到文本/菜单的位置,并知道它在游戏中的位置,因此您可以单步执行代码,并查看代码是如何跳跃的。你可能会注意到一些子函数更新了一个动画,你可以给它命名,然后找到它被调用的地方,以便更好地理解它的使用方式和位置。
通过访问代码,如果变量、函数和结构有无意义的名称,我会感到震惊。但是QB更容易使用小名字。
我没有使用过FBEdit,但Visual Studio在读取QB代码方面做得还不错(它认为它是VB6/VB.Net),但从那里你可以很快地将它重写成C#。我已经为我的一些较旧的QB代码这样做了。你只需要写一些帮助器函数来做经典的QB函数,直到你移除那些基本的抽象。
https://stackoverflow.com/questions/5761605
复制相似问题