All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.5.4 - 2021-12-31
- Add version constraint for Python 3.10 (the use of newer
match - case
statements break compatibility with lower versions) - Install custom traceback handler, which is a bit nicer than the standard one and also has colors 🌠 (let's hope I handled all exception cases though and we won't need it)
- Display error in case of
InvalidFilterException
in the status bar adn then exit - Add cool badges in
README.md
file
- Fix
RuntimeWarning
when using the package withpython -m sniffer
0.5.3 - 2021-12-31
- Add a new reference in
README.md
- Add
-lf/--list-filters
option to display available filters
- Update Sphinx configuration files to reflect the documentation up-to-date
-l/--list-interfaces
option became-li/--list-interfaces
0.5.2 - 2021-12-31
- Add missing docstrings
- Put the text in the side panel into 2 separate panels
- Fixed incomplete docstrings
0.5.1 - 2021-12-30
- Implement
-f/--filter
option with the following filters:ip.src = <ip>
: Matches the source IPip.dst = <ip>
: Matches the destination IPhttp.method = <method>
: Matches only the HTTP requests with the specified method (GET, POST etc.)http.type = <type>
: Matches only the specified types of packets (request
orresponse
)
- Replace or'ed types, i.e.
str | None
, withtyping.Any
because they break compatibility with Python < 3.10 - Sniffing won't be available on Windows because of technical complications (sorry Windows users)
- Fix crash caused by specially crafting packets that contained rich tags, we'll consider this an RCE because it had the ability to alter program's rendering of colors and ultimately, crash it
0.5.0 - 2021-12-30
- Add
-c/--count
option which allow for a fixed number of packets to be captured by the sniffer - Add
-o/--output
option which give the user the possibility to save the output from sniffed packets to a file for later reviewing - Improve the UI by displaying the HTTP packets formatted properly and stylish
- The packets will fit in a panel and only take the required space to be displayed, nothing more, nothing less
- Rename the footer bar from Information to Status
0.4.0 - 2021-12-28
- Counters for total packets and HTTP packets inside the Sniffer Engine
- Make the
run
function async (main is just the caller of therun
function, kind of like a wrapper). This marks the beginning of the performance improvements that the Sniffer will receive. - Integrate the sniffing engine with the rich display, showing packets as they are captured in a nice screen mimicking a GUI
- Capture all traffic and filter for HTTP packets instead of capturing only IP packets, which misses some packets
- Remove Layer 2 class because we are no longer sniffing the data link layer (remember, we are here only for HTTP)
- Fix positional arguments not showing in help menu
0.3.1 - 2021-12-22
- Create the Text User Interface (TUI) containing multiple columns, each one with its own unique purpose
- Create the intro animation (in case you're wondering, it's from Watch Dogs)
- Fix docstrings and Sphinx files (those
.rst
files)
0.3.0 - 2021-12-22
- Create a new class for Layer 7 of OSI Model.
- Add banner in
README.md
file - Create a new exception,
UninterestingPacketException
- Add command-line argument for specifying the desired network interface,
-i/--interface
- Create
decorators.py
file insideutils
package that will contain, you've guessed it: decorators. Also, created the first decorator,require_root
that will exit if the user running the script isn't root - Implement
-l/--list-interfaces
option, which will list all interfaces present in the system together with their MAC address + IPv4/6 address
- Update Sniffer's description in
README.md
file
- Fix Layer 4 header size being (wrongly) too broad
0.2.0 - 2021-12-19
- Implement Sniffer Engine, alpha version
- Together with the Sniffer Engine, create the Packet Analyzer
- A new package named
exceptions
has been created that will hold all exceptions related to sniffer's components - A class has been created for each OSI layer needed (Layers: 2, 3 and 4)
0.1.1 - 2021-12-14
- Add instructions on how to build the docs, resources and information about
the git branching model on
README.md
- Add
tools/bump_version.sh
Bash script that updates the version on all required places.
- All tags will be also cryptographically signed (the commits are already)
with the following key:
DE7E4A0D4C55B4AC
0.1.0 - 2021-12-14
- Add this changelog
- Create the
sniffer
package, together with its sub-packages:network
,utils
andparser
- The
network
package contain code for actually sniffing traffic - The
parser
package is busy with appearance and text formatiing - The
utils
package provide helpers for various tasks
- The
- Create custom parser, based on argparse.ArgumentParser, which re-arranges the layout and adds coloring 🌠
- Add Sphinx for auto-documenting code
- Add a cool banner on the help menu of the script, that also keeps track of the version number and Git commit