new: using pwngrid for mesh advertising (we got rid of scapy loading times)

This commit is contained in:
Simone Margaritelli
2019-10-13 17:24:47 +02:00
parent 77c16c38f4
commit 5d28557608
10 changed files with 197 additions and 366 deletions

View File

@ -2,8 +2,6 @@ import time
import json
import os
import re
import socket
from datetime import datetime
import logging
import _thread
@ -42,15 +40,6 @@ class Agent(Client, AsyncAdvertiser, AsyncTrainer):
if not os.path.exists(config['bettercap']['handshakes']):
os.makedirs(config['bettercap']['handshakes'])
@staticmethod
def is_connected():
try:
socket.create_connection(("www.google.com", 80))
return True
except OSError:
pass
return False
def config(self):
return self._config
@ -193,7 +182,7 @@ class Agent(Client, AsyncAdvertiser, AsyncTrainer):
def set_access_points(self, aps):
self._access_points = aps
plugins.on('wifi_update', self, aps)
self._epoch.observe(aps, self._advertiser.peers() if self._advertiser is not None else ())
self._epoch.observe(aps, list(self._peers.values()))
return self._access_points
def get_access_points(self):
@ -274,19 +263,8 @@ class Agent(Client, AsyncAdvertiser, AsyncTrainer):
if new_shakes > 0:
self._view.on_handshakes(new_shakes)
def _update_advertisement(self, s):
run_handshakes = len(self._handshakes)
tot_handshakes = utils.total_unique_handshakes(self._config['bettercap']['handshakes'])
self._advertiser.update({
'pwnd_run': run_handshakes,
'pwnd_tot': tot_handshakes,
'uptime': pwnagotchi.uptime(),
'epoch': self._epoch.epoch})
def _update_peers(self):
peer = self._advertiser.closest_peer()
tot = self._advertiser.num_peers()
self._view.set_closest_peer(peer, tot)
self._view.set_closest_peer(self._closest_peer, len(self._peers))
def _save_recovery_data(self):
logging.warning("writing recovery data to %s ..." % RECOVERY_DATA_FILE)
@ -331,10 +309,8 @@ class Agent(Client, AsyncAdvertiser, AsyncTrainer):
s = self.session()
self._update_uptime(s)
if self._advertiser is not None:
self._update_advertisement(s)
self._update_peers()
self._update_advertisement(s)
self._update_peers()
self._update_counters()
try: