From 3a33c82adaae33ab9056c216c94dd8c103195106 Mon Sep 17 00:00:00 2001 From: "pixeebot[bot]" <23113631+pixeebot@users.noreply.github.com> Date: Tue, 26 Dec 2023 10:57:22 +0000 Subject: [PATCH 1/2] Secure Source of Randomness --- fuzz_context.py | 7 ++++--- mobicomonkey.py | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/fuzz_context.py b/fuzz_context.py index 0c04537..e0a3b02 100644 --- a/fuzz_context.py +++ b/fuzz_context.py @@ -3,7 +3,6 @@ ''' import time from typing import List, Union, Type -import random from adb_logcat import FatalWatcher from emulator import Emulator @@ -19,6 +18,8 @@ from interval_event import IntervalEvent import os +import secrets + dir = os.path.dirname(__file__) StopFlagWatcher = os.path.join(dir, 'test/StopFlagWatcher') ContextEventLog = os.path.join(dir, 'test/ContextEventLog') @@ -71,7 +72,7 @@ def __init__(self, interval_minimum: int, self.duration = int(duration) self.uniform_interval = int(uniform_interval) self.fatal_watcher = fatal_watcher - random.seed(self.seed) + secrets.SystemRandom().seed(self.seed) # self.__setup_intervals(uniform_interval) # self.__setup_interval_events() @@ -137,7 +138,7 @@ def __random_value_generator(self, lower_limit: int, upper_limit: int): raise ValueError("lower_limit must be int") if not isinstance(upper_limit, int): raise ValueError("upper_limit must be int") - return random.randint(lower_limit, upper_limit) + return secrets.SystemRandom().randint(lower_limit, upper_limit) # def duration_interval_steps_generator(self)->List[int]: # ''' diff --git a/mobicomonkey.py b/mobicomonkey.py index a90b34c..b39026c 100644 --- a/mobicomonkey.py +++ b/mobicomonkey.py @@ -7,7 +7,6 @@ from xml_element import XML_Element from adb_settings import AdbSettings from telnet_connector import TelnetAdb -import random from typing import List from threading import Thread from adb_settings import KeyboardEvent @@ -16,6 +15,7 @@ import monkey from adb_logcat import Logcat, TestType import mutex +import secrets dir = os.path.dirname(__file__) eventFile = os.path.join(dir, 'test/EventLog') @@ -238,9 +238,9 @@ def traverse_elements(activity: str, element_list: List[XML_Element], def input_key_event(activity: str, item: XML_Element, emulator: Emulator, adb_settings: AdbSettings): api_commands.adb_input_tap(emulator, item.xpos, item.ypos) - rand = random.randint(config.MINIMUM_KEYEVENT, config.MAXIMUM_KEYEVENT) + rand = secrets.SystemRandom().randint(config.MINIMUM_KEYEVENT, config.MAXIMUM_KEYEVENT) for i in range(rand): - KeyCode = KeyboardEvent(random.randint(0, 40)).name + KeyCode = KeyboardEvent(secrets.SystemRandom().randint(0, 40)).name print("Sending event " + KeyCode) adb_settings.adb_send_key_event_test(KeyCode) eventlog.write(util.return_current_time_in_logcat_style() + '\t' + From 1af260d546b59f128d0b15980131e62ea9ff217c Mon Sep 17 00:00:00 2001 From: "pixeebot[bot]" <23113631+pixeebot@users.noreply.github.com> Date: Tue, 2 Jan 2024 02:18:35 +0000 Subject: [PATCH 2/2] Limit readline() --- emulator_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emulator_manager.py b/emulator_manager.py index 6b8fb22..254f855 100755 --- a/emulator_manager.py +++ b/emulator_manager.py @@ -190,7 +190,7 @@ def check_avd_booted_completely(emulator_port) -> str: def get_name(uid): path = os.getcwd() + '/temp/' + uid + '/' + uid + '/context' with open(path, 'r') as f: - first_line = f.readline() + first_line = f.readline(5_000_000) return first_line