# sourcemapper 源映射源码还原工具

> Go 编写的命令行工具，可根据 webpack 等打包工具生成的源映射（source map）重建网站前端原有的 JavaScript 源码目录树，并把映射中内嵌的每个源文件写到其记录的路径下。它可通过 URL 或本地路径读取 .map 文件，递归处理整个目录中的 .map 文件，也可抓取 JavaScript 文件并跟随其中的 sourceMappingURL 注释或 SourceMap 响应头，内联的 data: 映射同样支持。

- 类型：工具
- 目标：网站
- 类别：网站分析工具
- 关联：基础工具
- 来源复核于：2026-10-19
- 收录于：2026-10-30
- 原始资源：<https://github.com/denandz/sourcemapper>
- 一手来源：<https://github.com/denandz/sourcemapper/blob/f739bd5dd266b0d0e2cfa17c0a132f79bd9a5ba9/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/sourcemapper/>
- 记录 JSON：<https://awesomerea.org/resources/sourcemapper/record.json>
- 英文版：[English](https://awesomerea.org/resources/sourcemapper/index.md)

## 使用条件与局限

- 该项目不发布任何版本或标签。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 年的一篇文章，介绍在渗透测试中借助它审查前端源码的用法。

## 一手来源

1. <https://github.com/denandz/sourcemapper/blob/f739bd5dd266b0d0e2cfa17c0a132f79bd9a5ba9/README.md>
2. <https://github.com/denandz/sourcemapper/blob/f739bd5dd266b0d0e2cfa17c0a132f79bd9a5ba9/README.md#L124>
3. <https://github.com/denandz/sourcemapper/blob/f739bd5dd266b0d0e2cfa17c0a132f79bd9a5ba9/main.go#L22-L28>
4. <https://github.com/denandz/sourcemapper/blob/f739bd5dd266b0d0e2cfa17c0a132f79bd9a5ba9/main.go#L290-L327>
5. <https://github.com/denandz/sourcemapper/blob/f739bd5dd266b0d0e2cfa17c0a132f79bd9a5ba9/go.mod>
6. <https://github.com/denandz/sourcemapper/blob/f739bd5dd266b0d0e2cfa17c0a132f79bd9a5ba9/LICENSE>
7. <https://pulsesecurity.co.nz/articles/javascript-from-sourcemaps>

## 同分区更多条目：网站

- [ngrev Angular 应用结构分析工具](https://awesomerea.org/zh/resources/ngrev/index.md) · 工具
- [jsluice JavaScript 静态提取工具](https://awesomerea.org/zh/resources/jsluice/index.md) · 工具
- [REstringer JavaScript 反混淆工具](https://awesomerea.org/zh/resources/restringer/index.md) · 工具
- [CRX Viewer 浏览器扩展源码查看器](https://awesomerea.org/zh/resources/crxviewer/index.md) · 工具
- [har-to-openapi：从 HAR 抓包推断 OpenAPI 文档](https://awesomerea.org/zh/resources/har-to-openapi/index.md) · 工具
- [decode-js JavaScript 反混淆 AST 工具](https://awesomerea.org/zh/resources/decode-js/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
