|
|
|
|
|
|
|
Windows内核调试
帖子发起人: greenland 发起时间: 2009-02-23 17:36 下午 回复: 15
|
帖子排序:
|
|
|
|
2009-02-23, 17:36 下午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
请问有没有方法用windbg调试ntldr啊?
不要用bochs调试的方法,那个我知道,但是没有routines的名字。
麻烦各位大侠告诉下方法。
谢谢!
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-23, 18:30 下午
|
王宇
注册: 2007-05-08
发 贴: 306
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-23, 19:47 下午
|
MJ0011
注册: 2008-04-24
发 贴: 112
|
|
|
用ntldr_dbg替换ntldr就可以调试了 ,DDK下找
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-25, 08:57 上午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
谢谢MJ0011 我一会去试试
我也是做信息安全的 不过是学生啦
最近刚也有看看你关于tophet的东西呢
很佩服你
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-25, 09:13 上午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
刚找了一下 没发现 能告诉我一般是在哪个目录下么
我的系统是vista的 是不是可能没有那个东西啊
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-25, 10:12 上午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
我刚才在网上查了下 说是在debug目录下
我又在xp中装了下ddk 还是没找到ntldr_dbg
难道是ddk版本的问题?我用的是windows driver kit 6001.18001
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-25, 12:02 下午
|
MJ0011
注册: 2008-04-24
发 贴: 112
|
|
|
可能需要ifs ddk
http://bbs.driverdevelop.com/read.php?tid-96460.html这里有下载
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-25, 17:13 下午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
我下午又装了一个windows 2003 server版的ddk 终于找到ntldr_dbg了
我把xp的boot.ini中添加了调试选项 /debug comport:com1 /bautrate=15200/debugstop
然后又用ntldr_dbg替换了ntldr,结果启动的时候显示"NTLDR is corrupt. The system can not boot."
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-25, 17:39 下午
|
MJ0011
注册: 2008-04-24
发 贴: 112
|
|
|
你应该取了非I386的NTLDR_DBG文件
参考WINDOWS的BOOT代码:
if ((FileHeader->Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE) == 0) {
puts(SU_NTLDR_CORRUPT);
WAITFOREVER;
}
if (FileHeader->Machine != IMAGE_FILE_MACHINE_I386) {
puts(SU_NTLDR_CORRUPT);
WAITFOREVER;
}
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-26, 09:11 上午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
谢谢MJ0011
确实是版本的问题
我的那个是windows server2003的
我在你给的那个网站上下了XP的 果然好了
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-26, 14:31 下午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
测试的时候发现调用一个函数的时候 后面出现的不是函数名字了 都是内存中的地址 不像在测试bootmgr等vista中的东西的时候 那些函数都是名字
这样,我想要了解ntldr的运行情况就要困难很多了
虽然基本的汇编的代码我看得懂 但是要弄清那些代码究竟是什么意思还是很难
请问有什么好一点的方法吗?
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-26, 14:39 下午
|
MJ0011
注册: 2008-04-24
发 贴: 112
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-26, 15:56 下午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
kd> .reload
Connected to Windows Boot Debugger 2600 x86 compatible target, ptr64 FALSE
Module List address is NULL - debugger not initialized properly.
WARNING: .reload failed, module list may be incomplete
KdDebuggerData.KernBase < SystemRangeStart
Loading Kernel Symbols
Module List address is NULL - debugger not initialized properly.
WARNING: .reload failed, module list may be incomplete
总是失败
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-27, 08:40 上午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
完整的信息如下:
Microsoft (R) Windows Debugger Version 6.9.0003.113 X86
Copyright (c) Microsoft Corporation. All rights reserved.
Waiting for pipe \\.\pipe\xp
Waiting to reconnect...
Connected to Windows Boot Debugger 2600 x86 compatible target, ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path. *
* Use .symfix to have the debugger choose a symbol path. *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is:
*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
* *
* The Symbol Path can be set by: *
* using the _NT_SYMBOL_PATH environment variable. *
* using the -y argument when starting the debugger. *
* using .sympath and .sympath+ *
*********************************************************************
Module List address is NULL - debugger not initialized properly.
WARNING: .reload failed, module list may be incomplete
KdDebuggerData.KernBase .sympath
Symbol search path is: SRV*d:\xpsymbols*http://msdl.microsoft.com/download/symbols
kd> .reload
Connected to Windows Boot Debugger 2600 x86 compatible target, ptr64 FALSE
Module List address is NULL - debugger not initialized properly.
WARNING: .reload failed, module list may be incomplete
KdDebuggerData.KernBase < SystemRangeStart
Loading Kernel Symbols
Module List address is NULL - debugger not initialized properly.
WARNING: .reload failed, module list may be incomplete
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-02-27, 08:47 上午
|
greenland
注册: 2009-02-03
发 贴: 15
|
|
|
我先进XP下了一下symbols 然后又重启就好了
真奇怪啊 在用ntldr_dbg替换ntldr之前明明有.reload了的
不过不管了 只要能用就好了
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
|
总页数 1 第 2 页 [共有 16 条记录]
|
1 2 > |
|
|
高端调试 » 软件调试 » Windows内核调试 » Re: windbg调试ntldr
|
|
|
|
|
|