Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
import os
|
|
|
|
import json
|
|
|
|
import logging
|
2025-02-01 18:08:59 -08:00
|
|
|
import time
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
|
|
|
import pwnagotchi
|
|
|
|
import pwnagotchi.plugins as plugins
|
|
|
|
import pwnagotchi.ui.faces as faces
|
|
|
|
import pwnagotchi.ui.fonts as fonts
|
|
|
|
from pwnagotchi.ui.components import LabeledValue
|
|
|
|
from pwnagotchi.ui.view import BLACK
|
|
|
|
|
|
|
|
class Age(plugins.Plugin):
|
|
|
|
__author__ = 'AlienMajik'
|
2025-02-01 18:08:59 -08:00
|
|
|
__version__ = '2.0.1'
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
__license__ = 'MIT'
|
2025-02-01 18:08:59 -08:00
|
|
|
__description__ = 'Enhanced plugin with achievement tiers, configurable titles, decay mechanics, and progress tracking.'
|
|
|
|
|
|
|
|
DEFAULT_AGE_TITLES = {
|
2025-02-01 20:22:55 -08:00
|
|
|
1000: "Newborn",
|
|
|
|
2000: "Script Kiddie",
|
|
|
|
5000: "WiFi Hobo",
|
|
|
|
10000: "Packet Wizard",
|
|
|
|
20000: "Elder Hacker",
|
2025-02-01 18:08:59 -08:00
|
|
|
33333: "WiFi Deity"
|
|
|
|
}
|
|
|
|
|
|
|
|
DEFAULT_STRENGTH_TITLES = {
|
2025-02-01 20:22:55 -08:00
|
|
|
1000: "Weakling",
|
|
|
|
2000: "Lightweight",
|
|
|
|
5000: "Deauth King",
|
|
|
|
10000: "Handshake Titan",
|
2025-02-01 18:08:59 -08:00
|
|
|
20000: "Unstoppable"
|
|
|
|
}
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
|
|
|
def __init__(self):
|
2025-02-01 18:08:59 -08:00
|
|
|
# Default positions (x, y)
|
|
|
|
self.default_positions = {
|
|
|
|
'age': (10, 40),
|
|
|
|
'strength': (80, 40),
|
|
|
|
'points': (10, 60),
|
|
|
|
'stars': (10, 80)
|
|
|
|
}
|
|
|
|
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
self.epochs = 0
|
|
|
|
self.train_epochs = 0
|
2024-12-15 14:56:57 -08:00
|
|
|
self.network_points = 0
|
|
|
|
self.handshake_count = 0
|
2025-02-01 18:08:59 -08:00
|
|
|
self.last_active_epoch = 0
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
self.data_path = '/root/age_strength.json'
|
2024-12-15 14:56:57 -08:00
|
|
|
self.log_path = '/root/network_points.log'
|
2025-02-01 18:08:59 -08:00
|
|
|
self.handshake_dir = '/home/pi/handshakes'
|
|
|
|
|
|
|
|
# Configurable settings with defaults
|
2024-12-15 14:56:57 -08:00
|
|
|
self.max_stars = 5
|
2025-02-01 18:08:59 -08:00
|
|
|
self.star_interval = 1000
|
|
|
|
self.decay_interval = 50
|
|
|
|
self.decay_amount = 10
|
|
|
|
self.age_titles = self.DEFAULT_AGE_TITLES
|
|
|
|
self.strength_titles = self.DEFAULT_STRENGTH_TITLES
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
|
|
|
def on_loaded(self):
|
2025-02-01 18:08:59 -08:00
|
|
|
# Load configuration with fallbacks
|
|
|
|
self.max_stars = self.options.get('max_stars', 5)
|
|
|
|
self.star_interval = self.options.get('star_interval', 1000)
|
|
|
|
self.decay_interval = self.options.get('decay_interval', 50)
|
|
|
|
self.decay_amount = self.options.get('decay_amount', 10)
|
|
|
|
self.age_titles = self.options.get('age_titles', self.DEFAULT_AGE_TITLES)
|
|
|
|
self.strength_titles = self.options.get('strength_titles', self.DEFAULT_STRENGTH_TITLES)
|
|
|
|
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
self.load_data()
|
2025-02-01 18:08:59 -08:00
|
|
|
self.initialize_handshakes()
|
|
|
|
|
|
|
|
def initialize_handshakes(self):
|
2024-12-15 14:56:57 -08:00
|
|
|
if self.handshake_count == 0 and os.path.isdir(self.handshake_dir):
|
2025-02-01 18:08:59 -08:00
|
|
|
existing = [f for f in os.listdir(self.handshake_dir) if f.endswith('.pcap')]
|
|
|
|
if existing:
|
|
|
|
self.handshake_count = len(existing)
|
|
|
|
logging.info(f"[Age] Initialized with {self.handshake_count} handshakes")
|
|
|
|
self.save_data()
|
|
|
|
|
|
|
|
def get_age_title(self):
|
|
|
|
thresholds = sorted(self.age_titles.keys(), reverse=True)
|
|
|
|
for t in thresholds:
|
|
|
|
if self.epochs >= t:
|
|
|
|
return self.age_titles[t]
|
|
|
|
return "Unborn"
|
|
|
|
|
|
|
|
def get_strength_title(self):
|
|
|
|
thresholds = sorted(self.strength_titles.keys(), reverse=True)
|
|
|
|
for t in thresholds:
|
|
|
|
if self.train_epochs >= t:
|
|
|
|
return self.strength_titles[t]
|
|
|
|
return "Untrained"
|
|
|
|
|
|
|
|
def check_achievements(self, agent):
|
|
|
|
current_age = self.get_age_title()
|
|
|
|
current_strength = self.get_strength_title()
|
|
|
|
|
|
|
|
if current_age != self.prev_age_title:
|
|
|
|
agent.view().set('face', faces.HAPPY)
|
|
|
|
agent.view().set('status', f"Promoted to {current_age}!")
|
|
|
|
self.prev_age_title = current_age
|
|
|
|
|
|
|
|
if current_strength != self.prev_strength_title:
|
|
|
|
agent.view().set('face', faces.MOTIVATED)
|
|
|
|
agent.view().set('status', f"Evolved to {current_strength}!")
|
|
|
|
self.prev_strength_title = current_strength
|
|
|
|
|
|
|
|
def apply_decay(self, agent):
|
|
|
|
inactive_epochs = self.epochs - self.last_active_epoch
|
|
|
|
if inactive_epochs >= self.decay_interval:
|
|
|
|
decay_cycles = inactive_epochs // self.decay_interval
|
|
|
|
points_lost = decay_cycles * self.decay_amount
|
|
|
|
self.network_points = max(0, self.network_points - points_lost)
|
|
|
|
|
|
|
|
if points_lost > 0:
|
|
|
|
agent.view().set('face', faces.SAD)
|
|
|
|
agent.view().set('status', f"Inactivity decay: -{points_lost} points!")
|
|
|
|
self.last_active_epoch = self.epochs
|
2024-12-15 14:56:57 -08:00
|
|
|
self.save_data()
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
|
|
|
def on_ui_setup(self, ui):
|
2025-02-01 18:08:59 -08:00
|
|
|
def get_position(element):
|
|
|
|
x = self.options.get(
|
|
|
|
f"{element}_x",
|
|
|
|
self.options.get(
|
|
|
|
f"{element}_x_coord", # Backwards compatibility
|
|
|
|
self.default_positions[element][0]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
y = self.options.get(
|
|
|
|
f"{element}_y",
|
|
|
|
self.options.get(
|
|
|
|
f"{element}_y_coord", # Backwards compatibility
|
|
|
|
self.default_positions[element][1]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
return (int(x), int(y))
|
|
|
|
|
|
|
|
positions = {
|
|
|
|
'age': get_position('age'),
|
|
|
|
'strength': get_position('strength'),
|
|
|
|
'points': get_position('points'),
|
|
|
|
'stars': get_position('stars')
|
|
|
|
}
|
|
|
|
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
ui.add_element('Age', LabeledValue(
|
2025-02-01 18:08:59 -08:00
|
|
|
color=BLACK, label='Age', value="Newborn",
|
|
|
|
position=positions['age'], label_font=fonts.Bold, text_font=fonts.Medium))
|
|
|
|
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
ui.add_element('Strength', LabeledValue(
|
2025-02-01 18:08:59 -08:00
|
|
|
color=BLACK, label='Str', value="Rookie",
|
|
|
|
position=positions['strength'], label_font=fonts.Bold, text_font=fonts.Medium))
|
|
|
|
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
ui.add_element('Points', LabeledValue(
|
2025-02-01 18:08:59 -08:00
|
|
|
color=BLACK, label='★ Pts', value="0",
|
|
|
|
position=positions['points'], label_font=fonts.Bold, text_font=fonts.Medium))
|
|
|
|
|
2024-12-21 21:01:41 -08:00
|
|
|
ui.add_element('ReP', LabeledValue(
|
2025-02-01 18:08:59 -08:00
|
|
|
color=BLACK, label='ReP', value="★",
|
|
|
|
position=positions['stars'], label_font=fonts.Bold, text_font=fonts.Medium))
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
|
|
|
def on_ui_update(self, ui):
|
2025-02-01 18:08:59 -08:00
|
|
|
ui.set('Age', self.get_age_title())
|
|
|
|
ui.set('Strength', self.get_strength_title())
|
|
|
|
ui.set('Points', self.abrev_number(self.network_points))
|
|
|
|
ui.set('ReP', self.get_star_string())
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
2025-02-01 18:08:59 -08:00
|
|
|
# Modified Event Handlers
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
def on_epoch(self, agent, epoch, epoch_data):
|
|
|
|
self.epochs += 1
|
2025-02-01 18:08:59 -08:00
|
|
|
self.train_epochs += 1 if self.epochs % 10 == 0 else 0
|
|
|
|
|
|
|
|
self.apply_decay(agent)
|
|
|
|
self.check_achievements(agent)
|
|
|
|
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
if self.epochs % 100 == 0:
|
|
|
|
self.age_checkpoint(agent)
|
2025-02-01 18:08:59 -08:00
|
|
|
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
self.save_data()
|
|
|
|
|
2025-02-01 20:22:55 -08:00
|
|
|
def age_checkpoint(self, agent):
|
|
|
|
# Status update at every epoch milestone (for example every 100 epochs)
|
|
|
|
view = agent.view()
|
|
|
|
view.set('face', faces.HAPPY)
|
|
|
|
view.set('status', f"Epoch milestone: {self.epochs} epochs!")
|
|
|
|
view.update(force=True)
|
|
|
|
|
2025-02-01 18:08:59 -08:00
|
|
|
def on_handshake(self, agent, *args):
|
|
|
|
self.last_active_epoch = self.epochs
|
|
|
|
enc = args[2].get('encryption', '').lower()
|
|
|
|
|
|
|
|
points = {
|
|
|
|
'wpa3': 10, 'wpa2': 5,
|
|
|
|
'wep': 2, 'wpa': 2
|
|
|
|
}.get(enc, 1)
|
|
|
|
|
|
|
|
self.network_points += points
|
2024-12-15 14:56:57 -08:00
|
|
|
self.handshake_count += 1
|
2025-02-01 18:08:59 -08:00
|
|
|
|
|
|
|
# Log details
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
with open(self.log_path, 'a') as f:
|
2025-02-01 18:08:59 -08:00
|
|
|
essid = args[2].get('essid', 'unknown')
|
|
|
|
f.write(f"{time.time()},{essid},{enc},{points}\n")
|
|
|
|
|
|
|
|
self.new_star_checkpoint(agent)
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
self.save_data()
|
|
|
|
|
2025-02-01 18:08:59 -08:00
|
|
|
# Star System
|
|
|
|
def new_star_checkpoint(self, agent):
|
|
|
|
stars = self.get_stars_count()
|
|
|
|
if stars > self.prev_stars:
|
2024-12-15 17:00:36 -08:00
|
|
|
symbol = self.get_symbol_for_handshakes()
|
2025-02-01 18:08:59 -08:00
|
|
|
agent.view().set('face', faces.EXCITED)
|
|
|
|
agent.view().set('status', f"New {symbol} Tier Achieved!")
|
|
|
|
self.prev_stars = stars
|
2024-12-15 17:00:36 -08:00
|
|
|
|
2025-02-01 18:08:59 -08:00
|
|
|
# Data Management
|
|
|
|
def load_data(self):
|
|
|
|
try: # <- Added indentation here
|
|
|
|
if os.path.exists(self.data_path):
|
|
|
|
with open(self.data_path, 'r') as f:
|
|
|
|
data = json.load(f)
|
|
|
|
|
|
|
|
# Handle old format compatibility
|
|
|
|
self.epochs = data.get('epochs', data.get('epochs_lived', 0))
|
|
|
|
self.train_epochs = data.get('train_epochs', data.get('epochs_trained', 0))
|
|
|
|
self.network_points = data.get('points', data.get('network_points', 0))
|
|
|
|
self.handshake_count = data.get('handshakes', data.get('handshake_count', 0))
|
|
|
|
|
|
|
|
# New fields with defaults
|
|
|
|
self.last_active_epoch = data.get('last_active', 0)
|
|
|
|
self.prev_age_title = data.get('prev_age', self.get_age_title())
|
|
|
|
self.prev_strength_title = data.get('prev_strength', self.get_strength_title())
|
|
|
|
self.prev_stars = data.get('prev_stars', self.get_stars_count())
|
2024-12-15 14:56:57 -08:00
|
|
|
|
2025-02-01 18:08:59 -08:00
|
|
|
# Migrate old format to new format
|
|
|
|
if 'epochs_lived' in data:
|
|
|
|
self.save_data() # Resave in new format
|
|
|
|
logging.info("[Age] Migrated old data format to new format")
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
2025-02-01 18:08:59 -08:00
|
|
|
except Exception as e:
|
|
|
|
logging.error(f"[Age] Load error: {str(e)}")
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
|
|
|
|
def save_data(self):
|
2025-02-01 18:08:59 -08:00
|
|
|
data = { # <- Added indentation here
|
|
|
|
# New format keys
|
|
|
|
'epochs': self.epochs,
|
|
|
|
'train_epochs': self.train_epochs,
|
|
|
|
'points': self.network_points,
|
|
|
|
'handshakes': self.handshake_count,
|
|
|
|
|
|
|
|
# Old format aliases for compatibility
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
'epochs_lived': self.epochs,
|
|
|
|
'epochs_trained': self.train_epochs,
|
2024-12-15 14:56:57 -08:00
|
|
|
'network_points': self.network_points,
|
2025-02-01 18:08:59 -08:00
|
|
|
'handshake_count': self.handshake_count,
|
|
|
|
|
|
|
|
# New fields
|
|
|
|
'last_active': self.last_active_epoch,
|
|
|
|
'prev_age': self.get_age_title(),
|
|
|
|
'prev_strength': self.get_strength_title(),
|
|
|
|
'prev_stars': self.get_stars_count()
|
Add files via upload
Below is an example of how you can describe the plugin’s purpose, functionality, and installation instructions in a README.md file on your GitHub repository. You can adjust the wording and formatting as you see fit:
Age, Strength, and Network Points Plugin for Pwnagotchi
Author: AlienMajik
Version: 1.0.4
License: MIT
Description
This Pwnagotchi plugin extends your Pwnagotchi’s user interface and functionality by adding three key stats:
Age (♥ Age): Tracks how many epochs your Pwnagotchi has lived.
Strength (Str): Indicates how much your Pwnagotchi has "trained," increasing every 10 epochs by default.
Network Points (★ Pts): Awards points based on the type of network handshakes your Pwnagotchi captures. Stronger encryptions yield more points, weaker encryptions yield fewer. The points are logged for your reference.
Network Points Scoring:
WPA3: +10 points
WPA2: +5 points
WEP/WPA: +2 points
Open/Unknown: +1 point
Each time points are awarded, an entry is appended to /root/network_points.log with the ESSID, encryption type, points gained, and the updated total.
All stats (age, strength, network points) are saved to /root/age_strength.json, ensuring that your Pwnagotchi remembers these values across reboots.
Features
Persistent Stats: Age, Strength, and Points survive restarts.
UI Integration: Displays stats directly on the Pwnagotchi screen.
Logging: Keeps a dedicated log file of network-related point gains.
Customizable: You can tweak increments and positions via config options.
2024-12-14 23:19:32 -08:00
|
|
|
}
|
2025-02-01 18:08:59 -08:00
|
|
|
try:
|
|
|
|
with open(self.data_path, 'w') as f:
|
|
|
|
json.dump(data, f, indent=2)
|
|
|
|
except Exception as e:
|
|
|
|
logging.error(f"[Age] Save error: {str(e)}")
|
|
|
|
|
|
|
|
# Helper Methods
|
|
|
|
def get_stars_count(self):
|
|
|
|
return min(self.handshake_count // self.star_interval, self.max_stars)
|
|
|
|
|
|
|
|
def get_symbol_for_handshakes(self):
|
|
|
|
return '♣' if self.handshake_count >= 10000 else '♦' if self.handshake_count >= 5000 else '★'
|
|
|
|
|
|
|
|
def get_star_string(self):
|
|
|
|
return self.get_symbol_for_handshakes() * self.get_stars_count()
|
|
|
|
|
|
|
|
def abrev_number(self, num):
|
|
|
|
for unit in ['','K','M','B']:
|
|
|
|
if abs(num) < 1000:
|
|
|
|
return f"{num:.1f}{unit}".rstrip('.0')
|
|
|
|
num /= 1000.0
|
|
|
|
return f"{num:.1f}T"
|
|
|
|
|
2024-12-15 17:00:36 -08:00
|
|
|
|
2025-02-01 20:22:55 -08:00
|
|
|
|