Leia isto em outros idiomas: English, Español, Deutsch, Français.
Packet Sender é um utilitário de código aberto que permite o envio e recebimento de pacotes TCP, UDP e SSL (TCP criptografado), bem como solicitações HTTP/HTTPS e geração de painel. A filial principal suporta oficialmente Windows, Mac e Desktop Linux (com Qt). Outros locais podem recompilar e redistribuir o Packet Sender. O Packet Sender é gratuito e licenciado pela GPL v2 ou posterior. Pode ser usado tanto para uso comercial quanto pessoal. Se você achar o aplicativo útil, considere doar/patrocinar para que o desenvolvimento possa continuar.
Patrocinadores
GUI
Gerador de tráfego intenso (GUI)
Rede
Transferências
Apoiar
Calculadora de sub-rede IPv4
Wake-On-LAN / Pacote Mágico
Nuvem de remetente de pacotes
Modo portátil
Macros e respostas inteligentes
TCP e SSL persistentes
Solicitações HTTP/HTTPS
Gerador de Painel
Interface de linha de comando
Gerador de tráfego intenso (CLI)
Construindo remetente de pacotes
O Packet Sender gostaria de agradecer aos seguintes patrocinadores.
IWL é uma empresa da Califórnia que cria produtos de redes de computadores.
NagleCode é uma editora de software e estúdio de desenvolvimento.
A Eletiope instala iluminação, audiovisuais e salas imersivas para exposições e museus, e para showrooms corporativos.
Gostaria que seu nome/logotipo fosse listado aqui?
NOTA: Tente (temporariamente) desabilitar seu firewall se tiver problemas no Windows.
As versões oficiais do Packet Sender podem ser baixadas em PacketSender.com. Alguns lugares redistribuem o Packet Sender.
O Packet Sender é idêntico para todas as versões desktop. A única diferença é o tema que combina com o sistema operacional.
Os campos no topo podem ser navegados usando CTRL+1, CTRL+2, etc, até CTRL+8 (botão enviar). No Mac, a tecla de atalho é Command.
As teclas de atalho e campos são:
Algumas notas:
Por padrão, o Packet Sender é iniciado com servidores UDP, TCP e SSL habilitados em portas aleatórias (mostradas como botões no canto inferior direito). Você pode vincular a qualquer número de portas (se o sistema operacional permitir), usando números de porta separados por vírgula. Por exemplo, 0, 1000, 2000
serão vinculados a "aleatório" e às portas 1000, 2000.
O botão UDP agora mostra 3 portas vinculadas. 1 deles é aleatório.
A outra configuração é responder a todas as solicitações com uma resposta. Você também pode fazer com que essa solicitação seja uma macro. Existe um campo para digitar a resposta (ou carregar um pacote salvo).
Por padrão, o Packet Sender se vincula a qualquer endereço IPv4. Nesta área das configurações, você pode vinculá-lo a qualquer IPv6 ou a um endereço IP específico.
A vinculação a um endereço específico é muito útil quando há vários NICs e você deseja forçar a comunicação (como pacotes de transmissão) para um endereço específico.
Alguns protocolos esperam que o servidor envie dados antes do cliente enviar (como muitos serviços telnet). Este fluxo de trabalho pode ser habilitado com "Receber antes de enviar".
Se você tiver um dispositivo lento (como um servidor incorporado com um processador fraco), você pode ativar o "atraso de 500 ms após a conexão". Isso permitirá que o servidor lento inicie seu manipulador.
Os servidores integrados do Packet Sender são configurados para suportar IPv4 ou IPv6, mas não ambos ao mesmo tempo. Para clientes, a GUI e a CLI do Packet Sender alternarão perfeitamente entre os dois modos no momento do envio (o ID do escopo pode ser necessário para IPv6). Clique no botão IPv4/IPv6 no canto inferior direito para alternar entre os dois.
Dentro das configurações, você também pode forçar os servidores do Packet Sender a se vincularem a um endereço IP personalizado. Isto pode ser muito útil para sistemas com múltiplas NICs ou configurações IP complicadas. O Packet Sender irá desencadear um erro se for solicitado a vincular a um endereço que não existe.
O Packet Sender possui uma calculadora de sub-rede integrada. Está no menu Ferramentas.
Wake-On-LAN (ou WOL) é um protocolo que diz aos computadores para acordarem. É acionado por um pacote de transmissão com dados especiais baseados no endereço MAC do alvo. Para mais informações, dê uma olhada na Wikipédia.
O Packet Sender possui um gerador WOL integrado. Está no menu Ferramentas.
Preencha as opções e a GUI principal será preenchida com os dados corretos para o formato WOL.
Existem também opções CLI para ajudar a gerar e enviar pacotes WOL
packetsender --wol f8:23:66:30:e5:30
Sending broadcast Wake-On-LAN to target: F8:23:66:30:E5:30 on port 7
UDP (60360)://255.255.255.255:7 ff ff ff ff ff ff f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30 f8 23 66 30 e5 30
O Packet Sender suporta o estabelecimento de conexões criptografadas através de SSL. Isso é suportado na GUI e na linha de comando.
O Packet Sender agrupa OpenSSL para uso no Windows. No Mac e no Linux, o Packet Sender usará as bibliotecas SSL nativas.
Notas SSL:
O Packet Sender inclui um certificado interno "Snake Oil" para uso como servidor para Windows. O certificado e a chave estão no mesmo lugar que o pacote e as configurações.
Nota: Substituir os locais dos certificados em Configurações também substitui o certificado de óleo de cobra.
Se houver um erro de SSL, o Packet Sender irá enviá-lo para o log de tráfego. Se a configuração continuar mesmo assim (padrão), ela continuará a negociar a criptografia. Caso contrário, a conexão termina com falha na conexão.
O suporte multicast do Packet Sender é acionado pela tentativa de envio para um endereço multicast IPv4 ou a partir do submenu multicast. O recurso é atualmente experimental e apresenta esses problemas conhecidos.
Não há suporte multicast IPv6, embora esteja no roteiro. Patrocinadores que desejam suporte multicast IPv6 podem entrar em contato comigo.
Pois quando o sistema de envio normal não é suficiente, você pode martelar um IP de destino com pacotes para ver se o seu dispositivo aguenta. Isso pode ser encontrado na barra de ferramentas da GUI em Ferramentas -> Gerador de tráfego intenso
Observe que este recurso é experimental e as métricas exibidas não foram totalmente testadas. Para um teste mais preciso, você pode consultar a versão CLI desta ferramenta.
Conjuntos de pacotes podem ser salvos/recuperados/compartilhados rapidamente usando o serviço gratuito Packet Sender Cloud. A nuvem também pode ser usada para exibir e distribuir publicamente seus pacotes (por meio de uma URL) para colaboração, tutoriais, usuários finais, etc. O Packet Sender pode importar conjuntos de pacotes públicos com URL pública.
Existem vários motivos para fazer isso:
Se você estiver publicando uma API de rede, manter uma página de nuvem pública é significativamente mais fácil do que detalhar dolorosamente (IP, porta, tipo, etc.) os pacotes para seus usuários. Além disso, atualizar essa página é fácil.
Mais informações sobre isso podem ser encontradas em https://cloud.packetsender.com/help
O Packet Sender possui um modo "portátil". Na inicialização, ele procurará portablemode.txt
e preencherá todos os arquivos de configuração ausentes nesse diretório de tempo de execução. Esses arquivos são packets.ini
, ps_settings.ini
, ps.key
e ps.pem
. Você também pode ter alguns arquivos portáteis e outros em seu local padrão, removendo o portablemode.txt.
Se você não precisar da GUI, poderá remover esses DDLs
Observe que DLLs com caracteres +
em seus nomes podem causar problemas com a cópia da linha de comando do Windows se você não os colocar entre "
.
Se você não precisar de SSL, poderá remover esses DDLs
O diretório de tempo de execução dos usuários do Windows é o mesmo local que o .exe.
Para usuários MAC, este diretório de tempo de execução está em PacketSender.app/Contents/MacOS
. Se arquivos INI forem encontrados, eles serão usados em vez de %APPDATA%
ou Library/Application Support
.
O Packet Sender suporta até 5 respostas inteligentes.
Para habilitar este recurso, vá para Arquivo -> Configurações na barra de ferramentas da GUI. Vá para a guia Respostas inteligentes e ative a caixa de seleção Enviar uma resposta inteligente .
O Packet Sender oferece suporte a estas macros ao enviar respostas:
O Packet Sender suporta conexões TCP e SSL persistentes por meio de uma janela GUI separada. É habilitado por uma caixa de seleção na janela principal ou através da janela Configurações.
Conexões persistentes não são suportadas por meio da linha de comando.
O Packet Sender suporta o envio de solicitações POST/GET via HTTP e HTTPS. A lista suspensa de protocolo inclui as seguintes opções: HTTP GET, HTTP POST, HTTPS GET, HTTPS POST. Ao selecionar HTTP(S), os campos de entrada serão atualizados para: Nome, Solicitação, Endereço, Dados (quando POST for selecionado), botão Gerar Dados (quando POST for selecionado), Carregar Arquivo (quando POST for selecionado).
Você também pode colar um URL completo no campo Solicitação e o Packet Sender analisará e preencherá automaticamente os outros campos.
O Packet Sender suporta a geração de painéis de controle. Os painéis consistem em botões com scripts (pacotes) atribuídos a eles. Clicar no botão executará o(s) pacote(s) referenciado(s) nesse botão.
Os painéis podem ser criados de duas maneiras:
O Packet Sender suporta inicialização no modo somente painel com o painel inicial usando a opção de linha de comando --starterpanel
Para começar a criar scripts nos botões do seu painel, você precisará abrir um painel e ir para a tela de edição. Assim que um projeto de painel for aberto, marque o botão no canto inferior direito. Se este botão disser "Visualização", você estará na tela Visualização. Clique no botão para mover o painel para a tela de edição.
Uma vez na tela de edição, botões e scripts podem ser adicionados ao painel.
Os scripts de botão conterão o nome do pacote a ser enviado.
Vários pacotes podem ser definidos em um botão adicionando cada nome em uma nova linha.
O Panel Generator suporta a adição de um atraso entre vários pacotes adicionando "atraso: # de segundos " entre os pacotes.
O Panel Generator suporta a adição de um script para carregar um novo painel adicionando "panel: panel id # ". Depois que todos os scripts anteriores do botão forem executados, o Painel fará a transição para o próximo painel.
O Panel Generator suporta a adição de botões vinculados a arquivos ou URLs armazenados localmente. Botões de arquivo/URL podem ser adicionados na tela de edição clicando no + no canto inferior direito.
Depois que o arquivo ou URL for copiado, você será solicitado a inserir um nome para o botão. Os botões serão preenchidos na parte inferior do painel.
Enquanto estiver na tela de edição, clicar nesses botões permitirá que você edite o link do arquivo/URL e o nome do botão. Você também pode excluir o botão clicando no X no pop-up.
Quando estiver na tela Visualização, clicar nesses botões iniciará a URL no navegador padrão ou abrirá o arquivo (com o programa padrão para o tipo de arquivo).
Enquanto estiver na tela de Edição de um Painel, haverá uma barra de ferramentas com os menus Arquivo, Exportar, Configurações, Ajuda. Você pode salvar, exportar, importar, carregar projetos de painel e editar o projeto de painel atual nesta barra de ferramentas.
Em Configurações, você pode fazer o seguinte:
Por enquanto, o DTLS só é compatível com a GUI do Windows. Outros sistemas operacionais podem habilitar o DTLS compilando a partir do código-fonte usando Qt6.
Este repositório contém um recurso de protocolo DTLS (Datagram Transport Layer Security). Este recurso adicionou uma interface gráfica para configurar e gerenciar conexões DTLS, incluindo verificação de servidor e opções de persistência de sessão.
Farejando por Wireshark:
O Packet Sender pode ser usado na linha de comando do seu computador.
Para Windows, use a extensão .com ( packetsender.com
) para usar a interface de linha de comando. Opcionalmente, você também pode usar packetsender
sem extensão. Usar a extensão .exe iniciará a GUI.
Para Linux, o sistema de linha de comando no Packet Sender segue o mesmo padrão de outros utilitários Linux. Tem um nome longo (como --version) e um nome curto (como -v). Essas opções podem ser organizadas em qualquer ordem e o Packet Sender irá analisá-las corretamente. As últimas 3 opções são posicionais e devem aparecer por último. Eles são IP, porta e dados. Estas últimas opções são opcionais se estiver usando um pacote armazenado.
packetsender --help
Usage: C:Program FilesPacketSenderpacketsender.com [options] address port data
Packet Sender is a Network UDP/TCP/SSL/HTTP Test Utility by NagleCode
See https://PacketSender.com/ for more information.
Options:
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
-v, --version Displays version information.
-q, --quiet Quiet mode. Only output received data.
-x, --hex Parse data-to-send as hex (default for
TCP/UDP/SSL).
-a, --ascii Parse data-to-send as mixed-ascii (default for http
and GUI).
-A, --ASCII Parse data-to-send as pure ascii (no xx
translation).
-l, --listen Listen instead of send. Use bind options to specify
port/IP. Otherwise, dynamic/All.
-r, --response <ascii> Server mode response data in mixed-ascii. Macro
supported.
-w, --wait <ms> Wait up to <milliseconds> for a response after
sending. Zero means do not wait (Default).
-f, --file <path> Send contents of specified path. Max 10 MiB for
UDP, 100 MiB for TCP/SSL.
-b, --bind <port> Bind port. Default is 0 (dynamic).
-6, --ipv6 Force IPv6. Same as -B "::". Default is IP:Any.
-4, --ipv4 Force IPv4. Same as -B "0.0.0.0". Default is
IP:Any.
-B, --bindip <IP> Bind custom IP. Default is IP:Any.
-t, --tcp Send TCP (default).
-s, --ssl Send SSL and ignore errors.
-S, --SSL Send SSL and stop for errors.
-u, --udp Send UDP.
--http <http> Send HTTP. Allowed values are GET (default) and
POST
-n, --name <name> Send previously saved packet named <name>. Other
options overrides saved packet parameters.
--wol <mac> Send Wake-On-LAN / Magic Packet to <mac> and
(optional) <port>.
--bps <bps> Intense traffic. Calculate rate based on value of
bits per second.
--num <number> Intense traffic. Number of packets to send. Default
unlimited.
--rate <Hertz> Intense traffic. Rate. Ignored in bps option.
--usdelay <microseconds> Intense traffic. Resend delay. Used if rate is 0.
Ignored in bps option.
--max Intense traffic. Run as fast as possible.
Arguments:
address Destination address/URL. Optional for saved packet.
port Destination port/POST data. Optional for saved
packet.
data Data to send. Optional for saved packet.
A CLI segue o mesmo formato entre Windows, Linux e MAC.
O formato é: packetsender [options] address port data
packetsender -taw 500 mirrors.xmission.com 21 "USER anonymousrnPASS [email protected]"
TCP (65505)://mirrors.xmission.com:21 55 53 45 52 20 61 6e 6f 6e 79 6d 6f 75 73 0d 0a 50 41 53 53 20 63 68 72 6f 6d 65 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 0d 0a
Response Time:5:51:37.042 pm
Response HEX:32 32 30 2D 57 65 6C 63 6F 6D 65 20...
Response ASCII:220-Welcome to XMission Internet...
Use as opções de ligação existentes para configurar o servidor.
Vinculação à porta dinâmica usando TCP
packetsender -l
TCP Server started on 0.0.0.0:52567
Use ctrl+c to exit server.
From: 127.0.0.1, Port:52568
Response Time:2024-06-04 19:01:53.198
Response HEX:48 65 6C 6C 6F
Response ASCII:Hello
From: 127.0.0.1, Port:52569
Response Time:2024-06-04 19:02:24.063
Response HEX:57 6F 72 6C 64
Response ASCII:World
Vinculando à porta 8080 usando UDP
packetsender -l -u -b 8080
UDP Server started on 0.0.0.0:8080
Use ctrl+c to exit server.
From: ::ffff:127.0.0.1, Port:49500
Response Time:2024-06-04 19:04:28.890
Response HEX:48 65 6C 6C 6F 20 55 44 50 20 50 61 63 6B 65 74
Response ASCII:Hello UDP Packet
Vinculação à porta 8080 usando UDP com resposta em tempo atual
packetsender -l -u -b 8080 -r "{{TIME}}"
Loading response packet.
UDP Server started on 0.0.0.0:8080
Use ctrl+c to exit.
From: ::ffff:127.0.0.1, Port:59594
Response Time:2024-06-05 20:48:18.180
Response HEX:68 65 6C 6C 6F 20 70 61 63 6B 65 74 20 73 65 6E 64 65 72
Response ASCII:hello packet sender
From: You (Response), Port:59594
Response Time:2024-06-05 20:48:18.182
Response HEX:30 38 3a 34 38 3a 31 38 20 70 6d
Response ASCII:08:48:18 pm
Vinculação ao IP 192.168.86.26, porta 54321 usando SSL
packetsender -l -s -B 192.168.86.26 -b 54321
Binding to custom IP 192.168.86.26
Listening for SSL packets in server mode.
SSL Server started on 192.168.86.26:54321
Use ctrl+c to exit server.
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Encrypted with AESGCM(256)
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Authenticated with RSA
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Peer cert issued by
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.726
Error/Info:Our Cert issued by SnakeOil
From: 192.168.86.26, Port:52588
Response Time:2024-06-04 19:11:30.747
Response HEX:43 6F 6F 6C 20 53 53 4C
Response ASCII:Cool SSL
A linha de comando do Packet Sender pode vincular-se a portas personalizadas para forçar modos IPv4/6 ou múltiplas NICs usando a opção -B.
packetsender -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hellor"
packetsender -taw 3000 192.168.0.201 5005 "Hellor"
packetsender -B 192.168.0.200 -taw 3000 192.168.0.201 5005 "Hellor"
packetsender -B fe80::a437:399a:3091:266a%ethernet_32769 -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hellor"
packetsender -B fe80::a437:399a:3091:266a -taw 3000 fe80::c07b:d517:e339:5a08 5005 "Hellor"
A linha de comando tem a opção de ignorar ou abandonar erros de SSL. O padrão é ignorar.
packetsender -saw 500 expired.packetsender.com 443 "GET / HTTP/1.0rnrn"
SSL Error: The certificate has expired
SSL (54202)://expired.packetsender.com:443 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a 0d 0a
Cipher: Encrypted with AES(128)
Response Time:3:24:55.695 pm
Response HEX:48 54 54 50 2f 31 2e 31 20 34 32 31 20 0d 0a 53 65 72 76 65 72 3a 20 6e 67 69 6e 78 2f 31 2e 31 30 2e 30 20 28 55 62 75 6e 74 75 29 0d
Response ASCII:HTTP/1.1 421 rnServer: nginx/1.10.0 (Ubuntu)r
Observe que isso usa os pacotes padrão integrados.
packetsender --name "HTTPS POST Params"
packetsender --http GET "https://httpbin.org/get"
packetsender --http POST "https://httpbin.org/post" "{}"
O comando gerador de tráfego intenso funciona da mesma maneira que a versão GUI, mas é um pouco mais preciso, com mais opções de controle (e mais intensidade!).
Veja abaixo exemplos de como usá-lo. Observe que esses cálculos são de "Melhor Esforço". Funciona bem, mas picos de processador ou vários soluços de rede podem prejudicá-lo. O threading não é em tempo real e não é superinteligente em suas tentativas de compensação.
Nota: Para Windows, use a compilação ".com", então cada exemplo seria packetsender.com
packetsender --rate 20 --name "My Awesome Packet"
packetsender --bps 2000 --name "My Awesome Packet"
packetsender --rate 0 --name "My Awesome Packet"
packetsender --usdelay 2000000 --name "My Awesome Packet"
A única dependência é Qt SDK
As versões para Windows e Mac foram construídas usando Qt 5.12. O Packet Sender suporta Qt 6, mas não suporta cmake.
Aqui está a sequência de comandos para Ubuntu 16.04. Adapte-se à sua plataforma Linux. O Packet Sender não requer bibliotecas adicionais além do Qt SDK padrão. Disseram-me que há problemas de compilação com o estoque do Fedora. Se um assistente do Fedora tiver informações, por favor me avise e adicionarei suas instruções.
Se você estiver se sentindo aventureiro, sinta-se à vontade para construir a partir do branch master. Ele contém a versão estável mais recente. O ramo de desenvolvimento provavelmente deve ser evitado.
sudo apt-get update
sudo apt-get install qt5-default build-essential
wget https://github.com/dannagle/PacketSender/archive/(Version).tar.gz
tar -xzvf (Version).tar.gz
cd PacketSender-(Version)/src
qmake PacketSender.pro
make
Para executar use:
./PacketSender
Se não funcionar, pode ser necessário configurá-lo como executável
chmod a+x PacketSender
Faltando um recurso? Você pode me contratar para adicioná-lo ao Packet Sender.
A licença é GPL v2 ou posterior. Entre em contato comigo se precisar de uma licença diferente. Algumas distribuições do Packet Sender podem usar OpenSSL. O VPAT mais atual pode ser encontrado neste repositório.
Packet Sender foi escrito por Dan Nagle e publicado por © NagleCode, LLC - @NagleCode - PacketSender.com