讲师中心 微信公众号
AI工具推荐 视频效率加速

提取内存映射中指定文件路径对应的起始地址段

夏辰吖_4342

夏辰吖_4342

发布时间:2026-07-13 23:20:21

|

489人浏览过

|

来源于php中文网

原创

提取内存映射中指定文件路径对应的起始地址段

本文介绍如何使用正则表达式从 Linux /proc/[pid]/maps 类输出中精准匹配每个共享库或可执行文件首次出现的内存地址范围(即首行映射地址),适用于逆向分析、调试和自动化内存取证场景。

本文介绍如何使用正则表达式从 linux `/proc/[pid]/maps` 类输出中精准匹配每个共享库或可执行文件首次出现的内存地址范围(即首行映射地址),适用于逆向分析、调试和自动化内存取证场景。

在 Linux 进程内存映射(如 /proc/[pid]/maps)输出中,同一文件可能被映射到多个不连续的内存区域(例如代码段 r-xp、数据段 rw-p、只读数据段 r--p 等)。若需为每个唯一文件路径提取其首次出现的内存地址范围(即该文件在映射列表中第一次被加载的起始地址段),仅靠简单匹配行尾路径是不够的——必须确保匹配的是该路径的首条记录,且地址格式合法、结构完整。

推荐使用以下增强型正则表达式(兼容 PCRE/Python/JavaScript 等主流引擎):

^([a-f0-9]{8}-[a-f0-9]{8})\s+[rwxp-]{4}\s+[a-f0-9]{8}\s+[a-f0-9]{2}:[a-f0-9]{2}\s+\d+\s+(\/(?:bin|lib|usr\/lib|etc|sbin|opt\/.*|var\/lib)\/[^[:space:]]+)$

关键设计说明

  • ^([a-f0-9]{8}-[a-f0-9]{8}):捕获 8 位十六进制起始地址 + - + 8 位结束地址(如 b3f35000-b3f36000),严格限定长度,避免误匹配长哈希或 UUID;
  • \s+[rwxp-]{4}:匹配权限字段(如 r-xp),支持任意顺序但要求恰好 4 个字符;
  • \s+[a-f0-9]{8}:匹配 offset 字段(8 位十六进制);
  • \s+[a-f0-9]{2}:[a-f0-9]{2}:匹配 device 字段(主次设备号);
  • \s+\d+:匹配 inode 编号;
  • \s+(\/(?:...)\S+):路径部分采用 \S+ 替代模糊的 [^.]*,更鲁棒地支持含多级点号的文件名(如 libcrashlog.so.0.0.0),同时限定路径以 / 开头、不含空白符。

? 使用示例(Python)

import re

text = """7d60f000-7d67b000 r-xp 00000000 fb:00 11         /bin/busybox.nosuid
7d68b000-7d68c000 r--p 0006c000 fb:00 11         /bin/busybox.nosuid
...
b3f47000-b3f5d000 r-xp 00000000 fb:00 1628       /lib/ld-2.31.so"""

pattern = r'^([a-f0-9]{8}-[a-f0-9]{8})\s+[rwxp-]{4}\s+[a-f0-9]{8}\s+[a-f0-9]{2}:[a-f0-9]{2}\s+\d+\s+(\/(?:bin|lib|usr\/lib|etc|sbin|opt|var\/lib)\/\S+)$'
matches = {}
for line in text.splitlines():
    m = re.match(pattern, line.strip())
    if m:
        addr, path = m.groups()
        # 仅保留每个路径的首次匹配(自动去重)
        if path not in matches:
            matches[path] = addr

for path, addr in matches.items():
    print(f"{path} → {addr}")

⚠️ 注意事项

  • 该正则默认区分大小写,而实际 /proc/maps 中地址均为小写,建议添加 re.IGNORECASE 标志以增强兼容性(尽管输入通常全小写);
  • 路径白名单 (?:bin|lib|usr/lib|...) 可根据目标系统扩展(如加入 home/username/.local/lib),避免匹配伪文件(如 [heap]、[stack]、[vdso]);
  • 若需处理 64 位系统(地址为 16 进制 16 位,如 7f8b3a123000-7f8b3a124000),应将 {8} 改为 {16} 并启用 re.ASCII 模式;
  • 不可依赖行序稳定性:/proc/[pid]/maps 的顺序由内核决定,但同一文件的首次映射始终是其可执行段(r-xp),因此本正则优先匹配 r-xp 行(可通过在权限组后加 (?=r-xp) 正向先行断言进一步强化)。

通过此方案,你可在 Shell、Python、Perl 或任何支持 PCRE 的工具中一键提取各动态库/二进制文件的基地址段,为符号解析、内存补丁或崩溃分析提供可靠输入。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

相关专题

更多
Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

0

2026.09.21

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

0

2026.09.21

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

0

2026.09.21

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

0

2026.09.21

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

0

2026.09.21

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

20

2026.09.20

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

0

2026.09.20

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

200

2026.09.16

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

100

2026.09.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn