debundle
1.0.0

这是一种构建的工具,用于解开WebPack和浏览审慎的JavaScript捆绑包。
这是一个不再维护的研究项目。我构建的目的是帮助我了解JavaScript捆绑包。它大部分时间都在缩写环境中起作用,但经常在现实世界中的JavaScript捆绑包上失败。自从我从事这个项目以来已经有一段时间了,因此,如果您遇到问题,我可能真的无法为您提供那么多的帮助。
原因有所不同,但最初开发了此工具是为了帮助我进行逆向工程项目。不用说,筛选缩小捆绑包以尝试找出服务的工作原理并不有趣,并且当该捆绑包分解为文件并且这些文件具有语义名称时,要容易得多。
npm i -g debundle
$ debundle
Usage: debundle [input file] {OPTIONS}
Options:
--input, -i Bundle to debundle
--output, -o Directory to debundle code into.
--config, -c Configuration file
$ curl https://raw.githubusercontent.com/1egoman/debundle/master/test_bundles/browserify/bundle.js > bundle.js
$ curl https://raw.githubusercontent.com/1egoman/debundle/master/test_bundles/browserify/debundle.config.json > debundle.config.json
$ cat debundle.config.json
{
" type " : " browserify " ,
" knownPaths " : {}
}
$ debundle -i bundle.js -o dist/ -c debundle.config.json
$ tree dist/
dist/
├── index.js
└── node_modules
├── number
│ └── index.js
└── uuid
├── index.js
├── lib
│ ├── bytesToUuid.js
│ └── rng.js
├── v1.js
└── v4.js
4 directories, 7 files {
"type": "browserify",
"entryPoint": 1,
"knownPaths": {}
}
(要讨论一个简单的WebPack捆绑包, browserify用webpack替换上面的配置)
配置可以具有许多标志 - 它们已记录在Docs.md中。
不。捆绑时有一堆元数据丢失了:
node_module和root软件包的任何自定义package.json 。1.js )命名的文件。不正式。但是,如果捆绑包共享与浏览或webpack相同类型的模块布局,则可能可以设置模块式配置选项,以指向模块的位置。
npm install - 应该是这样。./src/index.js (这就是您运行的方式!)test_bundles/ 。脚本, test_bundles/run_test.sh可以通过给定的捆绑包运行Debundler,并尝试将其折叠到dist/ 。 (作为运行测试的一部分,CI将在该文件夹中讨论所有捆绑包。)npm test一些公司在服务条款上指定其代码不能“反向工程”。绝对可以(取决于您的使用方式)肯定会属于该保护伞。了解您在做什么,因此您不会达成任何协议?