赤い猫のブログ

REDCATの(自分が)痛い話

1をいくつに増やせますか?ということ

2008-12-29 | Weblog
真・恋姫†無双

yukiさんの提供データ付近を再現すると、

004AB9EF INT3
004AB9F0 MOV EAX,DWORD PTR DS:[ECX+4]
004AB9F3 MOV ECX,DWORD PTR SS:[ESP+8]
004AB9F7 MOV EDX,DWORD PTR SS:[ESP+4]
004AB9FB MOV DWORD PTR DS:[EAX+EDX*4],ECX
004AB9FE RETN 8
004ABA01 INT3

元がAVGで汎用サブルーチン(関数)であり、
実アドレスがベースアドレス+相対オフセット(変数ID*??)
なので、『目的の値がインタプリタ或いはそれに準じる
構造体(変数コンテナ)上にあると判断』できます。

またストアを目的とした関数である以上、関連処理で
必ずアクセスされる確証があり、ベースアドレスや
変数が予め引数的存在として扱われているため、
件の処理を遡れば、容易にポインタアドレスの特定も
可能です。この時点で、解析結果自体が誤りであろうとも、
yukiさんを協力者指定する根拠としては十分過ぎるものが
あるでしょう。元は報告される副作用がバラエティ有り
過ぎて不審に感じ、自分も放置できなくなったためですが(^^;

yukiさんの解析結果が不適だったのは、この関数自体に
手を加えたことで、複数関連エリア全体に効果を及ぼした
ためで、ブレイク時点で『』の部分を分析しなかった結果
でしょう。実際コール元は1箇所しかないため、分析よりも
こうすればいいという型通りの解析に傾倒し過ぎていると、
失敗しやすい部分かと。

単純に質が優れているとか、結果が出るかだけで解析とする
のは短慮と言える一例かと思います。そういう意味では、
投稿内容の質・量を問はないうちのサイトは、アプローチ
収集場的存在であり、やはり改造利用者というよりは解析者
そのもの寄りな場所かと自負しています。

関連エリア自体がグローバルでもそこに配置された変数自体が
グローバルな存在であるとは限らないため、サポ板に書いた
可能性は0ではありません。しかし、特定のシーンで特定の
立ち絵しか異常がないのであれば、単にシナリオ表記ミスに
よるバグと考える方が自然に思えます。実際、その場を確認
しないと断定はできませんが。

最新の画像もっと見る