草庐IT

python - 使用 Scapy 制作数据包时,我在 Wireshark 中看不到我的有效负载

我正在编写一小段代码来为我正在进行的项目创建一个TsunamiSYN泛洪数据包。TsunamiSYN泛洪与普通SYN泛洪的不同之处在于数据包包含数据,这意味着链接带宽以及受害计算机上的资源都已耗尽。我想我已经成功地向我的数据包添加了一个数据负载,它在我运行代码时显示出来,但是当我在Wireshark上查看数据包时,我似乎看不到数据。我很可能遗漏了一些非常明显的东西,但我将不胜感激,这对我来说都是新的。#typesudo,commandthenfollowwithvictimIPaddressimportsysfromscapy.allimport*iterationCount=0f=I

C# Bot 使用 TcpClient 类连接

我正在尝试使用IP和端口连接到服务器。我想创建一个TcpClient连接,以便稍后发送和接收数据包。我在使用fsocket函数之前在PHP中创建了它。例如:$fp=fsockopen(packets::$server,packets::$port,$errno,$errstr,30);fwrite($fp,packets::login('username','password'));现在我想用C#重做这个。我开始用谷歌搜索这个,但实际上只找到了一种使用TcpClient类的方法所以我开始像下面这样:publicvoidtcpConnect(stringip,intport){TcpCl

java - Android VpnService 转发数据包

我想使用android的VpnService来捕获数据包并根据IP地址过滤它们。我可以很好地从“tun”接口(interface)获取数据包,但在那之后我不确定如何将它们转发到它们的原始目的地。基于thisanswer的评论看来我只需要:创建到目标IP地址和端口的新套接字修剪IP和TCPheader以仅发送数据收到响应后重新附加IP和TCPheader将完整的数据包发送到输出流我试过这样发送数据:Socketsocket=newSocket();socket.bind(newInetSocketAddress(0));if(protect(socket)){Log.e(TAG,"Soc

c# - 读取拆分的 TCP 数据包

我已经编写了大部分代码来为我的服务器处理传入的数据包。数据包的格式始终是int/int/int/string/string,第一个int是数据包的大小。我需要想出一些方法来检查并查看是否整个数据包都到达了,或者我是否需要等待更多的数据包进来,但是按照我编写代码的方式,我想不出一个好的方法。任何帮助都会很棒,因为我的大脑可能对此考虑过多。privatevoidReadClientPacket(objectclient){TcpClienttcpClient=(TcpClient)client;NetworkStreamclientStream=tcpClient.GetStream();

java - 使用android手机发送TCP命令但没有发送数据

我需要从Android手机通过wifi向路由器发送命令,通过电线发送到“有线电视盒”importandroid.util.Log;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.InetAddress;importjava.net.InetSocketAddress;importjava.net.Socket;importjava.net.SocketAddress;importjava.util.ArrayList;publicclassTCPR

c# - 网络流二进制序列化

嘿伙计们,我正在制作一个聊天程序,我有一个父“MessagePacket”类和一堆子类,用于发送不同类型的数据包,其中包含主聊天窗口的消息,当前人员列表聊天、私聊消息等在客户端中,我做的第一件事是创建一个“AddClientPacket”并将其序列化/发送到服务器,然后服务器将其反序列化为它的父“MessagePacket”类,该类包含一个类型属性,用于确定要发送的内容使用它获得的通用MessagePacket进行转换/执行。当服务器尝试反序列化它时会导致崩溃,我不确定为什么。下面是一些代码:--服务器--privatevoidHandleClientComm(Objectclient

networking - 关于数据包的一些困惑

谷歌搜索一段时间后,我真的很困惑。答案就在我眼前,但我还是不明白!据说:Themaximumpacketsizeis65535(includingpacketheaders),butitactuallyisn't!ItistheMaximumTransmissionUnit(MTU)value!从程序员的角度来看,我应该考虑的值(value)是什么?如果我应该考虑的值是MTU,那么这个世界上存在的最小MTU值是多少?还有一件事。由于UDP使用数据报通过网络发送数据包,因此具有最大数据包大小是有意义的。但是,TCP以八位字节流的形式传输数据,那么为什么会有最大数据包大小呢?(只是好奇)在

python - 解压需要长度为 44 python 的字符串参数

我有一个用于获取数据包的while循环unpackedData=struct.unpack("!BBHHHBBH4s4sHH4s4s4sHH4s",data[:44])这一行抛出异常Unpackrequiresastringargumentoflength44python但在使用调试器后我注意到它在几次循环后发生,我认为这是因为缓存已满。有没有办法清除python缓存或销毁对象或类似的东西? 最佳答案 我最好的猜测是,在你的while循环中,你每次将data字符串缩短44个字符,但是,44并没有平均划分你的原始字符串,所以在最后一次

c# - 为 TCP/UDP 传输安全地标记数据包的开始/结束

我正在编写一个基于客户端/服务器的应用程序,该应用程序在本地网络上运行,以在客户端和服务器之间交换数据,我创建了一个非常简单的NetworkCommand对象,该对象被转换为byte[]并使用TCP或UDP发送。问题是正确地标记了end-of-packed,现在我使用了byte[]{0,0,0}和数据包结束标记,但在整个数据包本身中似乎重复了太多次。那么,我如何安全地标记end-of-packet?网络命令.csusingSystem;usingSystem.IO;namespaceCybotech.Common{publicenumCommandType{NeedIP=1,IPDat

java - 解析 TCP 数据包

我在解析来自套接字的TCP数据包时遇到了一些问题...在我的协议(protocol)中,我的消息是这样的:'A''B''C''D''E'.........0x2300'A''B''C''D''E'-->开始消息模式0x2300-->两个字节的结束信息但是由于Nagle'salgorithm,有时我的消息会像这样串联起来:'A''B''C''D''E'.........0x2300'A''B''C''D''E'........0x2300'A''B''C''D''E'.......0x2300我已经尝试将setNoDelay()设置为true,但问题仍然存在。我在byte[]中有消息。我