You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器内存Dump及内存中指定数据读取技术求助

Docker容器内存Dump及敏感数据提取方案

宿主机端操作步骤

  • 获取目标容器的宿主机PID:
    docker inspect --format '{{.State.Pid}}' <容器名称/ID>
    
  • 执行内存Dump(需root权限):
    推荐使用gcore生成完整core文件,兼容性更好:
    gcore -o container_memory_dump <容器宿主机PID>
    
    若系统无gcore,可通过/proc文件系统直接读取(需确保进程处于运行状态):
    dd if=/proc/<容器宿主机PID>/mem of=container_memory_dump bs=1M
    

容器内部操作步骤

  • 进入容器交互式终端:
    docker exec -it <容器名称/ID> bash
    
  • 安装内存Dump工具(以Debian/Ubuntu镜像为例,Alpine替换为apk add):
    apt update && apt install -y gdb
    
  • 获取目标Python进程PID(假设run.py是运行的脚本):
    ps aux | grep run.py | grep -v grep
    
  • 执行内存Dump:
    gcore -o container_memory_dump <Python进程PID>
    

敏感数据提取方法

提取环境变量SECRET_ONE

  • 快速搜索:直接用strings工具扫描Dump文件,匹配环境变量关键字:
    strings container_memory_dump | grep SECRET_ONE
    
  • 精准查看:用gdb加载Dump文件(需对应Python版本):
    gdb python container_memory_dump
    
    在gdb交互模式下执行:
    info proc environ
    

提取run.py中my_array的值

  • 特征值搜索:如果my_array包含可识别的字符串元素,直接用strings扫描:
    strings container_memory_dump | grep "<数组元素特征字符串>"
    
  • Python内存结构分析:使用gdb的Python扩展工具(需确保gdb支持Python调试),在gdb交互模式下执行:
    py-list
    
    或通过py-bt回溯Python调用栈,定位变量所在上下文后查看具体值。
  • 专业工具提取:使用Volatility内存分析框架,加载对应Python进程的profile,通过插件直接提取Python变量:
    # Volatility3示例
    python3 vol.py -f container_memory_dump linux.python.PythonScanner
    

内容的提问来源于stack exchange,提问作者David Crook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 01:54:23