JsDeObsBench
收藏资源简介:
JsDeObsBench是一个针对JavaScript代码去混淆的大规模执行可验证数据集,包含36260个唯一的混淆JS程序和4515个恶意混淆JS程序。数据集是通过将常见混淆变换应用于多样化的JS程序构建而成,然后经过数据清洗以确保程序的执行性、长度适宜性以及功能唯一性。JsDeObsBench还包括一个自动化的评估流程,配备有四个全面的评估器,用于评估去混淆效果、代码简化程度和代码可读性。
JsDeObsBench is a large-scale execution-verifiable dataset for JavaScript code deobfuscation. It contains 36,260 unique obfuscated JavaScript programs and 4,515 maliciously obfuscated JavaScript programs. The dataset is constructed by applying common obfuscation transformations to diverse JavaScript programs, followed by data cleaning to ensure the executability, appropriate length, and functional uniqueness of the programs. JsDeObsBench also includes an automated evaluation pipeline equipped with four comprehensive evaluators for assessing deobfuscation effectiveness, code simplification degree, and code readability.
JsDeObsBench 数据集概述
数据集简介
- 名称: JsDeObsBench
- 用途: 用于评估大型语言模型(LLMs)在JavaScript反混淆任务中的效果
- 特点:
- 提供构建测试数据集和进行评估的工具
- 支持新LLMs的评估
- 结果以排行榜形式汇总
数据集内容
- 数据集位置:
build_dataset目录 - 数据内容:
- 包含经过7种单独变换和1种组合变换混淆的测试数据集
- 提供生成更多混淆JS程序的脚本 (
obfuscators/obfuscate_codenet.py)
环境依赖
Python包
- 通过
pip install -r requirements.txt安装
工具依赖
nodejs和npmdockerescomplex- 可选工具:
javascript-obfuscator(用于生成混淆数据集)- 基线反混淆工具:
javascript-deobfuscator(JS-deobfuscator)Synchrony
使用方法
准备混淆数据集
- 使用
obfuscate_codenet.py脚本生成更多混淆JS程序 - 混淆配置存储在
obfuscators/javascript-obfuscator-configs/*.json - 具体变换详情见
details.csv
反混淆评估
- 使用
query_vllm.py调用远程模型进行JS反混淆 - 支持批量反混淆脚本
run_deobf.sh
评估
- 使用
eval.py评估反混淆结果 - 支持批量评估脚本
run_deobf.sh
发布到排行榜
- 添加新模型配置后运行
read_scores_for_leaderboard.py生成leaderboard.json - 可提交PR到排行榜仓库进行分数合并
相关资源
- 论文: arXiv:2506.20170
- 排行榜: jsdeobf.github.io
致谢
- 感谢多个开源项目的贡献,包括:
javascript-obfuscatorescomplexobfuscator-io-deobfuscatorjavascript-deobfuscatorsynchronyvllmevalplusProject_CodeNet




