原帖由 Rinrin 于 2006-10-22 10:13 AM 发表
按照asbai的方法做了试验
随后找到了产生0x71的地方
给ntoskrnl.exe打了一个补丁(其实就是把jz指令改为nop) :)
结果setupldr.bin似乎有校验的
无法加载
我倒~~~
原帖由 asbai 于 2006-10-22 03:34 PM 发表
呵呵,兄台果然乃执着的技术高人。不过小弟拜读以后觉得有几处不妥:L:
1. 毛桃兄的 setupldr.bin 来自 2k3 sp1,而 nt kernel 则出自 xp sp2。据此推测 ntoskrnl.exe 是使用了某种方式的自校验,校验工作 ...
_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
原帖由 lxl1638 于 2006-10-22 05:21 PM 发表
这些本人是文盲啦,不过总觉得给nt kernel打补丁不是很好的方法,除非对它完全了解(如有它的源码),asbai 兄 提出延迟Kill掉smss是很稳妥的办法,因为XPEinit -9也是这个操作,只不过是它早了些,我们把它延迟去做。
原帖由 Rinrin 于 2006-10-22 05:43 PM 发表
呵呵
娱乐一下嘛:)
其实我猜测xpeinit运行时,所有的初始化工作已经做完了,出现0x71错误只是因为内核线程顽固地等待了5秒
经过分析,仅有下面一处:
因为是在加载阶段提示ntoskrnl.exe无法加载,错误 ...
原帖由 asbai 于 2006-10-22 06:29 PM 发表
呵呵,娱乐一下确实无妨的说。:)
关于 ntoskrnl.exe 无法加载应该是其装载时进行自校验的结果。刚看了毛桃兄关于换 xp boot logo 的大作,也是改完了 ntoskrnl.exe 以后要用 modifyPE update 其 crc 校验和 ...
原帖由 Rinrin 于 2006-10-22 05:43 PM 发表
呵呵
娱乐一下嘛:)
其实我猜测xpeinit运行时,所有的初始化工作已经做完了,出现0x71错误只是因为内核线程顽固地等待了5秒
经过分析,仅有下面一处:
因为是在加载阶段提示ntoskrnl.exe无法加载,错误 ...
原帖由 lxl1638 于 2006-10-22 07:33 PM 发表
有一点不明,内核线程顽固地等待了5秒,按理说,这5秒后再执行XPEinit -9应该不会出现蓝屏了,但有些机子要延时7秒或更多。
原帖由 lxl1638 于 2006-10-22 07:33 PM 发表
有一点不明,内核线程顽固地等待了5秒,按理说,这5秒后再执行XPEinit -9应该不会出现蓝屏了,但有些机子要延时7秒或更多。
原帖由 Rinrin 于 2006-10-22 09:29 PM 发表
这个。。。
我也不知道如何解释:P
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) | Powered by Discuz! X3.3 |