Nibbles is UDP print listening/filtering/logging utility with ability to generate and send custom ethernet frames. UDP prints are ascii characters sent in UDP packets. This technique is commonly used when generating logs from embedded devices with no screen attached. UDP is a lightweight networking protocol and processing UDP causes only a little overhead thus making it excellent choice for logging protocol. Penalty from small overhead is that UDP does not guarantee delivery - Eg. if for example receiver cannot process packets fast enough, prints are dropped and UDP does not have any resending mechanisms. Thus some packets may get lost. Even if dropping some log lines is usually not as fatal as is dropping some actual data, it is not what developers wish when they have a bug report... This makes it important that log receiver can perform well. This is also why nibbles is written in C to be light and fast.
Nibbles can be used to:
- Logging prints to file
- Displaying prints on console
- filtering displayed print lines based on keystring lists.
- include filters
- exclude filters
- highlight filters
- Ethernet packet crafting and sending
- Storing/Loading crafted packets to text file
- Finding C structures/definitions from header files
- Configuring log file name, port(s) etc to listen from file
After obtaining nibbles compile and (optionally) install it by issuing commands:
sudo make install
in folder where Makefile is located. Note that nibbles needs ncurses library (also form, menu and panel libraries). Typically these are all included in ncurses development library, often called as ncurses-devel. On Fedora you can install ncurses by issuing command
sudo yum install ncurses-devel
Nibbles provides simple help when ran with --help option.
There is man page for nibbles online and included in downloads. You should be able to read page using command
or even without installation by switching into man folder included in packet and typing
Feel free to contact me via email (email@example.com) or just fork the project from github, improve nibbles and send me patch(es). I am open to suggestions and glad when receiving bug fixes. Also if you're up to a challenge, then nibbles would really need log rotation feature... There is even command line switches for size and file amount implemented (because old version of nibbles using fixed ram buffers instead of memory mapped file had this implemented - however that version had performance problems.)