From 8df2de18988c7922bba8a6588e7d9d9a9f2eeeb2 Mon Sep 17 00:00:00 2001 From: shadowy-pycoder <shadowy-pycoder@example.com> Date: Wed, 18 Sep 2024 09:18:16 +0300 Subject: [PATCH] Updated `README.md` with roadmap --- README.md | 6 ++++++ layers/layers.go | 21 --------------------- layers/tcp.go | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 8061c60..e959012 100644 --- a/README.md +++ b/README.md @@ -96,3 +96,9 @@ With `-v` flag enabled, you will see more detailed information: - [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) +## Roadmap + +- [x] Online packet capture to `stdout`, `txt`, `pcap` and `pcapng` files +- [ ] Offline packet capture from `pcap` and `pcapng` files +- [ ] Add proper parsing for `SNMP` messages +- [ ] Add packet generation and packet injection functionality diff --git a/layers/layers.go b/layers/layers.go index b1aa117..1cc1c53 100644 --- a/layers/layers.go +++ b/layers/layers.go @@ -43,27 +43,6 @@ type Layer interface { Summary() string } -func nextAppLayer(src, dst uint16) string { - var layer string - switch { - case src == 20 || dst == 20 || src == 21 || dst == 21: - layer = "FTP" - case src == 22 || dst == 22: - layer = "SSH" - case src == 53 || dst == 53: - layer = "DNS" - case src == 80 || dst == 80: - layer = "HTTP" - case src == 161 || dst == 161 || src == 162 || dst == 162: - layer = "SNMP" - case src == 443 || dst == 443: - layer = "TLS" - default: - layer = "" - } - return layer -} - func bytesToStr(b []byte) string { return unsafe.String(unsafe.SliceData(b), len(b)) } diff --git a/layers/tcp.go b/layers/tcp.go index a3d7387..790c814 100644 --- a/layers/tcp.go +++ b/layers/tcp.go @@ -130,3 +130,24 @@ func (t *TCPSegment) Parse(data []byte) error { func (t *TCPSegment) NextLayer() (string, []byte) { return nextAppLayer(t.SrcPort, t.DstPort), t.payload } + +func nextAppLayer(src, dst uint16) string { + var layer string + switch { + case src == 20 || dst == 20 || src == 21 || dst == 21: + layer = "FTP" + case src == 22 || dst == 22: + layer = "SSH" + case src == 53 || dst == 53: + layer = "DNS" + case src == 80 || dst == 80: + layer = "HTTP" + case src == 161 || dst == 161 || src == 162 || dst == 162: + layer = "SNMP" + case src == 443 || dst == 443: + layer = "TLS" + default: + layer = "" + } + return layer +}