2011-04-23 56 views
2

我有一個用QuickBasic(遊戲)編寫的應用程序。我擁有它的權利,但沒有寫出原始代碼。我有源代碼在我面前,但我試圖理解這一切,我有點b my不安。有什麼方法可以使逆向工程更容易?現在我正在使用FbEdit,並試圖將應用程序拆分爲各個組件部分。如何反向工程師QuickBasic應用程序?

+1

我希望這不是** MY **遊戲之一。 :-)雖然他們是在二十世紀九十年代初寫的,我知道*我現在是一個更好的程序員......我希望認爲它並不是那麼糟糕。 – 2011-04-23 03:12:32

回答

3

如果你有代碼並且只是試圖理解它,那麼你並不是真正的逆向工程。聽起來更像是你只是在做「維護」,但這一邊。

處理遺留項目需要大量閱讀代碼,研究它在做什麼,做筆記和重命名內容,直到你可以分離出各個部分,無論是UI /菜單,動畫,AI還是其他任何東西是遊戲呢。

對於逆向工程的DOS遊戲(組裝),我傾向於:調用圖形中斷代碼

查找區域的,並開始命名的graphics_N,與同爲文件處理,或聲音等,然後您可能會注意到文本/菜單的位置,並且您知道遊戲的位置,因此您可以單步執行代碼並查看代碼是如何跳轉的。您可能會注意到一些子函數會更新動畫,您可以將其命名,然後找到其他名稱,以更好地瞭解它的使用方式和位置。

通過訪問代碼,如果變量,函數和結構沒有意義的名字,我會感到震驚。但QB更容易與小名...

我沒有使用FBEdit,但Visual Studio做了一個閱讀QB代碼(它認爲它是VB6/VB.Net)的好工作,但從那裏你可以重寫它漂亮迅速轉化爲C#。我已經爲我的一些舊的QB代碼做了這個。您只需編寫一些執行經典QB函數的幫助函數,直到您刪除這些基本抽象。