new: added number of captured full handshakes in wifi.show

This commit is contained in:
evilsocket 2019-02-05 19:56:21 +01:00
commit a90f63b643
No known key found for this signature in database
GPG key ID: 1564D7F30393A456
3 changed files with 50 additions and 12 deletions

View file

@ -279,16 +279,32 @@ func (w *WiFiModule) Show() (err error) {
tui.Table(os.Stdout, w.colNames(nrows), rows)
}
numHandshakes := w.Session.WiFi.NumHandshakes()
w.Session.Queue.Stats.RLock()
fmt.Printf("\n%s (ch. %d) / %s %s / %s %s / %d pkts / %d errs\n\n",
w.Session.Interface.Name(),
network.GetInterfaceChannel(w.Session.Interface.Name()),
tui.Red("↑"),
humanize.Bytes(w.Session.Queue.Stats.Sent),
tui.Green("↓"),
humanize.Bytes(w.Session.Queue.Stats.Received),
w.Session.Queue.Stats.PktReceived,
w.Session.Queue.Stats.Errors)
if numHandshakes > 0 {
fmt.Printf("\n%s (ch. %d) / %s %s / %s %s / %d pkts / %d errs / %d handshakes\n\n",
w.Session.Interface.Name(),
network.GetInterfaceChannel(w.Session.Interface.Name()),
tui.Red("↑"),
humanize.Bytes(w.Session.Queue.Stats.Sent),
tui.Green("↓"),
humanize.Bytes(w.Session.Queue.Stats.Received),
w.Session.Queue.Stats.PktReceived,
w.Session.Queue.Stats.Errors,
numHandshakes)
} else {
fmt.Printf("\n%s (ch. %d) / %s %s / %s %s / %d pkts / %d errs\n\n",
w.Session.Interface.Name(),
network.GetInterfaceChannel(w.Session.Interface.Name()),
tui.Red("↑"),
humanize.Bytes(w.Session.Queue.Stats.Sent),
tui.Green("↓"),
humanize.Bytes(w.Session.Queue.Stats.Received),
w.Session.Queue.Stats.PktReceived,
w.Session.Queue.Stats.Errors)
}
w.Session.Queue.Stats.RUnlock()
w.Session.Refresh()

View file

@ -182,6 +182,22 @@ func (w *WiFi) Clear() error {
return nil
}
func (w *WiFi) NumHandshakes() int {
w.Lock()
defer w.Unlock()
sum := 0
for _, ap := range w.aps {
for _, station := range ap.Clients() {
if station.Handshake.Complete() {
sum++
}
}
}
return sum
}
func (w *WiFi) SaveHandshakesTo(fileName string, linkType layers.LinkType) error {
w.Lock()
defer w.Unlock()

View file

@ -97,15 +97,21 @@ func (ap *AccessPoint) Clients() (list []*Station) {
return
}
func (ap *AccessPoint) HasHandshakes() bool {
func (ap *AccessPoint) NumHandshakes() int {
ap.Lock()
defer ap.Unlock()
sum := 0
for _, c := range ap.clients {
if c.Handshake.Complete() {
return true
sum++
}
}
return false
return sum
}
func (ap *AccessPoint) HasHandshakes() bool {
return ap.NumHandshakes() > 0
}