3

QuickBasic (ゲーム) で記述されたアプリケーションがあります。私はそれに対する権利を所有していますが、オリジナルのコードは書いていません。目の前にソース コードがありますが、すべてを理解しようとして頭を悩ませています。リバース エンジニアリングを簡単にする方法はありますか? 現在、私は FbEdit を使用しており、アプリケーションをさまざまなコンポーネント パーツに分解しようとしています。

4

1 に答える 1

4

コードがあり、それを理解しようとしているだけなら、実際にはリバースエンジニアリングではありません。ただ「メンテナンス」をしているように聞こえますが、それはさておき。

レガシー プロジェクトの処理には、UI/メニュー、アニメーション、AI、またはゲームの機能が何であれ、パーツを分離できるようになるまで、多くのコードの読み取り、その機能の解明、メモの作成、および名前の変更が必要です。 .

リバース エンジニアリング dos ゲーム (アセンブリ) の場合、私は次の傾向があります。

グラフィック割り込みを呼び出すコードの領域を見つけて、それらのgraphics_Nの名前を付け始め、ファイル処理やサウンドなどにも同じ名前を付けます。そうすれば、テキスト/メニューがどこにあるかに気付くかもしれません。ゲーム内のどこにあるかがわかるので、コードを 1 ステップ実行して、コードがどのように飛び回っているかを確認します。いくつかのサブ関数がアニメーションを更新することに気付くかもしれません。それに名前を付けて、それがどこでどのように使用されているかをよりよく理解するために、それが呼び出された場所を見つけることができます。

コードにアクセスすると、変数、関数、および構造体に意味のない名前が付けられていたらショックを受けるでしょう。しかし、QBは小さな名前の方が簡単でした...

私は FBEdit を使用したことはありませんが、Visual Studio は QB コード (VB6/VB.Net と見なされます) を読み取るのに問題ありませんが、そこから C# にすばやく書き直すことができます。私は古い QB コードのいくつかに対してこれを行いました。これらの基本的な抽象化を削除するまで、古典的な QB 関数を実行するいくつかのヘルパー関数を記述する必要があるだけです。

于 2011-04-26T19:06:47.837 に答える