【注意】WildBill氏のsrv.sys のセキュリティFIXにバグがあったよ
魔改造版 Windows 2000 DVD にはこのセキュリティFIX、不安定だったので入れてなかったのですが、もしかすると、いれてる人がいるかもしれないので一応注意喚起なのです・ω・
不具合が確認されている srv.sys のバージョンは
5.0.2195.7368 と 5.0.2195.7369
彼の追加したアセンブルコードに不具合があって、分岐処理によっては BSoD になるという問題が発生します。
問題のないバージョン
mov eax,[esi+58h] ; ************ EAX = [esi+58h] mov ecx,[ecx+10h] sub ecx,[ebp-04h] movzx edx,[edi+03h] add ecx,eax mov [ebp-08h],edx cmp edx,ecx jc L0001FD30 mov [ebp-08h],ecx L0001FD30: mov edi,[edi+05h] jmp L0001FD70 L0001FD70: and dword ptr [ebp-18h],00000000h mov [ebp-1Ch],edi cmp byte ptr [ebx+1Dh],00h jnz L0001FDAB ;************************ L0001FDAB: movzx eax,[eax+1Ah]; ************ EAX = [esi+58h] |
問題のあるバージョン
LB79353D8: movzx eax,[edi+03h]; ************ EAX = [edi+03h] cmp eax,[ebp-08h] jnc LB7909D31 jmp LB7909D2E LB7909D2E: mov [ebp-08h],eax LB7909D31: mov edi,[edi+05h] jmp LB7909D70 LB7909D70: and dword ptr [ebp-18h],00000000h mov [ebp-1Ch],edi cmp byte ptr [ebx+1Dh],00h jnz LB7909DAB ;********************** LB7909DAB: movzx eax,[eax+1Ah]; ************ EAX = [edi+03h] !!!!!!!!!!!!!!!!!!!! |
評価される EAX レジスタの中身が別のものになっちゃってるね・ω・
KernelEx for Win2000 - Page 27 - Windows NT4 / 2000 / 2003 - MSFN Forum
Comments