工具
sourcemapper 源映射源码还原工具
Go 编写的命令行工具,可根据 webpack 等打包工具生成的源映射(source map)重建网站前端原有的 JavaScript 源码目录树,并把映射中内嵌的每个源文件写到其记录的路径下。它可通过 URL 或本地路径读取 .map 文件,递归处理整个目录中的 .map 文件,也可抓取 JavaScript 文件并跟随其中的 sourceMappingURL 注释或 SourceMap 响应头,内联的 data: 映射同样支持。
使用条件与局限
- 该项目不发布任何版本或标签。README 给出的安装方式为 go install、克隆后自行构建或使用 BlackArch 软件包;go.mod 声明 Go 1.16,且不依赖任何第三方模块。所审阅的 master 提交日期为 2026-07-24,该版本还加入了 -dir 批量模式,并拒绝读取远程 sourceMappingURL 所指向的本地路径。
- 每次运行只能指定 -url、-jsurl 或 -dir 之一,且必须给出 -output。远程抓取时可附加请求头、经由代理或跳过 TLS 证书校验。README 提醒,使用 -jsurl 解析的 JavaScript 文件可让 sourcemapper 向其声明为源映射的任意 URL 发出 GET 请求。
- 输入应为使用者有权查看的源映射。工具只读取映射中的 version、sources 和 sourcesContent 字段,因此未内嵌 sourcesContent 的映射会被拒绝,没有映射的压缩代码也不在其处理范围内;它不使用 mappings 字段,输出的是打包工具当时记录的源码文本,并未与线上部署的打包产物核对。
- 采用 BSD-3-Clause 许可。还原出的前端代码仍受网站所有者的权利约束。README 链接了 Pulse Security 2018 年的一篇文章,介绍在渗透测试中借助它审查前端源码的用法。本次未构建该工具,也未对任何网站运行。
关于此条目
- 类型
- 工具
- 类别
- 网站分析工具
- 关联
- 基础工具
- 目标
- 网站
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · denandz/sourcemapper · 修订 f739bd5
- README.md#L124 GitHub · denandz/sourcemapper · 修订 f739bd5
- main.go#L22-L28 GitHub · denandz/sourcemapper · 修订 f739bd5
- main.go#L290-L327 GitHub · denandz/sourcemapper · 修订 f739bd5
- go.mod GitHub · denandz/sourcemapper · 修订 f739bd5
- LICENSE GitHub · denandz/sourcemapper · 修订 f739bd5
- https://pulsesecurity.co.nz/articles/javascript-from-sourcemaps