Bonjour à tous,
Alors voila je développe en se moment un sniffer (type wireshark) à des fins pédagogique.
J'utilise le ruby et la bibliothèque "libglade" pour créer l'interface graphique.
Je post dans la section "python" car aucune section "ruby" n'existe, mais ces deux langages restent très proches donc ça ne devrait pas poser de problème sur la forme. (Mais je laisse le soin au modérateurs de déplacer ce post si ça pose vraiment un problème)
Le programme fonctionne en mode console, mais pose quelques problèmes lors du passage en mode graphique.
Code fonctionnel:
[code:1:07c87a50d9]
#!/usr/bin/env ruby
require 'pcaplet'
$network = Pcaplet.new('-s 1500')
$filter = Pcap::Filter.new('tcp and dst port 80', $network.capture)
$network.add_filter($filter)
for p in $network
if $filter =~ p and p.tcp_data =~ /GET(.*)HTTP.*Host:([^\r\n]*)/xm
puts "#{p.src} - http://#{$2.strip}#{$1.strip}"
end
end
[/code:1:07c87a50d9]
J'utilise un widget "textview" pour afficher les packets sniffés:
[code:1:07c87a50d9]
textview.buffer.text = textview.buffer.text + "#{p.src} - http://#{$2.strip}#{$1.strip}\n"
[/code:1:07c87a50d9]
Mais dès le lancement du sniff, le programme plante (la fenêtre pour être précis) et je suis obligé d'arrêter l'analyse des packets dans la console (CTRL + C) pour qu'il ensuite affiche les infos dans le "textview".
J'ai cherché sur le net les causes potentielles d'un tel phénomène sans trouver quelque chose d'exploitable.
Qu'en pensez-vous?
Y'a t'il un moyen de rediriger les outputs de la console (en temps réel) dans un textview (ou autre) comme réalisé dans wireshark?
Je vous remercie par avance
Cordialement
Ghostx_0