Entries for Wireshark
¿Cómo utilizar TCP_NODELAY?
2 April 2012
Llevaba cerca de dos días con un problema implementando el subscriptor MQTT. Aún no está hecho el diagrama de flujo ya que de momento estoy probando que las llamadas de la biblioteca funcionan. El escenario es el siguiente:
- mqtt_connect
- mqtt_subscribe
- mqtt_unsubscribe
- mqtt_disconnect
Conectamos el cliente, nos subscribimos a un topic, nos desubscribimos y desconectamos el cliente. Algo que a priori es sencillamente elemental.
Para comprobar que todo esto funciona he hecho uso del script para Wireshark que ya comenté. Pero el caso es que estaba encontrando errores en Wireshark que no eran lógicos. Yo mandaba un paquete de 17bytes y Wireshark decía que el paquete tenía 19bytes. ¿Qué estaba pasando aquí?
MQTT dissector for Wireshark
15 March 2012
Lanzar un script Lua con Wireshark
15 March 2012
Wireshark incluye el parseo de la inmensa mayoría de protocolos de red que existen, pero cómo es evidente, no todos. Estas semanas estoy trabajando con MQTT y para este protocolo hay un soporte muy muy básico.
Para lanzar el script, basta con ejecutar lo siguiente:
$ wireshark -X lua_script:mqtt.lua
donde mqtt.lua es el nombre de mi script.
Habilitar scripts Lua en Wireshark como root
14 March 2012
Ahora mismo estoy trabajando en un script escrito en Lua para parsear información de un protocolo en en Wireshark. Necestio hacer unas pruebas como superusuario, pero por defecto, los scripts están deshabilitados para root.
Para habilitar el soporte a Lua, necesitamos editar el siguiente script:
sudo nano /usr/share/wireshark/init.lua
y comentar la siguiente función:
-- disable potentialy harmful lua functions when running superuser
--if running_superuser then
--local disabled_lib = {}
--setmetatable(disabled_lib,{ __index = function() error("this package has been disabled") end } );
--dofile = function() error("dofile has been disabled") end
--loadfile = function() error("loadfile has been disabled") end
--loadlib = function() error("loadlib has been disabled") end
--require = function() error("require has been disabled") end
--os = disabled_lib
--io = disabled_lib
--file = disabled_lib
--end
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
