Inspiration

Being interested in cybersecurity, I use the app Wireshark to analyze networks a lot, which is a network analyzer software. A big problem for a lot of users, especially beginners, is the non-user friendly GUI of the app. Using Wireshark and any of its features are often confusing for most, like myself when I first started using it. I had to look up tutorials on how to use different features like resolving DNS hostnames, or even starting to capture packets. It's certainly very inconvenient, and also it had some features that could be definitely improved like it's filtering system. I decided to code an app using python that was more user-friendly, had the even better features and abilities, and had in-depth storing and visualizing of packet data.

What it does

It is a app that allows users to capture packets on their networks, allowing for a variety of things like examining for network attacks and vulnerabilities, monitor network traffic, and identify network performance hindering.

How we built it

I used Scapy, which is a python framework for network packet manipulation. I used this along with Tkinter, a python GUI interface, to allow users to sniff network packets, view detailed information, generate graphs based on packet data, and code a functional and user-friendly system. This project was coded 100% in python. only 700 lines of code in 1 file

Challenges we ran into

I had never coded in python prior to this, so it was a bit difficult to try to jump in and build an app not knowing much syntax, but luckily I picked it up pretty quick; I also had no experience at all using scapy, or any packet manipulation tools in general, so I made it a challenge for myself so I could learn app development using python and scapy all in the process to build this app. It was very hard in the beginning learning the basics of building the user interface, and doing simple things like allowing users to open packet files in new windows. I spent a lot of time in the beginning learning all the basics of Tkinter, python's GUI interface, and that was definitely the most challenging part for me.

Accomplishments that we're proud of

I'm very proud of everything I've done through this project, more specifically some milestones that took the longest time to reach like first being able to capture packets and simply display them in a simple text box, and recognizing and displaying information about HTTP and DNS packets.

What we learned

I learned a lot of python syntax as a starter, since I was new to coding in python. I also had never used a packet manipulation tool before, so it was very interesting to see how a tool that wasn't built in an app was used, and how to incorporate it into a GUI.

What's next for BetterSniffer

A lot of more features will becoming, and the goal is to surpass Wireshark in terms of the best network packet sniffer.

Built With

Share this project:

Updates