从ByteBuffer中获取IP包数据
我正在尝试从数据包获取源和目标地址.这就是我正在阅读数据包的方式: private void debugPacket(ByteBuffer packet) { int buffer = packet.get(); int ipVersion = buffer >> 4; int headerLength = buffer & 0x0F; headerLength *= 4; buffer = packet.get(); //DSCP + EN int totalLength = packet.getChar(); //Total Length buffer = packet.getChar(); //Identification buffer = packet.getChar(); //Flags + Fragment Offset buffer = packet.get(); //T
2 2024-02-07
编程技术问答社区
数据包捕获应用程序一旦启动,就不再与其他应用程序进行互联网连接了
我已经在我的Android手机上安装了数据包捕获 - 三星Galaxy S7 Edge运行Android版本8.0.它不是生根 我也遵循所有步骤并安装了SSL证书. 这是应用程序 link link /p> 当我单击"开始"按钮以捕获应用程序的流量Internet连接不起作用. Chrome在电话上工作. 我尝试过失去互联网的应用程序是亚马逊,猫头鹰凸轮,arlo 知道我缺少什么设置或更改? 在stackoverflow上查找类似的问题,没有任何答案 1) question1 解决方案 简短答案: 没有解决您的问题的完整解决方案.而且不可能解决它.发生此问题的原因是存在"证书固定".即使简单的生根也无法解决您的问题. 仍然有部分解决方案. Turn off 'SSL Capture'.然后所有应用程序都将开始工作.但是您将无法解密通过SSL连接发送的数据包的内容.但是您仍然可以看到数据包的源地址和目标地址.如果您的数据包Sniff
0 2024-02-03
编程技术问答社区
不要在Android 9 pie上使用代理
我刚刚将三星Note 8手机升级到Android OS 9.0 当我进入高级WiFi设置时,我选择手动使用代理模式. 主机:192.168.1.8 港口:8888 在计算机上,我打开了提琴手软件以捕获数据包.但是,我无法从电话中抓住任何包装.在此之前,我正在使用Android OS 8.0.我仍然可以使用提琴手捕获数据包 Google在Android 9.0 上有更好的安全性吗? 解决方案 不确定您的确切设置.我可以推荐以下设置,通常在所有Android版本(包括Android 9/pie)上对我有用.注意:这是应用程序特定的! 下载并运行mitmproxy(从WiFi设置设置设备的代理(可能像您一样) 在设备上打开浏览器,然后转到: http://mitm.it 下载并安装证书 将以下内容添加到您的应用程序的AndroidManifest.xml:
2 2024-02-01
编程技术问答社区
窥探安卓应用以找到API URL
我很好奇我如何弄清API URL Android应用程序(我已安装的任何应用程序),如果它对某些在线服务器进行API调用(例如RESTFUL服务).我认为我必须在设备上捕获数据包,并可能在Wireshark中分析它们或其他东西以找到URL?我在Java/Android开发方面都有能力,但是在任何类型的网络分析业务方面都丢失了一些. 解决方案 您可以在 wireshark 的帮助下完成此操作.我在这里列出步骤 安装 Wireshark 在您的计算机上 现在,我们必须创建Android虚拟设备(AVD),因此我们将从官方网站下载Android SDK. Android SDK配备模拟器进行测试 设置Android SDK后,创建一个Android虚拟设备(AVD),我们将安装应用程序 启动该虚拟设备.您可以使用命令行开始(emulator @) 使用ADB命令创建虚拟设备安装应用程序后adb install app_file_name.apk 现在
0 2024-01-28
编程技术问答社区
带有VpnService的安卓防火墙
我正在尝试使用BS项目的VPNService实施一个简单的防火墙.我选择VPNService,因为它将在非根系设备上使用.它将记录连接并让您过滤连接. (基于IP) 有一个应用程序这样做. Google Play App Store 我进行了一些研究,发现VPNService创建了一个TUN界面.而已. (无VPN实现仅是隧道)它使您可以对此接口给予地址并添加路由.它返回文件描述符.您可以读取传出软件包并编写传入软件包. 我创建了一个VPNService派生的类,然后开始服务.我可以使用VPNService.builder类配置tun0.当我查看mobiwol's与adb shell netcfg连接时,它会使用10.2.3.4/32地址创建tun0接口.它将所有软件包的路由到该专用网络并将其发送到Internet.我正在尝试一样.创建了一个使用10.0.0.2/32地址的接口.添加了使用AddRoute函数的路由. 0.0.0.0/0,据我所知,我可以从所有网络
4 2024-01-28
编程技术问答社区
阅读数据包信息(基于图片)
这是捕获的数据包的图像(我没有完整的图像,只有此片段).我知道0x4500表示IP版本是IPv4.但是,我如何指出源地址和目的地地址是什么?是否有一种简单的方法可以查看和确定哪个? 解决方案 对我的"油漆"以鼠标技能表示歉意.总体想法是这个. 您采用标题格式并通过字节匹配字节. 要找到协议编号,需要读取适当的注册表.对于IP,此注册表为
0 2023-12-10
编程技术问答社区
我怎样才能确定Wireshark中的哪个数据包与我通过Postman发送的数据包相对应?
我正在尝试弄清为什么从我的手持设备发送的rest呼叫(Windows CE/CAMCACT框架)没有将其送入我的服务器应用程序(常规,完整的.NET应用程序在我的PC上运行). 连接了手持设备和PC - 我知道,由于我可以在PC的Windows Explorer中看到手持设备,因此Windows Mobile Device Center验证两者之间的连接有效,等等. . 我通过Postman通过相同的REST调用在PC上运行的服务器应用程序的断点,即: http://192.168.125.50:21609/api/inventory/sendXML/duckbill/platypus/poisontoe ...但不是从手持设备调用相同的时. 所以,我想在Wireshark中看到邮递员发送的内容,因此我可以看到尝试从手持设备调用相同的REST方法时要查找的内容. 我在Wireshark中设置了一个过滤器,即" ip.dst == 192.168.125.50"
8 2023-12-10
编程技术问答社区
Pyshark-来自TCP数据包的数据
无论如何是否有使用Pyshark获得TCP数据包的有效载荷? 我试图比较多个TCP流中不同数据包的数据部分,但我找不到一种获取数据包数据的方法. pkt['tcp'].data似乎不存在. 解决方案 如果您使用的是.pcap文件,则一旦您使用 读取文件 cap = pyshark.FileCapture('vox.pcap') 说,您想阅读第二个数据包的数据,并且确定存在这样的字段,请尝试: pkt = cap[1] print pkt.tcp.data 要查看可用于pkt.tcp的选项,请使用: dir(pkt.tcp) 它将返回pkt.tcp 的所有可用选项 其他解决方案 使用Pyshark 0.3.7.11与Python 3.6和 假设您已经加载了捕获文件,则可以使用以下方式获得TCP有效载荷: p = capfile[0] # or any packet you know has a tcp layer payload = p
32 2023-12-10
编程技术问答社区
如何使用tcpdump过滤MAC地址?
我在DD-WRT路由器上运行TCPDUMP,以便从手机捕获上行链路数据.我只想听一些MAC地址.为此,我尝试使用类似于Wireshark的语法运行命令: tcpdump -i prism0 ether src[0:3] 5c:95:ae -s0 -w | nc 192.168.1.147 31337 以便我可以收听所有具有初始Mac地址的设备5c:95:ae. 问题是语法是错误的,我想知道你们中有人是否知道正确的语法来获得我想要的. 解决方案 使用man pcap-filter我找到了这个解决方案: tcpdump "ether[6:2] == 0x5c95 and ether[8:1] == 0xae"
6 2023-12-10
编程技术问答社区
如何过滤wireshark,只看到从我的电脑发送/接收的dns查询?
我是Wireshark的新手,并尝试编写简单的查询.要查看仅从我的计算机发送或我的计算机收到的DNS查询,我尝试了以下内容: dns and ip.addr==159.25.78.7 其中159.25.78.7是我的IP地址.看来当我查看过滤器结果时,我做到了,但我想确定这一点.该过滤器真的做我想找出的事情吗?我有点怀疑,因为在过滤器结果中,我也只看到1个其他结果,其协议是ICMP,其信息显示"目的地无法到达(端口无法到达)". 任何人可以帮我吗? 谢谢 解决方案 我会通过数据包捕获,看看是否有任何记录,我知道我应该看到过滤器是否正常工作并缓解任何疑问. 也就是说,请尝试以下过滤器,看看您是否获得了您认为应该得到的条目: dns and (ip.dst==159.25.78.7 or ip.src==159.57.78.7) 此过滤器将仅显示159.57.78.7或159.25.78.7的DNS流量. 其他解决方案 而不是使用Disp
4 2023-12-10
编程技术问答社区
如何在wireshark中只导出可打印的文本(或任何其他数据包属性)?
长话短说 - 我正在使用Wireshark捕获从供应商工具到Oracle数据库的SQL.它已经具有用于TNS协议的解码器(这很棒),我可以通过 访问SQL的文本 Right Click->Copy->Bytes(Printable Text Only). 问题在于,有大量数据包,并且对每个数据包进行右键单击可能需要很长时间.我想知道是否有任何方法可以从Wireshark出口"仅可打印文本".理想情况下,我想拥有一个带有语句的文本文件. 任何帮助都将不胜感激. 解决方案 我不知道如何使用TNS进行操作.但是您可以使用TSHARK进行类似的操作,例如查看HTTP请求. tshark -T fields -e http.request.uri 因此,如果您可以查看TNS解码器中的选项,则应该可以抓住该字段并将输出重定向到文件. 其他解决方案 最终发现了这样做.首先,使用TSHARK捕获TNS数据包: tshark -R tcp.port==15
6 2023-12-10
编程技术问答社区
分析蓝牙低能量流量
在尝试研究BLE时,我想知道是否可以通过Wireshark和Snort等工具来分析它?我遇到了一个名称为" Ubertooth"的名称,但这是一个USB设备,需要购买,以便我们在BLE框架上进行DPI,对吗?是否可以在Wireshark上捕获和分析BLE框架? 解决方案 是的,可以使用Wireshark分析BLE数据包,但是您需要其他硬件.嗅探连接需要在蓝牙芯片组内实现的基带层的支持.计算机内部芯片组的软件不支持嗅探,因此您需要另一个可以控制的软件. 我使用如果您在Windows上,您只需使用 编辑2018-10 :Nordic在Beta中发布了Mac和Linux应用程序以支持其嗅探器,因此本文的其余部分不再需要.您可以下载新工具这里. 然后,一旦一切正常工作,并且您正在将包装包到Wireshark,则可以将所有令人敬畏的Wireshark内置过滤器用于蓝牙和ble: btatt , btle P> 原始帖子 如果像我一样,您在Mac上,您需要: 向上.
6 2023-12-10
编程技术问答社区
Wireshark localhost流量采集
我在C上写了一个简单的服务器应用程序,该应用程序在Localhost上运行.如何使用Wireshark捕获本地主机流量? 解决方案 如果您使用的是Windows ,则不可能 - 请阅读下面.您可以使用计算机的本地地址,然后可以捕获东西.参见 capturesetup/loopback . 摘要:您可以在 linux上的回回接口,on 包括Mac OS X在内的各种BSD,以及 在数字/tru64 unix上,您可能会 能够在irix和aix上做到这一点,但是 您肯定不能这样做 Solaris,HP-UX ... . 尽管该页面提到仅使用Wireshark在Windows上不可能,但实际上可以使用 编辑:大约3年后,此答案不再完全正确.链接页面包含指令用于捕获环回接口. 其他解决方案 出于某种原因,以前的答案在我的情况下都没有奏效,因此我会发布一些能够解决问题的东西.有一个小珠宝称为 rawcap 可以捕获Windows上的Localhost流量.优点:
2 2023-12-10
编程技术问答社区
安卓VpnService, 数据包转发
我正在创建基于ToyVPN的应用程序,以捕获TCP/UDP数据包. 在临时数据包中进行外向数据包后,我想将它们转发到原始目的地.我已经设法从标题中获取目标IP和端口,但是我不知道如何与远程服务器进行通信,然后将响应写回源.我认为这是可能的,因为有此.这是我第一次尝试: private void runVpnConnection() throws Exception { configure(); FileInputStream in = new FileInputStream(mInterface.getFileDescriptor()); FileOutputStream out = new FileOutputStream( mInterface.getFileDescriptor()); // Allocate the buffer for a single packet. ByteBuffer packet = ByteBuffer.allocate(32
10 2023-11-25
编程技术问答社区
如何阻止IDM抓取视频/音频
每次视频/音频流启动 Internet下载Manager(IDM)页面上的内容,允许您下载该多媒体内容. 我认为不可能防止IDM抓住视频/音频,但是有没有办法愚弄IDM来获得错误的视频,或者使IDM很难猜测哪个是真正的视频/音频播放? 编辑: 实际上,我的问题是从服务器侧观点而不是运行IDM的客户端.所以我想这里的误解是我的错.这里有很多好的答案,但不是我正在寻找的答案 解决方案 您需要打开" options->常规" IDM对话框,然后按"浏览器中的自定义IDM下载面板". 然后启用"不要自动从Web播放器下载"选项(图像上的箭头1),然后按" OK"(图像上的箭头2). 来源: html 其他解决方案 您可以防止IDM使用两种方式启动下载 第一种方法是指定IDM应自动握住的文件类型,因此您可以排除某些文件类型,例如" MP3"或" MP4". 要执行该配置,您必须单击IDM主GUI中的"下载"菜单,然后选择"选项",将出现一个新的小窗口,
10 2023-11-18
编程技术问答社区
写一个http嗅探器
我想编写一个程序来提取系统(IP地址)通过数据包捕获访问的网站的URL./ip/tcp-udp)..(有时将这样的程序称为HTTP嗅探器,我不应该使用任何可用工具).作为初学者,我现在刚刚完成了这个基本的嗅探程序: sniffex.c .任何人都可以告诉我我应该继续哪个方向. 解决方案 注意:在下面的信息中,假设GET还包括POST和其他HTTP方法. 肯定会比查看一个数据包要多得多,但是如果您捕获整个流,则应该能够从发送的HTTP标题中获得. 如果提供的话,请尝试查看主机标头,以及GET实际要求的内容. GET可以是完整的URL,也可以是服务器上的文件名. 还要注意,这与从IP地址获取域名无关.如果需要域名,则必须研究数据. 我的机器上的快速示例,来自Wireshark: GET http://www.google.ca HTTP/1.1 Host: www.google.ca {other headers follow} 另一个示例,不是来自
0 2023-11-09
编程技术问答社区
听取UDP数据包的Python原始套接字;只收到一半的数据包
我试图在Python中创建 RAW 套接字,该套接字仅倾听UDP数据包: import socket s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP) s.bind(('0.0.0.0', 1337)) while True: print s.recvfrom(65535) 这需要作为root运行,并在端口1337上创建一个RAW套接字,该端口会倾听UDP数据包,并在收到时会打印它们;那里没有问题. 现在让我们进行一些客户来测试这是否有效: import socket c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) c.connect(('127.0.0.1', 1337)) c.send('message 1') c.send('message 2') c.send('message 3') c.send('
4 2023-11-02
编程技术问答社区
使用多线程时,Scapy 无法嗅探数据包
我会尝试以简化的示例来证明我的问题. 以下是一个非常简单的(单线螺纹)sniffer(ICMP): from scapy.all import * m_iface = "wlan0" m_dst = "192.168.0.1" def print_summary(pkt): print pkt.summary() def plain_sniff(): sniff(iface = m_iface, count = 10, filter = "icmp and src {0}".format(m_dst), prn = print_summary) 这个嗅觉效果很好,我得到了输出: WARNING: No route found for IPv6 destination :: (no default route?) Ether / IP / ICMP 192.168.0.1 > 192.168.0.9 echo-reply 0 / Raw Ether /
10 2023-10-20
编程技术问答社区