C++ WinDivert-修改数据包数据/有效负载内容
例如,我看到WinDivert的示例和示例代码被用来修改数据包的属性,比如它们的目标地址 但是我一直在努力搜索,在重新注入数据包之前,找不到任何修改数据包实际有效负载的文档或示例 以下是我目前掌握的代码:C++ WinDivert-修改数据包数据/有效负载内容,c++,c,payload,man-in-the-middle,packet-injection,C++,C,Payload,Man In The Middle,Packet Injection,例如,我看到WinDivert的示例和示例代码被用来修改数据包的属性,比如它们的目标地址 但是我一直在努力搜索,在重新注入数据包之前,找不到任何修改数据包实际有效负载的文档或示例 以下是我目前掌握的代码: HANDLE handle; // WinDivert handle WINDIVERT_ADDRESS addr; // Packet address char packet[MAXBUF]; // Packet buffer UINT pac
HANDLE handle; // WinDivert handle
WINDIVERT_ADDRESS addr; // Packet address
char packet[MAXBUF]; // Packet buffer
UINT packetLen;
handle = WinDivertOpen("...", 0, 0, 0); // Open some filter
if (handle == INVALID_HANDLE_VALUE)
{
// Handle error
exit(1);
}
// Main capture-modify-inject loop:
while (TRUE)
{
if (!WinDivertRecv(handle, packet, sizeof(packet), &addr, &packetLen))
{
// Handle recv error
continue;
}
// Modify packet.
if (!WinDivertSend(handle, packet, packetLen, &addr, NULL))
{
// Handle send error
continue;
}
}
在//修改数据包。步骤I需要执行有效负载修改。具体来说,我希望用新字符串替换或完全覆盖数据
在WinDivert文档中,我能找到的唯一处理数据包数据的方法是解析数据包的方法:
BOOL WinDivertHelperParsePacket(
__in PVOID pPacket,
__in UINT packetLen,
__out_opt PWINDIVERT_IPHDR *ppIpHdr,
__out_opt PWINDIVERT_IPV6HDR *ppIpv6Hdr,
__out_opt PWINDIVERT_ICMPHDR *ppIcmpHdr,
__out_opt PWINDIVERT_ICMPV6HDR *ppIcmpv6Hdr,
__out_opt PWINDIVERT_TCPHDR *ppTcpHdr,
__out_opt PWINDIVERT_UDPHDR *ppUdpHdr,
__out_opt PVOID *ppData,
__out_opt UINT *pDataLen
);
ppData:指向数据包数据/有效负载的输出指针
但是,我不确定这是否会让我修改数据(可能会吗?),因为它似乎只让我检索数据包以进行输出
那么我该如何编辑有效负载呢?
视频和源用户windivert。
视频和源用户windivert。如果将来有人在寻找一种非常简单的方法来实现这一点,我使用了一个名为“pydivert”的windivert Python包装器。这很简单
链接:如果将来有人想找到一种非常简单的方法来实现这一点,我使用了一个名为“pydivert”的WinDivert Python包装器。这很简单 链接: