Как реверсировать приложение QuickBasic для инженера? - PullRequest
2 голосов
/ 23 апреля 2011

У меня есть приложение, написанное на QuickBasic (игра). Я владею правами на него, но не написал оригинальный код. У меня есть исходный код передо мной, но я бьюсь головой, пытаясь понять все это. Есть ли способы сделать реверс-инжиниринг легче? Прямо сейчас я использую FbEdit и просто пытаюсь разделить приложение на части.

1 Ответ

3 голосов
/ 26 апреля 2011

Вы на самом деле не реверс-инжиниринг, если у вас есть код, и вы просто пытаетесь его понять. Похоже, вы просто делаете «обслуживание», но это в сторону.

Работа с унаследованным проектом включает в себя много чтения кода, проработки того, что он делает, создания заметок и переименования, пока вы не сможете отделить части, будь то пользовательский интерфейс / меню, анимация, AI или что-то еще игра делает.

Для игр с обратным инжинирингом (в сборке) я склонен:

Найдите области кода, которые вызывают графические прерывания, и начните называть их graphics_N, и то же самое для обработки файлов, звука и т. Д. Затем вы можете заметить, где находится текст / меню, и вы знаете, где в игре это: так что вы можете сделать шаг за шагом по коду и посмотреть, как этот код прыгает. Вы можете заметить, что некоторые подфункции обновляют анимацию, и вы можете назвать ее так, а затем найти, где она была вызвана, чтобы лучше понять, как и где она используется.

Имея доступ к коду, я был бы шокирован, если бы переменные, функции и структуры имели бессмысленные имена. Но QB было проще с маленькими именами ...

Я не использовал FBEdit, но Visual Studio отлично справляется с чтением кода QB (он думает, что это VB6 / VB.Net), но оттуда вы можете довольно быстро переписать его в C #. Я сделал это для моего старого кода QB. Вам просто нужно написать некоторые вспомогательные функции, которые выполняют классические функции QB, пока вы не удалите эти основные абстракции.

...