brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
re-sample-acquire样本现场采集(从现象到可用样本):目标没有独立进程、样本不落盘时,以「异常执行内存 + 到达该内存的执行上下文」为核心定位载体并运行时提取。 覆盖四种观测模型:Windows(VAD/线程/ETW)、Linux(VMA/BPF LSM)、macOS(Mach VM/Endpoint Security)、seL4(capability provenance)。 触发词:样本获取、现场采集、没有样本、只有现象、不落盘、无文件、注入、内存马、运行时捕获、内存提取样本。 English triggers: sample acquisition, live acquisition, no sample, fileless, injected code, memory-resident, runtime capture.
Independent GitHub snapshot · Automated classification · Original documentation governs
| 用户目的 | 路径 |
|---|---|
| 只有现象描述("某程序不落盘""行为异常"),没有样本文件 | → 步骤 1(异常执行区扫描)→ 2(执行上下文归属)→ 4(dump 整区) |
| 已知进程,但磁盘上没有样本文件(注入/内存驻留) | → 步骤 2 → 4 |
| 服务端常驻载荷(Web 中间件/Java 等,请求触发) | → 平台分支的"服务端"节(内存马) |
| 载荷疑似驱动/内核态(读写内存类外挂/rootkit) | → [[platform-windows]] 内核侧 |
| 嵌入式/微内核目标(seL4 系统) | → [[platform-sel4]](capability provenance 路线) |
| 有回连/下载行为,想拿原始样本 | → 步骤 7(网络与落盘侧) |
现场采集
├─ 已有样本文件(磁盘上有)→ 不需要本技能,直接 [[re-triage]] 初勘
├─ Windows 目标 → [[platform-windows]](VAD/region + 线程 + 模块链 + ETW/Sysmon)
├─ Linux 目标 → [[platform-linux]](VMA + mmap/mprotect 追踪 + process_vm_readv)
├─ macOS 目标 → [[platform-macos]](Mach task VM + Endpoint Security)
├─ seL4 目标 → [[platform-sel4]](capability/VSpace 审计,不是"扫描进程")
└─ 不知平台/跨平台 → 先按步骤 1 的平台无关判据走,再进对应分支
平台观测模型不同,方法不能机械翻译(下表是各分支的分工,不是同义替换):
| 平台 | 观测对象 | 事件源(trigger) | 读取(ground truth) | 权限模型 |
|---|---|---|---|---|
| Windows | 进程 VAD/region + 线程 + 模块链 | Sysmon 8/10/25、ETW(含 Threat-Intelligence)、内核回调 | VirtualQueryEx / ReadProcessMemory / PE-sieve | 管理员 + 调试权限 |
| Linux | 进程 VMA(/proc/<pid>/maps) | tracepoint/kprobe、BPF LSM(file_mprotect 等 hook) | process_vm_readv() / ptrace / gcore | ptrace access check(含 Yama) |
| macOS | Mach task + VM region | Endpoint Security(MMAP/MPROTECT/REMOTE_THREAD_CREATE/GET_TASK) | mach_vm_read / mach_vm_read_overwrite(需 task port) | SIP / Hardened Runtime / task port 授权 |
| seL4 | capability(VSpace / frame / TCB) | fault endpoint + 系统构造期记录 | 无 capability 即无访问权 | capability 制(不存在"root 全读"模型) |
RE_AUTH = owned / research)。采集动作本身(枚举、hook、读内存、dump、加载监控组件)痕迹明显,会触发反作弊 / EDR / 业务监控;生产环境或他人设备上执行属越权,先确认授权与停止条件hasherezade/pe-sieve、hasherezade/hollows_hunter),核对 release 页 sha256;验证 pe-sieve.exe /helpprocdump -ma <pid> out.dmp;验证 procdump -?/proc 解析(python3,[[re-python]])、gdb/gcore([[re-memdump]])、bpftrace/perf/BPF LSM([[re-ebpf]])、fridacat /proc/<pid>/maps | head 能看到 VMA 的地址/权限/backing pathnamelldb / vmmap / otool([[re-lldb]]、[[re-format-macho]]);Mach VM API(mach_vm_region* / mach_vm_read*,需 task port);Endpoint Security 客户端(需 entitlement 与用户授权)各步的平台对应实现见对应平台分支;此处只列做什么与判据。
VirtualQueryEx/NtQueryVirtualMemory);Linux = VMA(/proc/<pid>/maps,6.11+ 可用 PROCMAP_QUERY ioctl 高效过滤);macOS = VM region(vm_region_recurse_64/mach_vm_region*);seL4 = VSpace 映射审计(见分支)MEM_IMAGE + module stomping/DLL hollowing、COW 页仍报 MEM_IMAGE;Linux 文件背书映射被改写;macOS 文件背书 region 被 patch)VirtualQueryEx+NtQueryVirtualMemory 取映射路径与 PEB 模块链比对("有映射无模块条目"= 被摘链隐藏);Linux 用 maps 的 pathname/inode 与 ELF 磁盘副本比对;macOS 用 dyld 记录与 VM region 比对NtQueryInformationThread + ThreadQuerySetWin32StartAddress;macOS thread backtrace)→ 归属到执行区;Linux 用 /proc/<pid>/task/ 枚举线程,stat 的 wchan/state 作辅助线索,PC 与返回地址靠栈回溯(eu-stack/gdb)取/proc/<pid>/maps、PROCMAP_QUERY)、mmap/mprotect 追踪(tracepoint/kprobe/BPF LSM)、process_vm_readv 与 ptrace dump、ELF 内存-磁盘 diff、memfd 与 deleted 映射、JIT 误报mach_vm_read、Endpoint Security(MMAP/MPROTECT/REMOTE_THREAD_CREATE/GET_TASK)、Mach-O/dyld provenance、task port 与 SIP/Hardened Runtime 边界MEM_IMAGE+COW,Linux/macOS 文件背书映射被改写)SetThreadContext、借模块内跳转指令等会绕过——PC 与调用栈一起看