Sockets - A Packet Snooper With A QT4 GUI (Req's libLQ-qt/mc2 dload) Part 2
Posted 01-19-2013 at 06:58 AM by rainbowsally
Updated 08-06-2014 at 07:54 AM by rainbowsally (an afterthought)
Updated 08-06-2014 at 07:54 AM by rainbowsally (an afterthought)
Tags c++, compiling, computer mad science, qt4
Continuing from here.
http://www.linuxquestions.org/questi...-part-1-35273/
[screenshot]
http://rainbowsally.org/rainbowsally...et-snooper.png
Note: Corrected commandline for launching the server Jan 20, 2013 -rs
An afterthought:
While poking around in this stuff I found this warning in the linux/if_ether.h header.
And that is the 'type' flag we selected.
If you find your snoopers are overwhelmed, try some of the other 'types' listed in /usr/include/linux/if_ether.h.
I have not had a problem with it, but you other Computer Mad Scientists might.
GOOD LUCK! :-)
An after-after thought... Boy this socket stuff is a mess.
The little utilities in this self extractor have a couple of bugs. They don't appear to affect the function but they certainly affect the status display when server_v4 connects.
One problem is that the port number needs to be RE-reversed with 'ntohs(value) for the display. But that's not enough, because something is clobbering the port number in the addr struct.
You are welcome to see if the original files at the linked web page do you any better, but my guess is they'll be significantly worse. ;-)
Debugging that stuff is left as an exercise for the student. ;-) That's you (this time). But here's your secret decoder ring for the htons() ntohs() pton() stuff. P means Presentation, such as the string "127.0.0.1". H means host and N means network, and 's' stands for short so that htons(number) will change the byte order from host to net compatible if it's the wrong endian-ness.
I'm currently reworking the server to be a bit more netcat-like and to run in a gui and this bug is not present. For starters you might want to make those structs 'static' and see what, if anything changes.
Good luck with your "good luck" here.
Continuing with the original post.....
--------------------
Here's how to generate all the files and the executables. And I'm sorry but this WILL absolutely require the libLQ-qt download, available here at the blog -- at least for the gui version of the app shown in the screenshot.
[Note: The makefiles are set up to include debug info, so these can be stepped through in a good debugger.]
file: snooper-gui-files.sfxz
purpose: utility (executable) to generate all files needed to build the app
Note: if you need something to toss packets around, use
Those two apps are included in the fileset and do not have libLQ dependecies.
Yet. ;-)
- The Computer Mad Science Team
:-)
http://www.linuxquestions.org/questi...-part-1-35273/
[screenshot]
http://rainbowsally.org/rainbowsally...et-snooper.png
Note: Corrected commandline for launching the server Jan 20, 2013 -rs
An afterthought:
While poking around in this stuff I found this warning in the linux/if_ether.h header.
Code:
#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */
If you find your snoopers are overwhelmed, try some of the other 'types' listed in /usr/include/linux/if_ether.h.
I have not had a problem with it, but you other Computer Mad Scientists might.
GOOD LUCK! :-)
An after-after thought... Boy this socket stuff is a mess.
The little utilities in this self extractor have a couple of bugs. They don't appear to affect the function but they certainly affect the status display when server_v4 connects.
One problem is that the port number needs to be RE-reversed with 'ntohs(value) for the display. But that's not enough, because something is clobbering the port number in the addr struct.
You are welcome to see if the original files at the linked web page do you any better, but my guess is they'll be significantly worse. ;-)
Debugging that stuff is left as an exercise for the student. ;-) That's you (this time). But here's your secret decoder ring for the htons() ntohs() pton() stuff. P means Presentation, such as the string "127.0.0.1". H means host and N means network, and 's' stands for short so that htons(number) will change the byte order from host to net compatible if it's the wrong endian-ness.
I'm currently reworking the server to be a bit more netcat-like and to run in a gui and this bug is not present. For starters you might want to make those structs 'static' and see what, if anything changes.
Good luck with your "good luck" here.
Continuing with the original post.....
--------------------
Here's how to generate all the files and the executables. And I'm sorry but this WILL absolutely require the libLQ-qt download, available here at the blog -- at least for the gui version of the app shown in the screenshot.
[Note: The makefiles are set up to include debug info, so these can be stepped through in a good debugger.]
Code:
./snooper-gui-files.sfxz # extract the files # cd into snooper-gui-files and... make ui # to generate the ui stuff make # to create snooper (old terminal version) and snooper-gui (qt4 version)
file: snooper-gui-files.sfxz
purpose: utility (executable) to generate all files needed to build the app
Code:
#!/bin/sh # base64 self extractor # file: snooper-gui-files filename=snooper-gui-files # don't allow user to click on the file if ! tty >/dev/null; then xmessage -center " $(basename $0) must be run in a terminal " exit fi # create and/or clear out tmp dir mkdir -p $HOME/tmp/sfxz rm -rf $HOME/tmp/sfxz/* base64 -d << _BEOF >$HOME/tmp/sfxz/$filename.xz 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 _BEOF (cd $HOME/tmp/sfxz && tar -xaf snooper-gui-files.xz) rm -f $HOME/tmp/sfxz/snooper-gui-files.xz cat << _BEOF > $HOME/tmp/sfxz/post-extract #!/bin/sh is_yes() # returns OK if first char is Y or y { local key=`echo $1 | cut -b1 | sed 's/y/Y/; /Y/!d'` [ "$key" == 'Y' ] && return 0 # true return 1 # false } if [ -e snooper-gui-files ]; then printf " Overwrite existing file(s)? [N/y]:" read key if ! is_yes $key ;then echo "Aborting.." exit 0 fi fi mv $HOME/tmp/sfxz/snooper-gui-files . _BEOF sh $HOME/tmp/sfxz/post-extract rm -rf $HOME/tmp/sfxz/* rmdir $HOME/tmp/sfxz 2>/dev/null || true rmdir $HOME/tmp 2>/dev/null || true
Code:
# corrected commandline below -rs xterm -e bash -exec server_v4 & # with the ampersand and client_v4 # and start typing in some text
Yet. ;-)
- The Computer Mad Science Team
:-)
Total Comments 0