良く耳にする(目にする)「シンボル情報」という言葉 シンボル情報とは一体何なのでしょうか? シンボル情報とは「開発者がゲームソフトの開発時に 身内同士で「このプログラムはこういう動作」という事や プログラム同士の繋がりが見た目ですぐ分かるよう 全部のプログラムの先頭に専用の名前を付けた物」を指します しかし、シンボル情報はあくまでも開発者が使うもの 一般のゲーマーの手に渡る前にシンボル情報を削除して ゲームは一般販売されています・・・が コスト削減かただの方針か、シンボル情報を残したまま 一般販売されるゲームもたまに存在します このシンボル情報が残っていると、その開発者の付けた名前が ラベル化されてラベル一覧に追加されます。 通常、ラベル一覧にはキャラクターの名前や ちょっとしたディスクに入っているファイルの名前などの 文字列ぐらいしか表示されないのですが シンボル残りのソフトはここにプログラム名も追加されます。 このシンボル情報が残っていると解析にどう関係するかというと 「全部のプログラムの先頭に専用の名前を付けている」ので その専用の名前からそのプログラムがどういう動作をしているのか予想し そこからプログラム改造コードを作る事が可能になり 最大値チェックでは探せないようなコードも探せるようになります。 例えば「add」という言葉、これは加算という意味があり 「add_money」なんてラベルが一覧にあったら お金を加算しているプログラムであると予想できます 他にも「damage」は「ダメージ・損傷」という意味があり 「Player_DamageSet」というラベルがあった場合 プレイヤーの体力を減らす、もしくは受けるダメージの調整 もしくはプレイヤーの敵に与えるダメージ量の計算かもしれません こういったあいまいな表現をしたシンボルも存在します。 問題の「シンボル残りかどうかの判断」ですが 実行ファイルをPS2DISで開くと実行ファイルの先頭が表示されますが そこの近くに「ENTRYPOINT」という文字があるかどうかで判断できます このようにENTRYPOINTがあればシンボル残りですここから下は、怪しいシンボル名をいくつか紹介します ここに載っていない物でもコードに役立つものは多いので 経験でどういうのが怪しいか掴んで下さい。 add = 加算、増加 アイテムやお金の加算など、文字通り加算要素に貼られやすい R5900の命令のaddもこの英語から来ています attack = 攻撃、襲う 攻撃威力や、ダメージ関連のプログラムに貼られる事が多い? 文字が違っても同じ意味を持つプログラム名が多いので注意 (attack以外にも、Dec、damage、calcもダメージ量の候補になる) calc = 計算、計算機 文字通り、何かを計算するプログラムに貼られます 用途はアイテムからキャラの方向や位置など多種多彩 damage = 傷つく、破損 文字通り、ダメージ関連に貼られます 体力を減らす、ダメージ量の計算などで良く使われます debug、dbg、db = デバッグ、バグを取り除く 本来はバグの除去作業などを指す言葉ですが ゲームにバグが無いかチェックする時に使う色々な操作が出来る 機能やマップなどを「デバッグモード」「デバッグマップ」と呼びます このシンボルがあったらデバッグモードが残っているかも? decrease、Dec = 減少、低下 何かの個数やゲージを減らすプログラムに貼られます addと違い、subというシンボルは殆ど見かけません(自環境) encounter、encount = 遭遇、出会う 戦闘開始や敵との遭遇などのプログラムに貼られる たまに攻略などでも耳にする「エンカウント」もこの英語から enemy = 敵、対戦相手 基本的にenemy(エネミー)は敵を表しています たまに変な略し方がされてるので注意です。 gravity = 重力、上昇率 アクションゲームなどでジャンプ力や落下速度関係に貼られます 実際にShinobiではここからジャンプ力が見つかっています (浮動小数点の可能性大) increase、Inc = 増加、増殖 意味合いはaddとほぼ同じですが どちらかといえばこちらの方が良く使われています main = 主要、心臓部 何かの要素を扱うときの中心部に良く貼られます 例えば、MainMoveならば移動に関するプログラムを統括してるなど。 「main」というまんまのシンボルはありますが それはどのゲームにも存在するので解析に役立ちません。 money = お金、通貨 文字通り、お金関係のプログラムに貼られますが ゲームによっては独特の物(Goldなど)に変わる可能性があります move = 移動、動く キャラクターなどの何かが移動するプログラムに貼られます 特に移動速度や座標、移動方法などで多く使われます (浮動小数点の可能性大) obj = オブジェクト、物体、目的 ゲーム中に何気なく置いてある障害物など それらに関係したプログラムに貼られやすいです player = プレイヤー、操作キャラ、主人公 自分で操るキャラ関連に付けられます plなどと略される事もあります point = 点数、地点 スコアと同じ様な意味合いなので、scoreと同じ扱いが多い 地点という意味もあるので座標にも関係があるゲームも もしかしたら存在するかもしれません。 score = 点数、得点 得点数、敵撃破数、成績などの意味合いがある場所に貼られます 点数系はpointよりscoreの方が使われやすい? up = 上がる、上昇 ステータス上昇などで多く使われる 上昇以外にも、ただの「上」という意味もあります use = 利用、使う アイテム使用や何かの要素(宿屋など)使用プログラムに貼られる これもcalc同様、使う場所は多種多彩です これら以外にも、そのゲームの登場人物の名前やアイテム名が シンボルに含まれている場合も、何か改造できる物があるかもしれません。