Entries for Wireshark

¿Cómo utilizar TCP_NODELAY?

written by uve

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:

  1. mqtt_connect
  2. mqtt_subscribe
  3. mqtt_unsubscribe
  4. 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í?

Full entry >>

MQTT dissector for Wireshark

written by uve

15 March 2012

Acabo de terminar una primera versión del script que parsea MQTT para mostrar la información sobre este protocolo en Wireshark.

Lo he dejado colgado de Github, por si alguien está interesado en el tema.

Full entry >>

Lanzar un script Lua con Wireshark

written by uve

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.

Full entry >>

Habilitar scripts Lua en Wireshark como root

written by uve

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

Full entry >>

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é.