|
原帖由 asbai 于 2006-10-22 03:34 PM 发表
呵呵,兄台果然乃执着的技术高人。不过小弟拜读以后觉得有几处不妥:L:
1. 毛桃兄的 setupldr.bin 来自 2k3 sp1,而 nt kernel 则出自 xp sp2。据此推测 ntoskrnl.exe 是使用了某种方式的自校验,校验工作 ...
呵呵
娱乐一下嘛:)
其实我猜测xpeinit运行时,所有的初始化工作已经做完了,出现0x71错误只是因为内核线程顽固地等待了5秒
经过分析,仅有下面一处:
_Phase1Initialization@4 proc near
..............
or [ebp+Timeout.HighPart], 0FFFFFFFFh
lea eax, [ebp+Timeout]
push eax ; Timeout
push ebx ; Alertable
push dword ptr [ebp-554h] ; Handle
mov [ebp+Timeout.LowPart], 0FD050F80h
call _ZwWaitForSingleObject@12 ; ZwWaitForSingleObject(x,x,x)
test eax, eax
jz loc_5C7AB4
..................
loc_5C7AB4: ; BugCheckCode
push 71h
jmp loc_5C7AB6
loc_5C7AB6: ; KeBugCheck(x)
call _KeBugCheck@4
mov ecx, [ebp+var_4]
pop esi
pop ebx
call @xHalReferenceHandler@4 ; xHalReferenceHandler(x)
leave
retn 4
因为是在加载阶段提示ntoskrnl.exe无法加载,错误代码为4
这时候完全由setupldr.bin主导引导过程,因此有了上述看法 |
|