我有一个用QuickBasic(游戏)编写的应用程序。我拥有它的权利,但没有写原始代码。我在我面前有源代码,但是我正试图弄清楚这一切。有没有办法让逆向工程更容易?现在我正在使用FbEdit,只是尝试将应用程序拆分为各种组件部分。
答案 0 :(得分:3)
如果您拥有代码并且只是想了解它,那么您并不是真正的逆向工程。听起来更像是你刚刚做的“维护”,但除此之外。
处理遗留项目涉及大量阅读代码,弄清楚它在做什么,做笔记和重命名东西,直到你可以分离出部分,UI /菜单,动画,AI,或者它是什么。游戏确实如此。
对于逆向工程dos游戏(在组装中)我倾向于:
查找调用图形中断的代码的区域,并开始命名那些graphics_N,以及相同的文件处理或声音等。然后你可能会注意到文本/菜单的位置,你知道游戏的位置,所以你可以单步执行代码,看看代码是如何跳过的。您可能会注意到某些子函数更新了动画,您可以将其命名为,然后找到其他地方的名称,以便更好地了解它的使用方式和位置。
通过访问代码,如果变量,函数和结构具有无意义的名称,我会感到震惊。但是小名字的QB更容易......
我没有使用FBEdit,但是Visual Studio可以很好地阅读QB代码(它认为它是VB6 / VB.Net)但是从那里你可以很快地将它重写为C#。我已经为我的一些旧版QB代码做了这个。您只需要编写一些执行经典QB函数的辅助函数,直到删除这些基本抽象。