Agent API_p14 - grisuno/LazyOwn GitHub Wiki
API (page 14 of 22)
Previous: API_p13.md
modules/mcp_agent_bridge.py
Depends on: core/logging.py, modules/llm_factory.py
Imported by: modules/unified_bridge.py, skills/lazyown_mcp.py
get_agent_status(function)modules/mcp_agent_bridge.py:163def get_agent_status(agent_id)-- Public: returns current status dict for an agent.get_agent_result(function)modules/mcp_agent_bridge.py:188def get_agent_result(agent_id)-- Public: returns final result + full action log.list_agents(function)modules/mcp_agent_bridge.py:211def list_agents(limit)-- List recent agents sorted by start time.GroqAgentWorker.__init__(method)modules/mcp_agent_bridge.py:235def __init__(self, agent_id, goal, client, model, run_cmd, max_iter)GroqAgentWorker.run(method)modules/mcp_agent_bridge.py:264def run(self)OllamaReActWorker.__init__(method)modules/mcp_agent_bridge.py:368def __init__(self, agent_id, goal, client, model, run_cmd, max_iter)OllamaReActWorker.run(method)modules/mcp_agent_bridge.py:389def run(self)AgentBridgeWorker.__init__(method)modules/mcp_agent_bridge.py:471def __init__(self, agent_id, goal, backend, run_cmd, max_iterations)AgentBridgeWorker.run(method)modules/mcp_agent_bridge.py:478def run(self)start_agent(function)modules/mcp_agent_bridge.py:508def start_agent(goal, backend, lazyown_runner_fn, max_iterations)-- Start an agent in a background thread.dummy_runner(function)modules/mcp_agent_bridge.py:531def dummy_runner(cmd)
modules/memory_cleaner.py
Imported by: cli/commands/opsec_cleanup.py
MemoryCleaner.__init__(method)modules/memory_cleaner.py:61def __init__(self, config)MemoryCleaner.windows_memory_cleanup(method)modules/memory_cleaner.py:64def windows_memory_cleanup(self)-- Generate Windows memory artifact cleanup commands.MemoryCleaner.linux_memory_cleanup(method)modules/memory_cleaner.py:151def linux_memory_cleanup(self)-- Generate Linux memory artifact cleanup commands.MemoryCleaner.macos_memory_cleanup(method)modules/memory_cleaner.py:206def macos_memory_cleanup(self)-- Generate macOS memory artifact cleanup commands.MemoryCleaner.generate_on_exit_script(method)modules/memory_cleaner.py:255def generate_on_exit_script(self)-- Generate an on-exit cleanup script for beacons.
modules/memory_store.py
Imported by: skills/lazyown_mcp.py, tests/test_core_modules.py
StorageBackend.save(method)modules/memory_store.py:96def save(self, entry)StorageBackend.search(method)modules/memory_store.py:99def search(self, query, top_k)StorageBackend.by_host(method)modules/memory_store.py:102def by_host(self, host, top_k)StorageBackend.by_service(method)modules/memory_store.py:105def by_service(self, service, top_k)StorageBackend.all_entries(method)modules/memory_store.py:108def all_entries(self, limit)StorageBackend.close(method)modules/memory_store.py:111def close(self)SQLiteBackend.__init__(method)modules/memory_store.py:130def __init__(self, db_path)SQLiteBackend.save(method)modules/memory_store.py:145def save(self, entry)SQLiteBackend.search(method)modules/memory_store.py:177def search(self, query, top_k)SQLiteBackend.by_host(method)modules/memory_store.py:189def by_host(self, host, top_k)SQLiteBackend.by_service(method)modules/memory_store.py:200def by_service(self, service, top_k)SQLiteBackend.all_entries(method)modules/memory_store.py:212def all_entries(self, limit)SQLiteBackend.stats_raw(method)modules/memory_store.py:222def stats_raw(self)SQLiteBackend.close(method)modules/memory_store.py:229def close(self)MemoryStore.__init__(method)modules/memory_store.py:237def __init__(self, backend)MemoryStore.remember(method)modules/memory_store.py:240def remember(self, session_id, host, tool, command, output, findings, success)MemoryStore.recall(method)modules/memory_store.py:267def recall(self, query, top_k)MemoryStore.recall_by_host(method)modules/memory_store.py:270def recall_by_host(self, host, top_k)MemoryStore.recall_for_service(method)modules/memory_store.py:273def recall_for_service(self, service_name, top_k)MemoryStore.stats(method)modules/memory_store.py:276def stats(self)MemoryStore.export_finetuning_dataset(method)modules/memory_store.py:284def export_finetuning_dataset(self, path)get_memory_store(function)modules/memory_store.py:303def get_memory_store()remember(function)modules/memory_store.py:312def remember(session_id, host, tool, command, output, findings, success)recall(function)modules/memory_store.py:324def recall(query, top_k)
modules/metrics.py
Depends on: core/logging.py
Imported by: lazyc2.py, lazyown.py, modules/c2_builder.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/test_metrics.py
MetricsRegistry.__init__(method)modules/metrics.py:63def __init__(self)-- Create an empty registry with its own lock.MetricsRegistry.inc(method)modules/metrics.py:69def inc(self, name, labels, value)-- Increment the named counter for the given labels.MetricsRegistry.get(method)modules/metrics.py:87def get(self, name, labels)-- Return the current value of a counter.MetricsRegistry.prometheus_text(method)modules/metrics.py:107def prometheus_text(self)-- Render every counter in Prometheus text exposition format.MetricRecord.to_dict(method)modules/metrics.py:167def to_dict(self)-- Return the record as a JSON-serialisable dictionary.MetricsWriter.__init__(method)modules/metrics.py:189def __init__(self, path)-- Initialise the writer.MetricsWriter.path(method)modules/metrics.py:201def path(self)-- Return the JSONL destination path.MetricsWriter.append(method)modules/metrics.py:206def append(self, record)-- Append a single record to disk.MetricsAggregator.summarize(method)modules/metrics.py:254def summarize(cls, records, window_seconds, now_utc)-- Compute aggregate statistics over the supplied records.MetricsRecorder.__init__(method)modules/metrics.py:339def __init__(self, writer)-- Initialise the recorder.MetricsRecorder.path(method)modules/metrics.py:350def path(self)-- Return the JSONL path used by the underlying writer.MetricsRecorder.record(method)modules/metrics.py:355def record(self, command, args, duration_ms, success, exit_code, source)-- Persist a single command-execution telemetry record.MetricsRecorder.summarize(method)modules/metrics.py:416def summarize(self, window_seconds)-- Return aggregate statistics over recorded events.MetricsRecorder.tail(method)modules/metrics.py:430def tail(self, n)-- Return the most recent n records, newest first.get_recorder(function)modules/metrics.py:452def get_recorder()-- Return the process-wide :class:MetricsRecordersingleton.reset_recorder_for_tests(function)modules/metrics.py:466def reset_recorder_for_tests(writer)-- Replace the module-level recorder with a fresh instance.
modules/mfa_bypass.py
Imported by: cli/commands/cicd.py
MFABypassEngine.__init__(method)modules/mfa_bypass.py:128def __init__(self, sessions_dir)MFABypassEngine.enumerate_techniques(method)modules/mfa_bypass.py:133def enumerate_techniques(self, target)-- Enumerate viable MFA bypass techniques for a given target.MFABypassEngine.generate_phishing_templates(method)modules/mfa_bypass.py:153def generate_phishing_templates(self, target)-- Generate phishing templates tailored for MFA bypass.MFABypassEngine.mfa_conditional_access_scan(method)modules/mfa_bypass.py:223def mfa_conditional_access_scan(self, domain)-- Scan for conditional access policy gaps.MFABypassEngine.replay_oauth_token(method)modules/mfa_bypass.py:252def replay_oauth_token(self, access_token, refresh_token)-- Test if an OAuth2 token is still valid and can be replayed.MFABypassEngine.saml_golden_ticket_check(method)modules/mfa_bypass.py:278def saml_golden_ticket_check(self, adfs_server)-- Check for ADFS token signing certificate exposure.MFABypassEngine.export_report(method)modules/mfa_bypass.py:303def export_report(self)-- Export MFA bypass results to a JSON report.
modules/module_registry.py
Depends on: core/logging.py
Imported by: cli/commands/marketplace.py, cli/commands/misc_migrated.py, cli/commands/module_manager.py, cli/commands/session_ops.py, skills/lazyown_mcp.py, tests/test_module_registry.py
ModuleInfo.__init__(method)modules/module_registry.py:172def __init__(self, name, module_type, author, version, description, category, path, source, params, enabled...ModuleInfo.to_dict(method)modules/module_registry.py:202def to_dict(self)ModuleRegistry.__init__(method)modules/module_registry.py:235def __init__(self, base_dir)ModuleRegistry.get_instance(method)modules/module_registry.py:241def get_instance(cls, base_dir)-- Return the singleton registry instance.ModuleRegistry.scan(method)modules/module_registry.py:247def scan(self)-- Scan all module directories and return the full list.ModuleRegistry.rescan(method)modules/module_registry.py:260def rescan(self)-- Force a full rescan and return modules.ModuleRegistry.get(method)modules/module_registry.py:269def get(self, name)-- Get a module by name.ModuleRegistry.search(method)modules/module_registry.py:275def search(self, query, module_type, category, enabled_only, include_deprecated)-- Search indexed modules.ModuleRegistry.deprecated_modules(method)modules/module_registry.py:315def deprecated_modules(self)-- Return all deprecated modules.ModuleRegistry.by_type(method)modules/module_registry.py:321def by_type(self, module_type)-- Shorthand forsearch(module_type=module_type).ModuleRegistry.summary(method)modules/module_registry.py:325def summary(self)-- Return counts by module type.format_module_table(function)modules/module_registry.py:542def format_module_table(modules, cols)-- Format a list of modules as an aligned text table.format_module_detail(function)modules/module_registry.py:589def format_module_detail(m)-- Format a single module's full metadata.
modules/moe_router.py
Depends on: core/logging.py, modules/toposwarm_bridge.py
Imported by: modules/lesson_ingestor.py, modules/loop_ai_bridge.py, skills/swan_agent.py, tests/integration_autonomous_flow.py, tests/test_moe_rl_swan.py, tests/test_moe_router_check_regression.py
ExpertProfile.is_local(method)modules/moe_router.py:96def is_local(self)ExpertPerformance.update(method)modules/moe_router.py:115def update(self, reward, detection_prob)IExpertSelector.select(method)modules/moe_router.py:261def select(self, candidates, task_type, performance_store, deterministic)-- Return the selected expert from candidates.ExpertPerformanceStore.__init__(method)modules/moe_router.py:283def __init__(self, path)ExpertPerformanceStore.record(method)modules/moe_router.py:298def record(self, expert_id, task_type, reward, detection_prob)-- Update performance for (expert, task_type) and persist.ExpertPerformanceStore.get(method)modules/moe_router.py:316def get(self, expert_id, task_type)ExpertPerformanceStore.all_for_task(method)modules/moe_router.py:321def all_for_task(self, task_type)ExpertPerformanceStore.performance_bonus(method)modules/moe_router.py:325def performance_bonus(self, expert_id, task_type)-- Return a bonus scalar in [-0.3, +0.5] based on EMA reward history.SoftmaxSelector.__init__(method)modules/moe_router.py:377def __init__(self, temperature)SoftmaxSelector.temperature(method)modules/moe_router.py:381def temperature(self)SoftmaxSelector.temperature(method)modules/moe_router.py:385def temperature(self, value)SoftmaxSelector.select(method)modules/moe_router.py:388def select(self, candidates, task_type, performance_store, deterministic)ExpertAvailabilityChecker.__init__(method)modules/moe_router.py:443def __init__(self)ExpertAvailabilityChecker.is_available(method)modules/moe_router.py:447def is_available(self, expert, api_key)MoERouter.__init__(method)modules/moe_router.py:500def __init__(self, experts, selector, performance_store, api_key)MoERouter.route(method)modules/moe_router.py:515def route(self, task_type, goal, deterministic)-- Return the single best expert for the given task_type.MoERouter.ensemble(method)modules/moe_router.py:547def ensemble(self, task_type, goal, n)-- Return up to n distinct experts for ensemble execution.adjusted_weight(function)modules/moe_router.py:562def adjusted_weight(ep)MoERouter.record_outcome(method)modules/moe_router.py:575def record_outcome(self, expert_id, task_type, reward, detection_prob)-- Record the outcome of an expert execution.MoERouter.top_experts_for_task(method)modules/moe_router.py:589def top_experts_for_task(self, task_type, top_k)-- Return (expert, adjusted_weight) sorted descending for diagnostics.MoERouter.get_expert(method)modules/moe_router.py:605def get_expert(self, expert_id)-- Return expert by ID, or None.MoERouter.status_report(method)modules/moe_router.py:609def status_report(self)-- Return a diagnostic snapshot of all experts and their weights.get_router(function)modules/moe_router.py:684def get_router(api_key)-- Return (or create) the module-level singleton MoERouter.
modules/morse.py
reverse_morse_code(function)modules/morse.py:98def reverse_morse_code()-- Build the reverse lookup table from Morse code to characters.text_to_morse(function)modules/morse.py:109def text_to_morse(text, config)-- Convert plain text to Morse code.morse_to_text(function)modules/morse.py:130def morse_to_text(morse_code, config)-- Convert Morse code back to plain text.clear_screen(function)modules/morse.py:157def clear_screen(config)-- Reset the terminal screen using a bounded subprocess call.read_choice(function)modules/morse.py:171def read_choice(config)-- Read and validate the menu choice from standard input.run_driver(function)modules/morse.py:186def run_driver(config)-- Run the interactive Morse code conversion loop.
modules/mysql_hookandroot_lib.c
reverse_shell(function)modules/mysql_hookandroot_lib.c:74void reverse_shell(void)-- fork & send a bash shell to the attacker before starting mysqldexecvp(function)modules/mysql_hookandroot_lib.c:128int execvp(const char* filename, char* const argv[])-- execvp() hook
modules/network_opsec.py
Imported by: cli/commands/opsec_cleanup.py
NetworkOpsecEngine.__init__(method)modules/network_opsec.py:83def __init__(self, config)NetworkOpsecEngine.configure_proxy_chain(method)modules/network_opsec.py:87def configure_proxy_chain(self, chain_type)-- Configure a proxy chain for C2 communication.NetworkOpsecEngine.check_canary_tokens(method)modules/network_opsec.py:131def check_canary_tokens(self)-- Check if the target has canary token / deception technology.NetworkOpsecEngine.analyze_traffic_with_canary_check(method)modules/network_opsec.py:179def analyze_traffic_with_canary_check(self, target_host, target_port)-- Analyze whether target traffic is being intercepted or analyzed.NetworkOpsecEngine.dns_over_https_config(method)modules/network_opsec.py:246def dns_over_https_config(self)-- Generate DNS-over-HTTPS configuration for proxy and system.NetworkOpsecEngine.source_port_randomize(method)modules/network_opsec.py:269def source_port_randomize(self)-- Randomize source port for outbound connections.NetworkOpsecEngine.connection_jitter_schedule(method)modules/network_opsec.py:294def connection_jitter_schedule(self, beacon_interval)-- Generate a jitter schedule for beacon connections.NetworkOpsecEngine.canary_detection_setup(method)modules/network_opsec.py:317def canary_detection_setup(self)-- Set up canary detection for the engagement.NetworkOpsecEngine.summary(method)modules/network_opsec.py:349def summary(self)
modules/nmap2csv.py
dottedquad_to_num(function)modules/nmap2csv.py:126def dottedquad_to_num(ip)-- Convert decimal dotted quad string IP to long integernum_to_dottedquad(function)modules/nmap2csv.py:133def num_to_dottedquad(n)-- Convert long int IP to dotted quad stringunique_match_from_list(function)modules/nmap2csv.py:140def unique_match_from_list(list)-- Check the list for a potential pattern matchextract_matching_pattern(function)modules/nmap2csv.py:156def extract_matching_pattern(regex, group_name, unfiltered_list)-- Return the desired group_name from a list of matching patternsHost.__init__(method)modules/nmap2csv.py:177def __init__(self, ip, fqdn)Host.add_port(method)modules/nmap2csv.py:188def add_port(self, port)Host.get_ip_num_format(method)modules/nmap2csv.py:192def get_ip_num_format(self)Host.get_ip_dotted_format(method)modules/nmap2csv.py:195def get_ip_dotted_format(self)Host.get_fqdn(method)modules/nmap2csv.py:198def get_fqdn(self)Host.get_rdns_record(method)modules/nmap2csv.py:201def get_rdns_record(self)Host.get_port_list(method)modules/nmap2csv.py:204def get_port_list(self)Host.get_port_number_list(method)modules/nmap2csv.py:207def get_port_number_list(self)Host.get_port_protocol_list(method)modules/nmap2csv.py:216def get_port_protocol_list(self)Host.get_port_service_list(method)modules/nmap2csv.py:225def get_port_service_list(self)Host.get_port_version_list(method)modules/nmap2csv.py:234def get_port_version_list(self)Host.get_port_script_list(method)modules/nmap2csv.py:243def get_port_script_list(self)Host.get_os(method)modules/nmap2csv.py:252def get_os(self)Host.get_mac_address(method)modules/nmap2csv.py:255def get_mac_address(self)Host.get_mac_address_vendor(method)modules/nmap2csv.py:258def get_mac_address_vendor(self)Host.get_network_distance(method)modules/nmap2csv.py:261def get_network_distance(self)Host.set_fqdn(method)modules/nmap2csv.py:265def set_fqdn(self, fqdn)Host.set_rdns_record(method)modules/nmap2csv.py:268def set_rdns_record(self, rdns_record)Host.set_os(method)modules/nmap2csv.py:271def set_os(self, os)Host.set_mac(method)modules/nmap2csv.py:274def set_mac(self, mac_address, mac_address_vendor)Host.set_network_distance(method)modules/nmap2csv.py:278def set_network_distance(self, network_distance)Port.__init__(method)modules/nmap2csv.py:283def __init__(self, number, protocol, service, version, script)Port.get_number(method)modules/nmap2csv.py:290def get_number(self)Port.get_protocol(method)modules/nmap2csv.py:293def get_protocol(self)Port.get_service(method)modules/nmap2csv.py:296def get_service(self)Port.get_version(method)modules/nmap2csv.py:299def get_version(self)Port.get_script(method)modules/nmap2csv.py:302def get_script(self)Port.set_service(method)modules/nmap2csv.py:305def set_service(self, service)Port.set_version(method)modules/nmap2csv.py:308def set_version(self, version)Port.set_script(method)modules/nmap2csv.py:311def set_script(self, script)split_grepable_match(function)modules/nmap2csv.py:315def split_grepable_match(raw_string)-- Split the raw line to a neat Host objectparse(function)modules/nmap2csv.py:362def parse(fd)-- Parse the data according to several regexesparse_xml(function)modules/nmap2csv.py:492def parse_xml(xml_file)-- Parse the XML fileis_format_valid(function)modules/nmap2csv.py:572def is_format_valid(fmt)-- Check for the supplied custom output formatformatted_item(function)modules/nmap2csv.py:606def formatted_item(host, format_item)-- return the attribute value related to the hostrepeat_attributes(function)modules/nmap2csv.py:639def repeat_attributes(attribute_list)-- repeat attribute lists to the maximum for thegenerate_csv(function)modules/nmap2csv.py:653def generate_csv(fd, results, options)-- Generate a plain ';' separated csv file with the desired or default attribute formatmain(function)modules/nmap2csv.py:688def main()
modules/notify.py
Imported by: modules/custom_tools.py, modules/lazy_loop.py, skills/autonomous_daemon.py, static/js/chart.min.js, tests/test_autonomous_ops.py, tests/test_lazy_loop.py, tests/test_security_codeql_batch.py
severity_rank(function)modules/notify.py:31def severity_rank(severity, config)-- Return the comparable order for a severity label.mask_secrets(function)modules/notify.py:39def mask_secrets(text, config)-- Replace known secret prefixes with a redaction marker.url_allowed(function)modules/notify.py:57def url_allowed(url)-- SSRF dial-guard for webhook delivery (LAZY parity).post_url_validated(function)modules/notify.py:145def post_url_validated(url, data, timeout)-- POST data to a webhook URL after SSRF validation, guarding redirects._GuardRedirect.redirect_request(method)modules/notify.py:159def redirect_request(self, req, fp, code, msg, headers, newurl)Notifier.__init__(method)modules/notify.py:207def __init__(self, config)-- Initialize with shared notification constants.Notifier.should_send(method)modules/notify.py:215def should_send(self, message, channel)-- Apply event, severity, keyword and scope gates (LAZY parity).Notifier.render(method)modules/notify.py:238def render(self, message)-- Render masked Markdown text for a message.Notifier.dispatch(method)modules/notify.py:244def dispatch(self, message, channels)-- Fan out to eligible channels and journal deliveries.Notifier.flush_digest(method)modules/notify.py:260def flush_digest(self, max_age_sec)-- Emit one digest per channel when due (default 30m, LAZY parity).
modules/nuclei_templates_sync.py
repo_root(function)modules/nuclei_templates_sync.py:39def repo_root()-- Return the LazyOwn repository root derived from this file location.canonical_dest(function)modules/nuclei_templates_sync.py:48def canonical_dest(subdir)-- Return the canonical marketplace destination for a source.run(function)modules/nuclei_templates_sync.py:60def run(argv, cwd)-- Run a subprocess capturing output as text without raising.ensure_git_available(function)modules/nuclei_templates_sync.py:73def ensure_git_available()-- Abort with a clear message when the git binary is missing.clone_templates(function)modules/nuclei_templates_sync.py:84def clone_templates(repo, staging)-- Shallow-clone the template repository into the staging directory.strip_git_traces(function)modules/nuclei_templates_sync.py:113def strip_git_traces(tree)-- Remove every .git file or directory under the staged tree.count_templates(function)modules/nuclei_templates_sync.py:132def count_templates(tree)-- Count Nuclei template files under a directory tree.replace_dest(function)modules/nuclei_templates_sync.py:144def replace_dest(src, dest, expected)-- Atomically replace the destination with the staged tree contents.same_remote(function)modules/nuclei_templates_sync.py:168def same_remote(path, repo)-- Check whether an existing clone points at the expected remote.normalize(function)modules/nuclei_templates_sync.py:179def normalize(url)refresh_existing_clone(function)modules/nuclei_templates_sync.py:188def refresh_existing_clone(path, repo)-- Fast-forward an existing clean clone of the same remote.validate_subset(function)modules/nuclei_templates_sync.py:209def validate_subset(dest, subset)-- Validate a template subset with the nuclei binary when available.build_parser(function)modules/nuclei_templates_sync.py:238def build_parser()-- Build the command line parser for the sync script.sync(function)modules/nuclei_templates_sync.py:263def sync(name, repo, dest, refresh_existing, skip_validate)-- Clone, clean, and install one template source.resolve_plan(function)modules/nuclei_templates_sync.py:308def resolve_plan(args)-- Resolve the requested sources into (name, repo, dest) work items.main(function)modules/nuclei_templates_sync.py:337def main(argv)-- Entry point for the template sync script.
modules/obs_parser.py
Depends on: cli/commands/enum.py, core/logging.py
Imported by: modules/intelligence_engine.py, modules/operation.py, modules/planner.py, modules/playbook_engine.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/integration_autonomous_flow.py, tests/test_core_modules.py, tests/test_daemon_loop.py, tests/test_phase1_data_gaps.py
Observation.by_type(method)modules/obs_parser.py:83def by_type(self, ftype)Observation.has(method)modules/obs_parser.py:86def has(self, ftype)Extractor.extract(method)modules/obs_parser.py:99def extract(self, text, host)-- Return all findings of this type found in text._ExtractorRegistry.__init__(method)modules/obs_parser.py:106def __init__(self)_ExtractorRegistry.register(method)modules/obs_parser.py:109def register(self, extractor)_ExtractorRegistry.run_all(method)modules/obs_parser.py:112def run_all(self, text, host)_IPExtractor.extract(method)modules/obs_parser.py:134def extract(self, text, host)_CredentialExtractor.extract(method)modules/obs_parser.py:175def extract(self, text, host)_ServiceVersionExtractor.extract(method)modules/obs_parser.py:198def extract(self, text, host)_PathExtractor.extract(method)modules/obs_parser.py:224def extract(self, text, host)_UsernameExtractor.extract(method)modules/obs_parser.py:245def extract(self, text, host)_HashExtractor.extract(method)modules/obs_parser.py:271def extract(self, text, host)_CVEExtractor.extract(method)modules/obs_parser.py:288def extract(self, text, host)_DomainExtractor.extract(method)modules/obs_parser.py:305def extract(self, text, host)_EmailExtractor.extract(method)modules/obs_parser.py:323def extract(self, text, host)_ErrorExtractor.extract(method)modules/obs_parser.py:345def extract(self, text, host)_CloudIdentityExtractor.extract(method)modules/obs_parser.py:367def extract(self, text, host)_SuccessDetector.is_success(method)modules/obs_parser.py:407def is_success(self, text)ObsParser.__init__(method)modules/obs_parser.py:431def __init__(self)ObsParser.register(method)modules/obs_parser.py:450def register(self, extractor)-- Register an additional Extractor (Open/Closed extension point).ObsParser.parse(method)modules/obs_parser.py:454def parse(self, output, host, tool)-- Parse output and return an Observation.get_parser(function)modules/obs_parser.py:500def get_parser()-- Return (or create) the module-level singleton ObsParser.parse(function)modules/obs_parser.py:508def parse(output, host, tool)-- Module-level convenience wrapper.
modules/operation.py
Depends on: cli/commands/enum.py, core/logging.py, modules/apt_playbooks.py, modules/obs_parser.py, modules/playbook_engine.py, modules/world_model.py
Imported by: cli/commands/caldera.py
Operation.to_dict(method)modules/operation.py:98def to_dict(self)Operation.from_dict(method)modules/operation.py:116def from_dict(cls, d)Operation.save(method)modules/operation.py:134def save(self)Operation.log_event(method)modules/operation.py:143def log_event(self, step_index, step_name, status, summary, findings_count, error)Operation.record_facts(method)modules/operation.py:164def record_facts(self, findings)OperationManager.__init__(method)modules/operation.py:183def __init__(self)OperationManager.list(method)modules/operation.py:187def list(self)-- List all persisted operations.OperationManager.get(method)modules/operation.py:199def get(self, op_id)OperationManager.create(method)modules/operation.py:206def create(self, name, target, apt_name, description)-- Create a new planned operation.OperationManager.plan_from_apt(method)modules/operation.py:225def plan_from_apt(self, op, playbook_yaml_path)-- Populate steps from an APT playbook YAML (or fall back to a derived MITRE playbook).OperationManager.start(method)modules/operation.py:287def start(self, op_id, executor)-- Start or resume a planned operation.OperationManager.pause(method)modules/operation.py:369def pause(self, op_id)OperationManager.resume(method)modules/operation.py:378def resume(self, op_id, executor)OperationManager.stop(method)modules/operation.py:386def stop(self, op_id)OperationManager.status(method)modules/operation.py:396def status(self, op_id)-- Return a structured status dict for an operation.OperationManager.timeline(method)modules/operation.py:425def timeline(self, op_id)OperationManager.report(method)modules/operation.py:431def report(self, op_id)get_manager(function)modules/operation.py:471def get_manager()-- Return a fresh :class:OperationManager.
modules/operator_profiles.py
Depends on: core/config.py, core/logging.py
Imported by: cli/commands/automation.py
OperatorProfile.to_dict(method)modules/operator_profiles.py:57def to_dict(self)OperatorProfileManager.__init__(method)modules/operator_profiles.py:88def __init__(self)OperatorProfileManager.create_profile(method)modules/operator_profiles.py:192def create_profile(self, username, display_name, role, lhost, lport, listener_port, c2_port, c2_malleable_route...-- Create a new operator profile.OperatorProfileManager.load_profile(method)modules/operator_profiles.py:260def load_profile(self, username)-- Load an operator profile.OperatorProfileManager.update_profile(method)modules/operator_profiles.py:276def update_profile(self, username)-- Update fields on an existing profile.OperatorProfileManager.delete_profile(method)modules/operator_profiles.py:289def delete_profile(self, username)-- Delete an operator profile and its directory.OperatorProfileManager.list_profiles(method)modules/operator_profiles.py:300def list_profiles(self)-- Return all operator profiles.OperatorProfileManager.touch_activity(method)modules/operator_profiles.py:312def touch_activity(self, username)-- Update last_active timestamp.OperatorProfileManager.set_attribute(method)modules/operator_profiles.py:319def set_attribute(self, username, key, value)-- Set a custom attribute on an operator profile.OperatorProfileManager.get_attribute(method)modules/operator_profiles.py:328def get_attribute(self, username, key, default)-- Get a custom attribute from an operator profile.OperatorProfileManager.log_action(method)modules/operator_profiles.py:335def log_action(self, username, action, details)-- Append an audited action to the operator's audit log.OperatorProfileManager.effective_config(method)modules/operator_profiles.py:360def effective_config(self, username)-- Merge team baseline (payload.json) with per-operator overrides.get_operator_profile_manager(function)modules/operator_profiles.py:398def get_operator_profile_manager()-- Return the singleton :class:OperatorProfileManager.
modules/opsec_scorer.py
Depends on: cli/commands/enum.py, core/config.py, core/logging.py, modules/db.py, modules/killchain.py
Imported by: cli/commands/opsec_cleanup.py, cli/commands/security.py, tests/test_opsec_scorer.py, tests/test_opsec_scorer_consolidated.py
OpsecScore.to_dict(method)modules/opsec_scorer.py:288def to_dict(self)-- Return the score serialized as a plain dictionary.OpsecScorer.__init__(method)modules/opsec_scorer.py:343def __init__(self, payload, world_model)OpsecScorer.evasion_active(method)modules/opsec_scorer.py:352def evasion_active(self)OpsecScorer.traffic_morphing_active(method)modules/opsec_scorer.py:357def traffic_morphing_active(self)OpsecScorer.score(method)modules/opsec_scorer.py:365def score(self, command, rhost, phase_override)-- Score an OPSEC risk forcommandagainstrhost.OpsecScorer.score_batch(method)modules/opsec_scorer.py:413def score_batch(self, commands, rhost)-- Score multiple commands and return {command: OpsecScore}.OpsecScorer.suggest_mitigations(method)modules/opsec_scorer.py:417def suggest_mitigations(self, command, detectable_by)-- Return mitigation suggestions for a given command.OpsecScorerV2.__init__(method)modules/opsec_scorer.py:617def __init__(self, context)OpsecScorerV2.assess(method)modules/opsec_scorer.py:622def assess(self, command, extra_context)-- Assess OPSEC risk for a command in the current context.OpsecScorerV2.should_allow(method)modules/opsec_scorer.py:696def should_allow(self, command)-- Quick gating check - returns (allowed, score).OpsecScorerV2.get_trend(method)modules/opsec_scorer.py:709def get_trend(self)-- Analyze OPSEC risk trend over the session.score_command(function)modules/opsec_scorer.py:811def score_command(command, payload, rhost)-- Convenience function: score a single command without creating a scorer instance.
modules/orchestrator_config.py
Depends on: core/config.py, modules/auto_registry.py
Imported by: cli/commands/lazyops.py, cli/lazy_orchestrator.py, modules/auto_registry.py, modules/lazy_loop.py, modules/loop_ai_bridge.py, tests/test_lazy_orchestrator.py
stages(function)modules/orchestrator_config.py:105def stages()-- Merged stage view: enabled flag, label and firing condition.stage_enabled(function)modules/orchestrator_config.py:130def stage_enabled(name)-- Return whether one pipeline stage is enabled (unknown = enabled).set_stage(function)modules/orchestrator_config.py:136def set_stage(name, enabled)-- Persist the enabled flag of one stage.effective_verbs(function)modules/orchestrator_config.py:161def effective_verbs()-- Merged auto-verb view: built-ins plus operator overrides and additions.verb_config(function)modules/orchestrator_config.py:218def verb_config(name)-- Return the merged configuration of one auto verb, or None.verb_enabled(function)modules/orchestrator_config.py:227def verb_enabled(name)-- Return whether one auto verb may be proposed or executed.upsert_verb(function)modules/orchestrator_config.py:233def upsert_verb(name)-- Create or update one auto-verb override in the payload.remove_verb(function)modules/orchestrator_config.py:290def remove_verb(name)-- Remove a custom verb, or disable a built-in one.reset(function)modules/orchestrator_config.py:315def reset()-- Drop every orchestrator override (back to defaults).
modules/osint_enrich.py
Imported by: modules/finding_lifecycle.py, tests/test_finding_lifecycle.py
cve_lookup(function)modules/osint_enrich.py:122def cve_lookup(cve_id, sessions_dir)-- Assemble OSV advisory + KEV flag + EPSS score for one CVE id.reverse_dns(function)modules/osint_enrich.py:161def reverse_dns(ip, sessions_dir)-- Best-effort PTR hostname for an IP (HackerTarget, then DoH).host_geo(function)modules/osint_enrich.py:183def host_geo(ip, sessions_dir)-- Country/org/ISP for an IP via the keyless ip-api endpoint.domain_exposure(function)modules/osint_enrich.py:198def domain_exposure(domain, sessions_dir)-- Count public urlscan.io results for a domain (no key needed).enrich_evidence(function)modules/osint_enrich.py:213def enrich_evidence(items, sessions_dir)-- Append keyless OSINT verdicts to CVE mentions inside evidence items.
modules/payload_factory.py
Imported by: cli/commands/misc_migrated.py, cli/commands/payload_generation.py, cli/commands/session_ops.py, lazyown.py, scripts/devtools/core_smoke.py, tests/test_payload_factory.py
PayloadTemplate.__init__(method)modules/payload_factory.py:222def __init__(self, name, platform, arch, description, options)PayloadTemplate.generate(method)modules/payload_factory.py:237def generate(self)-- Generate the raw payload bytes.PayloadTemplate.to_dict(method)modules/payload_factory.py:241def to_dict(self)ReverseShellPayload.__init__(method)modules/payload_factory.py:254def __init__(self)ReverseShellPayload.generate(method)modules/payload_factory.py:272def generate(self)WindowsReverseShellPayload.__init__(method)modules/payload_factory.py:293def __init__(self)WindowsReverseShellPayload.generate(method)modules/payload_factory.py:305def generate(self)MsfvenomPayload.__init__(method)modules/payload_factory.py:325def __init__(self, name, platform, arch)MsfvenomPayload.generate(method)modules/payload_factory.py:337def generate(self)ShellcodePayload.__init__(method)modules/payload_factory.py:374def __init__(self, name, platform, arch, description, escaped_hex, patcher)ShellcodePayload.generate(method)modules/payload_factory.py:397def generate(self)-- Return the shellcode, optionally patching LHOST / LPORT.DynamicShellcodePayload.__init__(method)modules/payload_factory.py:416def __init__(self, name, platform, arch, description, builder)DynamicShellcodePayload.generate(method)modules/payload_factory.py:436def generate(self)PayloadFactory.__init__(method)modules/payload_factory.py:464def __init__(self)PayloadFactory.register(method)modules/payload_factory.py:512def register(self, template)-- Register a custom payload template.PayloadFactory.list(method)modules/payload_factory.py:516def list(self, platform)-- List all registered payloads, optionally filtered by platform.PayloadFactory.get(method)modules/payload_factory.py:525def get(self, name)-- Get a payload template by name.PayloadFactory.generate(method)modules/payload_factory.py:529def generate(self, name, format, output)-- Generate a payload by name.PayloadFactory.list_formats(method)modules/payload_factory.py:664def list_formats()-- List all available output formats.format_payload_table(function)modules/payload_factory.py:672def format_payload_table(payloads)-- Format a list of payload dicts as an aligned table.
modules/phishing_orchestrator.py
Depends on: core/crypto.py, core/hardening.py
Imported by: cli/commands/phishing_wizard.py, tests/test_security_hardening_v3.py, tests/test_security_hardening_v5.py
PhishingOrchestrator.__init__(method)modules/phishing_orchestrator.py:316def __init__(self)PhishingOrchestrator.get_instance(method)modules/phishing_orchestrator.py:321def get_instance(cls)PhishingOrchestrator.launch(method)modules/phishing_orchestrator.py:332def launch(self, target_domain, template, mode, targets_file, sender_email, sender_password, smtp_host, smtp_port)-- Launch a phishing campaign.PhishingOrchestrator.profile_targets(method)modules/phishing_orchestrator.py:441def profile_targets(self, domain)-- Profile targets for a domain using OSINT techniques.PhishingOrchestrator.generate_template(method)modules/phishing_orchestrator.py:486def generate_template(self, name, target_domain, context)-- Generate or retrieve a phishing template.PhishingOrchestrator.clone_landing_page(method)modules/phishing_orchestrator.py:533def clone_landing_page(self, url)-- Clone a target login page for credential harvesting.PhishingOrchestrator.get_results(method)modules/phishing_orchestrator.py:560def get_results(self, campaign_id)-- Get campaign results.PhishingOrchestrator.record_click(method)modules/phishing_orchestrator.py:584def record_click(self, campaign_id, email)-- Record a link click.PhishingOrchestrator.record_credentials(method)modules/phishing_orchestrator.py:605def record_credentials(self, campaign_id, email, password)-- Record harvested credentials.
modules/pipeline_engine.py
Depends on: core/logging.py, modules/engagement_hooks.py, skills/autonomous_daemon.py
Imported by: cli/commands/session_ops.py, modules/playbook_executor.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/test_pipeline_engine.py
StepResult.to_context(method)modules/pipeline_engine.py:180def to_context(self)-- Render the step result as a dict for template lookups.PipelineRun.to_dict(method)modules/pipeline_engine.py:213def to_dict(self)-- Return a JSON-friendly representation of the full run.TemplateResolver.__init__(method)modules/pipeline_engine.py:275def __init__(self, context)TemplateResolver.render(method)modules/pipeline_engine.py:278def render(self, template)TemplateResolver.resolve(method)modules/pipeline_engine.py:289def resolve(self, dotted_path)-- Return the value at dotted_path or None when not found.ConditionEvaluator.is_truthy(method)modules/pipeline_engine.py:330def is_truthy(rendered)StepValidator.validate(method)modules/pipeline_engine.py:352def validate(predicate, output)StepDerivers.register(method)modules/pipeline_engine.py:389def register(cls, command, deriver)-- Bind a deriver to a top-level command name (case-insensitive).StepDerivers.derive(method)modules/pipeline_engine.py:396def derive(cls, command, output)-- Run the registered deriver for command on output, defensive.IStepRunner.run(method)modules/pipeline_engine.py:513def run(self, command, args, target, timeout_s)-- Execute one command.LazyOwnStepRunner.__init__(method)modules/pipeline_engine.py:537def __init__(self, runner, onecmd)LazyOwnStepRunner.run(method)modules/pipeline_engine.py:548def run(self, command, args, target, timeout_s)PipelineLoader.__init__(method)modules/pipeline_engine.py:638def __init__(self, pipelines_dir)PipelineLoader.pipelines_dir(method)modules/pipeline_engine.py:642def pipelines_dir(self)PipelineLoader.list(method)modules/pipeline_engine.py:645def list(self)-- Return every pipeline name discoverable in pipelines_dir.PipelineLoader.resolve_path(method)modules/pipeline_engine.py:658def resolve_path(self, name)-- Return the absolute path to the YAML file for the given name.PipelineLoader.load(method)modules/pipeline_engine.py:683def load(self, name)-- Parse the YAML file for name and return a validated spec.RunArtifactStore.__init__(method)modules/pipeline_engine.py:778def __init__(self, runs_dir)RunArtifactStore.runs_dir(method)modules/pipeline_engine.py:782def runs_dir(self)RunArtifactStore.open_run(method)modules/pipeline_engine.py:785def open_run(self, pipeline_name, run_id)-- Create and return the directory for this run.RunArtifactStore.write_plan(method)modules/pipeline_engine.py:797def write_plan(self, run_dir, spec)RunArtifactStore.write_step(method)modules/pipeline_engine.py:814def write_step(self, run_dir, result)RunArtifactStore.write_summary(method)modules/pipeline_engine.py:828def write_summary(self, run_dir, run)INarratorAdapter.narrate(method)modules/pipeline_engine.py:852def narrate(self, kind, target, message, payload, severity)-- Emit one narration event._SilentNarrator.narrate(method)modules/pipeline_engine.py:864def narrate(self)EngagementNarratorAdapter.__init__(method)modules/pipeline_engine.py:871def __init__(self, narrator)EngagementNarratorAdapter.narrate(method)modules/pipeline_engine.py:881def narrate(self, kind, target, message, payload, severity)PipelineEngine.__init__(method)modules/pipeline_engine.py:927def __init__(self, runner, loader, artifact_store, narrator, max_nesting)PipelineEngine.loader(method)modules/pipeline_engine.py:942def loader(self)PipelineEngine.validate(method)modules/pipeline_engine.py:945def validate(self, name)-- Load and validate without executing.PipelineEngine.run(method)modules/pipeline_engine.py:949def run(self, name, target, nesting_stack)-- Execute the pipeline.get_default_engine(function)modules/pipeline_engine.py:1300def get_default_engine(onecmd)-- Process-wide default engine for production callers.mcp_pipeline_run(function)modules/pipeline_engine.py:1314def mcp_pipeline_run(name, target, background, onecmd)-- Public MCP / CLI entry: run a pipeline.mcp_pipeline_list(function)modules/pipeline_engine.py:1368def mcp_pipeline_list()-- Return the list of available pipelines under pipelines/.mcp_pipeline_validate(function)modules/pipeline_engine.py:1385def mcp_pipeline_validate(name)-- Validate a pipeline's YAML schema without executing it.mcp_pipeline_status(function)modules/pipeline_engine.py:1414def mcp_pipeline_status(last_n)-- Return the N most recent pipeline runs and their summaries.cmd_pipeline(function)modules/pipeline_engine.py:1436def cmd_pipeline(action, name, target, background)-- CLI helper bound to thepipelinedaemon subcommand.
modules/planner.py
Depends on: core/logging.py, modules/llm_client.py, modules/obs_parser.py, modules/playbook_engine.py, modules/world_model.py
Imported by: cli/commands/caldera.py, cli/commands/session_ops.py, skills/autonomous_daemon.py, skills/lazyown_mcp.py, tests/test_autonomous_ops.py, tests/test_daemon_loop.py, tests/test_engage_gates.py, tests/test_lazy_parity.py
Planner.__init__(method)modules/planner.py:269def __init__(self, world_model, obs_parser, api_key)Planner.plan(method)modules/planner.py:313def plan(self, target, max_candidates)-- Return a ranked list of next-step candidates for target.Planner.to_dict(method)modules/planner.py:413def to_dict(self, result)get_planner(function)modules/planner.py:446def get_planner(api_key)-- Return a fact-based planner with an optional LLM tie-break key.TodoList.__init__(method)modules/planner.py:468def __init__(self)-- Initialize an empty todo sequence.TodoList.todo_add(method)modules/planner.py:472def todo_add(self, name, requires)-- Append a step and return it.TodoList.todo_done(method)modules/planner.py:478def todo_done(self, name)-- Mark a step done when its requirements hold.TodoList.next_ready(method)modules/planner.py:489def next_ready(self)-- Return the first pending step whose requirements hold.TodoList.blocks(method)modules/planner.py:497def blocks(self, tactic)-- Return True when a tactic must wait for an unfinished chain.Frontier.__init__(method)modules/planner.py:514def __init__(self, planner, todos)-- Bind the frontier to a planner and an optional todo list.Frontier.todos(method)modules/planner.py:523def todos(self)-- Expose the shared todo list.Frontier.tried(method)modules/planner.py:528def tried(self)-- Return the tried technique identifiers.Frontier.refill(method)modules/planner.py:532def refill(self, target, max_intents)-- Plan fresh intents, keeping only untried and unblocked ones.Frontier.pop(method)modules/planner.py:551def pop(self)-- Claim the oldest queued intent and mark its technique tried.
modules/playbook_engine.py
Depends on: core/logging.py, core/safe_exec.py, modules/llm_client.py, modules/obs_parser.py, modules/world_model.py
Imported by: cli/commands/caldera.py, cli/commands/mcp_bridge.py, modules/operation.py, modules/planner.py, skills/lazyown_mcp.py, tests/test_core_modules.py
PlaybookStep.to_dict(method)modules/playbook_engine.py:113def to_dict(self)PlaybookStep.from_dict(method)modules/playbook_engine.py:128def from_dict(cls, d)Playbook.to_dict(method)modules/playbook_engine.py:141def to_dict(self)Playbook.from_dict(method)modules/playbook_engine.py:152def from_dict(cls, d)_StixLoader.__init__(method)modules/playbook_engine.py:188def __init__(self, json_path)_StixLoader.available(method)modules/playbook_engine.py:192def available(self)_StixLoader.store(method)modules/playbook_engine.py:195def store(self)_StixLoader.techniques_for_tactics(method)modules/playbook_engine.py:210def techniques_for_tactics(self, tactic_shortnames, platform)-- Return ATT&CK techniques matching the given tactic shortnames._AtomicIndex.__init__(method)modules/playbook_engine.py:260def __init__(self, atomics_path)_AtomicIndex.available(method)modules/playbook_engine.py:264def available(self)_AtomicIndex.build(method)modules/playbook_engine.py:267def build(self)_AtomicIndex.tests_for_technique(method)modules/playbook_engine.py:300def tests_for_technique(self, technique_id, platform)_TechniqueSelector.select(method)modules/playbook_engine.py:317def select(self, candidates, world_context, target, phase, api_key, top_n)PlaybookEngine.__init__(method)modules/playbook_engine.py:387def __init__(self, world_model, obs_parser, api_key, top_n)PlaybookEngine.derive(method)modules/playbook_engine.py:427def derive(self, target, phase, platform, apt_name)-- Generate a Playbook for target at the given phase.PlaybookEngine.execute(method)modules/playbook_engine.py:529def execute(self, playbook, executor, dry_run)-- Execute a Playbook step by step.PlaybookEngine.save(method)modules/playbook_engine.py:590def save(self, playbook, path)-- Persist playbook to YAML (compatible with existing playbooks/ format).PlaybookEngine.load(method)modules/playbook_engine.py:602def load(self, path)-- Load a playbook from YAML.PlaybookEngine.result_summary(method)modules/playbook_engine.py:631def result_summary(self, result)-- Return a human-readable / LLM-readable summary of a PlaybookResult.get_engine(function)modules/playbook_engine.py:660def get_engine(api_key)-- Return (or create) the module-level singleton PlaybookEngine.
modules/playbook_executor.py
Depends on: modules/pipeline_engine.py
PlaybookRunResult.to_dict(method)modules/playbook_executor.py:74def to_dict(self)ITTPMapper.resolve(method)modules/playbook_executor.py:97def resolve(self, technique_id, atomic_test, platform)-- Return a LazyOwn shell command string or None if unmapped.DefaultTTPMapper.register(method)modules/playbook_executor.py:180def register(cls, technique_id, platform, command)-- Add a new technique-to-command mapping.DefaultTTPMapper.resolve(method)modules/playbook_executor.py:185def resolve(self, technique_id, atomic_test, platform)PlaybookLoader.__init__(method)modules/playbook_executor.py:208def __init__(self, playbooks_dir)PlaybookLoader.list(method)modules/playbook_executor.py:211def list(self)-- Return every discoverable playbook name.PlaybookLoader.load(method)modules/playbook_executor.py:224def load(self, name)-- Load and validate a playbook by name.PlaybookEngine.__init__(method)modules/playbook_executor.py:339def __init__(self, loader, mapper, pipelines_dir)PlaybookEngine.loader(method)modules/playbook_executor.py:350def loader(self)PlaybookEngine.analyze(method)modules/playbook_executor.py:353def analyze(self, name, platform)-- Analyze a playbook: count techniques, automated vs manual, coverage.PlaybookEngine.generate_pipeline(method)modules/playbook_executor.py:378def generate_pipeline(self, name, platform)-- Generate a pipeline YAML file from a playbook.PlaybookEngine.run(method)modules/playbook_executor.py:390def run(self, name, platform, target, onecmd)-- Generate and execute a pipeline from a playbook.playbook_list(function)modules/playbook_executor.py:416def playbook_list()-- Return a JSON array of available playbooks.playbook_analyze(function)modules/playbook_executor.py:422def playbook_analyze(name, platform)-- Return a JSON summary of one playbook.playbook_generate(function)modules/playbook_executor.py:429def playbook_generate(name, platform)-- Generate a runnable pipeline from a playbook.playbook_run(function)modules/playbook_executor.py:436def playbook_run(name, platform, target, onecmd)-- Analyze, generate, and execute a playbook.
modules/polymorphic_engine.py
Imported by: cli/commands/payload_arsenal.py
PolymorphicEngine.__init__(method)modules/polymorphic_engine.py:159def __init__(self, config)PolymorphicEngine.mutate(method)modules/polymorphic_engine.py:163def mutate(self, shellcode, arch)-- Apply all configured mutation passes to shellcode.PolymorphicEngine.decode_xor(method)modules/polymorphic_engine.py:361def decode_xor(data)-- Decode single-byte XOR encrypted shellcode.PolymorphicEngine.decode_multi_xor(method)modules/polymorphic_engine.py:377def decode_multi_xor(data)-- Decode multi-byte XOR encrypted shellcode.PolymorphicEngine.generate_decoder_stub(method)modules/polymorphic_engine.py:397def generate_decoder_stub(self, arch)-- Generate a self-decrypting stub shellcode template.PolymorphicEngine.get_audit_summary(method)modules/polymorphic_engine.py:422def get_audit_summary(self)-- Return a summary of all mutations applied.
modules/privesc_predictor.py
Depends on: core/console.py, modules/llm_factory.py
Imported by: cli/commands/crystal_ball.py
parse_linpeas_output(function)modules/privesc_predictor.py:165def parse_linpeas_output(text)-- Extract a structured SystemProfile from linpeas output text.parse_winpeas_output(function)modules/privesc_predictor.py:218def parse_winpeas_output(text)-- Extract a structured SystemProfile from winpeas output text.match_known_cves(function)modules/privesc_predictor.py:249def match_known_cves(profile)-- Match kernel version against the built-in CVE database.suid_vectors(function)modules/privesc_predictor.py:287def suid_vectors(profile)-- Generate privilege escalation vectors from SUID binaries.capability_vectors(function)modules/privesc_predictor.py:361def capability_vectors(profile)-- Generate privilege escalation vectors from Linux capabilities.group_vectors(function)modules/privesc_predictor.py:463def group_vectors(profile)-- Generate privilege escalation vectors from group memberships.sudo_vectors(function)modules/privesc_predictor.py:501def sudo_vectors(profile)-- Generate privilege escalation vectors from sudo rules.cron_vectors(function)modules/privesc_predictor.py:578def cron_vectors(profile)-- Generate vectors from writable cron jobs and PATH manipulation.analyze_privesc(function)modules/privesc_predictor.py:742def analyze_privesc(filepath, text)-- Main entry point — analyse a system for privilege escalation vectors.format_crystal_ball_output(function)modules/privesc_predictor.py:827def format_crystal_ball_output(result)-- Format the analysis result as a human-readable terminal report.main(function)modules/privesc_predictor.py:908def main()-- CLI entry point for crystal ball privesc analysis.
Next: API_p15.md