Windows2000 の user32.dll に未修正のバグ
KernelEx for Win2000 - Page 19 - Windows NT4 / 2000 / 2003 - MSFN Forum
拡張カーネルでゲーム動かそうとしたら user32.dllで落ちるよって外人さんからレポートがあったので調べてみました
L77DEB87D: mov esi,[esi+38h] test esi,esi jz L77DEB899 push [ebp+18h] push [ebp+14h] push [ebp+10h] push ebx push esi L77DEB88F: call SUB_L77DE6063 jmp L77DEB92B L77DEB70F: L77DEB899: |
どうもWindows 2000の場合 esi+0x3cの代入値が0であることをチェックしていないらしい
L77E35D00: cmp dword ptr [esp+00h],00000000h jz L77E35D11 call SUB_L77DE6063 jmp L77DEB92B L77E35D11: add esp,00000014h jmp L77DEB899 |
というわけで、チェックルーチンを加えてみた
動くようになった
GameRanger - play your friends online
Windows 2000 Kernel32 改造計画【BM】
日本語版v23g2
English 版 v23f3
が修正分。ゲーム対応版は少しお待ちください
Comments