gpt4 book ai didi

c - NDIS 钩子(Hook) sendPacketsHandler

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:41 27 4
gpt4 key购买 nike

我使用 NdisRegisterProtocol() 来注册协议(protocol)驱动程序,并使用 _NDIS_OPEN_BLOCK_NDIS_PROTOCOL_BLOCK 结构来 Hook ReceivePacketHandler 成功,使用 MyRecivePacket() 而不是 NDIS 接收数据包功能,当我打开一个网站时, MyRecievePacket() 将运行。

我的问题是:当我使用 IE 打开网站(如 www.stackoverflow.com)时,我如何 Hook SendPacketsHandler 以获取此数据包并获取url www.stackoverflow.com 字符串。也就是说,如何在内核态下抓取url。谢谢

最佳答案

这不是你通常应该做的事情,URL 数据属于网络堆栈的应用层,不应该被驻留在内核空间中的较低层访问。在此处查看有关 Windows 网络体系结构中协议(protocol)驱动程序分层的更多信息:http://msdn.microsoft.com/en-us/library/windows/hardware/ff571073(v=vs.85).aspx

但是,通过位于其之上的协议(protocol)(例如 HTTPTCP)删除在到达协议(protocol)驱动程序的过程中添加到数据包的 header 可能是可能的IP 等。您需要知道在前往协议(protocol)驱动程序的途中应用于数据包的确切协议(protocol)。标题是递增添加的,对于每个底层,来自上层的输入是一个不透明的数据 block (由上层数据和标题组成)。例如,您的数据包可能以纯数据开始,在开始时向其添加 HTTP header ,之后添加 TCP header ,然后添加 IP header 那。您需要以相反的顺序删除 header 以恢复原始数据。

请注意,这并不总是可行的,因为下行协议(protocol)可能会更改数据,例如通过加密它。在这种情况下,您将无法通过执行反向操作(例如解密)来提取原始数据。

关于c - NDIS 钩子(Hook) sendPacketsHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13581939/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com