项目 Neto 是一个 Python 3 包,旨在分析和揭示 Firefox 和 Chrome 等知名浏览器的浏览器插件和扩展的隐藏特性。它自动化了解压打包文件的过程,从扩展的相关资源(如 manifest.json、本地化文件夹或 JavaScript 和 HTML 源文件)中提取这些特性。
要安装该包,用户可以选择 pip3。
pip3 install -e . --user
或者,也可以使用 sudo 以管理员权限安装:
sudo pip3 install -e .
可以使用以下命令检查安装是否成功:
python3 -c "import neto; print(neto.__version__)"
要执行扩展分析,分析员可以输入以下命令:
neto analysis -u https://yoururl.com/extension-name.xpi
该扩展将自动下载并默认解压到系统的临时文件夹中。
不过,分析员也可以针对本地存储的扩展启动分析:
neto analysis -e ./my-extension-name.xpi
执行静态分析后,会生成一个 JSON 文件,默认存储在名为 output 的新建文件夹中。
如果您使用 Python,还可以将该包作为库导入到您自己的 Python 模块中:
>>> from neto.lib.extensions import Extension
>>> my_extension = Extension ("./sample.xpi")
>>> my_extension.filename
'adblock_for_firefox-3.8.0-an+fx.xpi'
>>> my_extension.digest
'849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'
除了使用属性访问扩展中找到的元素外,分析员始终可以将其作为字典访问:
>>> my_extension.__dict__
{'_analyser_version': '0.0.1', '_digest': '849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'…
如果您不使用 Python,可以使用 JSON RPC 守护进程:
$ neto daemon
____ _ _ _ _ _
| _ \ _ __ ___ (_) ___ ___| |_ | \ | | ___| |_ ___
| |_) | '__/ _ \| |/ _ \/ __| __| | \| |/ _ \ __/ _ \
| __/| | | (_) | | __/ (__| |_ | |\ | __/ || (_) |
|_| |_| \___// |\___|\___|\__| |_| \_|\___|\__\___/
|__/
Developed by @ElevenPaths
Version: 0.5.0b
* Running on http://localhost:14041/ (Press CTRL+C to quit)
然后,您可以使用自己喜欢的 JSON RPC 库来编写客户端(我们在 bin 文件夹中编写了一个简短演示),甚至可以使用 curl:
curl --data-binary '{"id":0, "method":"remote", "params":["https://example.com/myextension.xpi"], "jsonrpc": "2.0"}' -H 'content-type:text/json;' http://localhost:14041
以下是该包所包含功能的非详尽列表:
eval()。