{{ message }}
Repository navigation
Tags: mandiant/speakeasy
Tags
Event provenance: NULL target pid when the target is the actor itself The pid payload added in d43f82e was documented as "NULL when the target is the actor itself", but record_process_event always copied proc.id, so a purely local VirtualAlloc or CreateThread looked identical to a cross-process operation. Null the payload centrally in record_process_event when the target process matches the actor's pos.pid, so a populated pid always means the operation crossed a process boundary. Thread events keep tid, which is real data (the created thread) even for a local create. - profiler.py: pid payload is None when proc.id == pos.pid. - profiler_events.py: ThreadInjectEvent.pid documents the NULL case, matching the other process-scoped events. - doc/reporting.md: event examples show the actor in pos with the target as a pid payload, including the local (omitted pid) cases; report_version in the examples refreshed to 4.0.0. - tests: local vs cross-process pid payloads for mem_alloc, thread_create, and thread_inject. get_json_report uses exclude_none, so a local operation omits the pid key entirely rather than emitting an explicit null. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PreviousNext
