![如何在 WinDbg Windows 内核调试中查找 IP 地址](https://linux22.com/image/1573609/%E5%A6%82%E4%BD%95%E5%9C%A8%20WinDbg%20Windows%20%E5%86%85%E6%A0%B8%E8%B0%83%E8%AF%95%E4%B8%AD%E6%9F%A5%E6%89%BE%20IP%20%E5%9C%B0%E5%9D%80.png)
我发现本文,来自 OSR 论坛,但是,它在 Windows 10 中不起作用。
2: kd> x srvnet!SrvAdminIpAddressList
81fb06b8 srvnet!SrvAdminIpAddressList = <no type information>
2: kd> du poi(poi(srvnet!SrvAdminIpAddressList))
85c52090 "127.0.0.1"
有一个未记录的位来!process
获取环境变量+主机名,但有时 DNS 失败,因此需要 IP 地址进行日志记录。
$$ !process will dump all the environment variables and hostname 0x31 is magic value.
bu module!class::function "!process 0 0x31 wininit.exe; gc"
答案1
基于https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/-ndiskd-netadapter
$$ find IP address of host
!ndiskd.netadapter -ip
示例输出:
14:kd> !ndiskd.netadapter -ip 驱动程序 NetAdapter 名称
ffffce85591b7450 ffffce8558ff51a0 Microsoft 内核调试网络适配器IP 地址
unicast ffffce855af44040 - 10.6.185.61 multicast ffffce855968c040 - 224.0.0.1 multicast ffffce855b45e040 - 224.0.0.251 multicast ffffce855b449040 - 224.0.0.252 multicast ffffce855968c130 - 239.255.255.250 broadcast ffffce8559688040 - 255.255.255.255 broadcast ffffce855af42040 - 10.6.185.255 unicast ffffce8559694040 - fe80::e929:f1ef:83da:31b multicast ffffce855969a040 - ff01::1 multicast ffffce855969a130 - ff02::1 multicast ffffce855969a220 - ff02::1:ffda:31b multicast ffffce855b423040 - ff02::fb multicast ffffce855b450040 - ff02::1:3 multicast ffffce8558c1f040 - ff02::c
请注意,您需要私人的的符号tcpip.sys
才能使其起作用,否则:
11:kd> !ndiskd.netadapter -ip ... *** 错误:找不到符号文件。默认为 ndis.sys 导出符号 - ... *** 引用的类型:ndis!_LIST_ENTRY ***
另一种方法是,如果您的主机使用 DHCP,则分配给 KDNET 虚拟适配器的 IP 地址将相同,因为 DHCP 服务器使用 MAC 地址分配 IP 地址,并且 KDNIC 适配器具有与真实 NIC 相同的 MAC。当机器首次启动并协商与 WinDbg 的连接时,会打印此信息。
Connected to target 172.xxx.yyy.zzz on port 50009 on local IP 172.xxx.yyy.zzz