标签: packet

关注tcp stream - 字段"流索引"来自何处?

Wireshark 在菜单项"Analyze"下有一个名为"follow tcp stream"的功能.

当我使用它时,会生成一个屏幕捕获过滤器,例如:

tcp.stream eq 1

这个指数来自哪里?

我在包含它的数据包中找不到任何字段...

packet-capture packet wireshark

7
推荐指数
1
解决办法
2万
查看次数

Python Twisted代理 - 如何拦截数据包

我正在尝试使用Python打印出HTTP响应的主体.

这是我的代码sofar:

from twisted.web import proxy, http
from twisted.internet import reactor
from twisted.python import log
import sys

log.startLogging(sys.stdout)

class ProxyFactory(http.HTTPFactory):
  protocol=proxy.Proxy

reactor.listenTCP(8080, ProxyFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud)

当我将浏览器连接到localhost:8080时,我可以看到我的所有请求都是通过本地运行的Python代理进行定向的.但是我如何1)打印出响应正文和2)编辑响应正文然后再将其发送回浏览器?

我希望有人可以指出我正确的方向 - 请记住,我是Python的新手!

python http twisted packet intercept

7
推荐指数
1
解决办法
5868
查看次数

什么是ASN文件以及如何使用它?

我正在尝试使用通信协议(S1AP具体),我正在尝试定义要测试的消息.

LTE 36.413规范详细说明了该协议,并在pdf的底部给出了ASN.1文件定义.我已经看到在WireShark的解剖器中使用了ASN文件,我猜我可以使用它来按照规范生成消息.

我想知道你如何使用ASN.1文件.我一直在研究并找到有关ASN.1编译器的信息以及与之相关的其他信息,但所有信息都让我非常困惑,因为没有人清楚地解释如何使用它.有人可以帮我理解如何使用它吗?

networking asn.1 packet-capture packet lte

7
推荐指数
2
解决办法
1万
查看次数

如何使用lwIP堆栈发送简单的HTTP请求?

如果问题不相关,请移动/关闭此项.

核心:Cortex-M4

微处理器:TI TM4C1294NCPDT.

IP堆栈:lwIP 1.4.1

我正在使用这个微处理器进行一些数据记录,我想通过以下形式通过HTTP请求将一些信息发送到单独的Web服务器:

http://123.456.789.012:8800/process.php?data1=foo&data2=bar&time=1234568789

我希望处理器能够看到响应头(即,如果它是200 OK或出现问题) - 它不必显示/接收实际内容.

lwIP有一个用于微处理器的http服务器,但我正好相反(微处理器是客户端).

我不确定数据包如何与请求/响应头相关联,所以我不确定我是如何实际发送/接收信息的.

embedded ip http packet lwip

7
推荐指数
1
解决办法
1万
查看次数

通过PHP的解包函数读取Struct中的Struct

我想知道如何通过php的unpack函数读取结构中的结构.当我得到一个IS_MCI数据包时,我检查它的类型以确保它等于ISP_MCI,然后检查NumC以找出该数据包中有多少个CompCar结构.问题是尝试通过单个函数将这些内容解压缩到一个数组中.我总是得到一个未定义的偏移量.所以,我正在寻找一些新的眼睛.

你会如何处理这个数据包?

有问题的结构是这样的:

struct IS_MCI // Multi Car Info - if more than 8 in race then more than one of these is sent
{
    byte    Size;       // 4 + NumC * 28
    byte    Type;       // ISP_MCI
    byte    ReqI;       // 0 unless this is a reply to an TINY_MCI request
    byte    NumC;       // number of valid CompCar structs in this packet

    CompCar Info[8];    // car info for each player, 1 to 8 of these (NumC)
};

struct CompCar …
Run Code Online (Sandbox Code Playgroud)

php struct variable-length packet

6
推荐指数
1
解决办法
1893
查看次数

在C#中发送原始IP数据包,以太网层之上的所有内容

我不想修改帧的以太网部分,但我需要修改IP数据包和帧的数据部分.

我尝试发送一个原始帧,它仍然输入IP信息.我基本上需要发送一个帧而不定义端点,除了我发送的位.

这是我得到的:

Socket s = new Socket(AddressFamily.Unspecified, SocketType.Raw, ProtocolType.Raw);
EndPoint ep = new IPEndPoint(IPAddress.Parse("205.188.100.58"),80);
s.SendTo(GetBytes(""),ep); //im sending nothing, so i expect the frame to just have ethernet stuff
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, false);
Run Code Online (Sandbox Code Playgroud)

我的问题: 使用SendTo添加帧的IP部分,我不希望这样,因为我想欺骗源IP.使用"发送"将崩溃,因为它说我需要指定一个端点.有关该怎么办的任何建议?我只是想发送一个数据包并自己定义IP部分和数据部分.

注意:不,我没有进行DOS攻击,我需要这个才能合法使用!

我知道如何定义IP部分,它只是在没有生成IP部分的情况下实际发送数据.

c# ip packet spoofing

6
推荐指数
1
解决办法
1万
查看次数

如何捕获IP数据包,更改其内容并在Linux上重新发送?

我的问题是:

如何从网络接口捕获传入的IP数据包,更改其内容并从另一个网络接口重新发送?

linux ip packet

6
推荐指数
1
解决办法
2122
查看次数

ICMP类型11数据包有效负载的大小

当类型为11时,ICMP数据包有效负载的大小是多少,即超过时间?由于它包含IP报头和生成ICMP消息的IP数据包有效负载的前8个字节,我认为其大小为20 + 8 = 28.

我正在重播TTL = 1的一些常见用户流量.在我倾倒的ICMP消息中,我注意到:

  • UDP数据包生成的所有ICMP数据包都具有大小为28字节的有效负载
  • TCP数据包生成的所有数据包都有40字节的有效负载

由于我需要通过比较这些字节来匹配ICMP超时消息和触发它们的数据包,因此这条信息是必不可少的,但我无法弄清楚为什么会发生这种情况.

ip size payload packet icmp

6
推荐指数
1
解决办法
4103
查看次数

使用TCP套接字发送/接收数据包

最近,我设法在我的PC和Raspberry Pi上创建套接字,以实现两个设备之间的通信.目前,客户端能够自动向服务器发送消息.我想知道,如果有可能修改脚本来发送tcp数据包而不是纯文本消息,因为我非常希望将来使用我的PC来控制覆盆子pi,而不需要ssh/etc.

我看了一些例子,但由于我在编写自己的脚本/代码方面没有太多经验,所以我不太清楚如何去做.如果有人可以通过解释和一些例子(如果可能的话)指导我正确的方向,我将不胜感激.

无论如何这里是我正在运行的服务器/客户端脚本:

客户:

import socket   
import sys  
import struct
import time

#main function
if __name__ == "__main__":

    if(len(sys.argv) < 2) :
        print 'Usage : python client.py hostname'
        sys.exit()

    host = sys.argv[1]
    port = 8888

#create an INET, STREAMing socket
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
    print 'Failed to create socket'
    sys.exit()

print 'Socket Created'

try:
    remote_ip = socket.gethostbyname( host )
    s.connect((host, port))

except socket.gaierror:
    print 'Hostname could not be resolved. Exiting'
    sys.exit()

print 'Socket Connected to ' …
Run Code Online (Sandbox Code Playgroud)

python sockets tcp client-server packet

6
推荐指数
2
解决办法
5万
查看次数

Scapy:使用PacketListField解析数据包中包含的多个数据包

我正在尝试剖析数据包,它封装了另一个类似于数据包的结构,称为"标记".结构看起来像这样

+---------+
|Ether    |
+---------+
|IP       |                   a tag
+---------+
|UDP      |                +------------+
+---------+                |tagNumber   |
|BVLC     |                +------------+
+---------+                |tagClass    |
|NPDU     |                +------------+
+---------+           +-+  |LVT field   |
|APDU     |           |    +------------+
|  +------+--+        |    |            |
|  |Tag 1    | <------+    |  data      |
|  +---------+             |            |
|  |Tag 2    |             +------------+
|  +---------+
|  |Tag n    |
+------------+
Run Code Online (Sandbox Code Playgroud)

为此,我创建了一个派生自现有的类PacketListField,如下所示:

class TagListField(PacketListField):
    def __init__(self):
        PacketListField.__init__(
            self,
            "tags",
            [],
            guessBACNetTagClass,
Run Code Online (Sandbox Code Playgroud)

引用guessBACNetTagClass的函数返回解析标记所需的正确类.

BACNetTagClasses = …
Run Code Online (Sandbox Code Playgroud)

python scapy packet bacnet

6
推荐指数
1
解决办法
1151
查看次数