【注意】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

おすすめ

コメントを残す

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