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)
何でエラーになってるかは、時間のあるときに調べてみますが、このくらいなら直してくれないかなぁ。。。と思うのでした。
Comments