蔵解析再開・・・!ついにdtx3000以上読み込めるようになったドン!
2chにてOllydbgの使い方を教えてもらえたので公開。
1.OllyDbgで藏開く
2.タブバーのView→Executable modules
3.Executable modulesウインドウの藏をダブクリ
4.右クリ→All referenced text strings
5.Unknown Effect IDで検索してダブクリ
Unknown EffectIDについては後で調べるとして前から解除したかったdtxファイルの制限を解除してみたいと思います。TexImageで検索をかけてASCII "DUfwImageMgr::CreateNewTexImage() error"をダブルクリックして飛びます。
アドレス 16進ダンプ コマンド コメント
00430AA0 /$ 53 PUSH EBX ; InphaseNXD.00430AA0(guessed Arg1)
00430AA1 |. 57 PUSH EDI
00430AA2 |. 8B7C24 0C MOV EDI,DWORD PTR SS:[ARG.1]
00430AA6 |. 81FF B80B0000 CMP EDI,0BB8
00430AAC |. 8BD9 MOV EBX,ECX
00430AAE 72 1B JB SHORT 00430ACB
00430AB0 |. 6A 00 PUSH 0 ; Type = MB_OK|MB_DEFBUTTON1|MB_APPLMODAL
00430AB2 |. 68 688B5B00 PUSH OFFSET 005B8B68 ; Caption = "DUfwImageMgr::CreateNewTexImage() error"
00430AB7 |. 68 3C8A5B00 PUSH OFFSET 005B8A3C ; Text = "UD3"mage Index Overflow."
00430ABC |. 6A 00 PUSH 0 ; hOwner = NULL
00430ABE |. FF15 E8735B00 CALL DWORD PTR DS:[<&USER32.MessageBoxA>
エラーメッセージが出る周辺のアセンブリコードが並んでると思います。んで重要なのは赤字で書かれてる行。ある条件が満たされた時、指定したアドレスへジャンプするので下記のエラーメッセージが出力されるのを防ぐことが出来ます。それでこの部分を書き換えたいと思います。結論から言うと無条件でジャンプさせてしまえばいいのでJB SHORT 00430ACBをJMPSHORT 00430ACBに書き換えてみて下さい。これでtexファイルを3000以上読み込むことが出来るようになります。。確認できたら後は蔵をバイナリエディタで概要の箇所を書き換えます。
なんか色々と書こうと思ったけど眠いので答え書いちゃいますね。
30AA00E、この場所を指してるバイナリ72をEBに書き換えてみて下さい。するとエラーメッセージが出なくなりました。UnknownEffectIDも今後解析してみたいと思います!多分エラーチャックだから回避したとして結局エフェクトが表示されないと思うのですが・・・・まあやれるだけやってみます。
もしよろしければ私のモチベーションアップの為にチャンネル登録お願いします!
コメント