Woopie Video DeskTopをWindows2000で設定保存可能にしてみる実験

散歩してたら、Woopie Video DeskTopの不具合がKDWで変化ないぞゴラァ!ってブログを発見したので(笑)ちょっといじってみました。

トレースしてみると、

 00439B28  E843A3FCFF                        call    SUB_L00403E70
 00439B2D  50                                push    eax
 00439B2E  8B45D4                            mov    eax,[ebp-2Ch]
 00439B31  8B08                              mov    ecx,[eax]
 00439B33  8B55D4                            mov    edx,[ebp-2Ch]
 00439B36  52                                push    edx
 00439B37  8B81B4000000                      mov    eax,[ecx+000000B4h]
 00439B3D  FFD0                              call    eax
 00439B3F  8945F0                            mov    [ebp-10h],eax
 00439B42  837DF000                          cmp    dword ptr [ebp-10h],00000000h
 00439B46  7D12                              jge    L00439B5A
 00439B48  6840C94F00                        push    L004FC940
 00439B4D  8B4DD4                            mov    ecx,[ebp-2Ch]
 00439B50  51                                push    ecx
 00439B51  8B55F0                            mov    edx,[ebp-10h]
 00439B54  52                                push    edx
 00439B55  E8B6630700                        call    SUB_L004AFF10
 00439B5A                           L00439B5A:
 00439B5A  8B45F0                            mov    eax,[ebp-10h]
 00439B5D  8945D8                            mov    [ebp-28h],eax
 00439B60  C745FCFFFFFFFF                    mov    dword ptr [ebp-04h],FFFFFFFFh
 00439B67  8D4D08                            lea    ecx,[ebp+08h]
 00439B6A  E861D4FCFF                        call    SUB_L00406FD0
 00439B6F  8B45D8                            mov    eax,[ebp-28h]
 00439B72  8B4DF4                            mov    ecx,[ebp-0Ch]
 00439B75  64890D00000000                    mov    fs:[00000000h],ecx
 00439B7C  59                                pop    ecx
 00439B7D  8BE5                              mov    esp,ebp
 00439B7F  5D                                pop    ebp
 00439B80  C20800                            retn    0008h

どうやら赤字の箇所でエラーがかえってくることがある模様。
jge    L00439B5Aが負の値だと例外処理に飛ばして読み書きを中断してしまうようです。
ちなみに、call eax の中身は msxml3.dllへのジャンプ。

もう1つ上の処理をトレースしてみるとどうやら、
last_run_time や hot_pop_enable と haswar の処理のあたりでこけてる感じがしますね。
そんなわけで、青字の箇所を、 7D 12 → EB 12(いわゆる 無条件jmp) に書き換えてみたところ、保存できるようになりました。
(バイナリエディタではオフセット 0x0039B46)

何でエラーになってるかは、時間のあるときに調べてみますが、このくらいなら直してくれないかなぁ。。。と思うのでした。

関連サイト:
Woopie Video DeskTopバージョンアップ_Woopie 開発者ブログ

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です