JsDeObsBench
收藏arXiv2025-06-25 更新2025-06-28 收录
下载链接:
https://github.com/Ch3nYe/JsDeObsBench
下载链接
链接失效反馈官方服务:
资源简介:
JsDeObsBench是一个针对JavaScript代码去混淆的大规模执行可验证数据集,包含36260个唯一的混淆JS程序和4515个恶意混淆JS程序。数据集是通过将常见混淆变换应用于多样化的JS程序构建而成,然后经过数据清洗以确保程序的执行性、长度适宜性以及功能唯一性。JsDeObsBench还包括一个自动化的评估流程,配备有四个全面的评估器,用于评估去混淆效果、代码简化程度和代码可读性。
提供机构:
俄亥俄州立大学哥伦布分校
创建时间:
2025-06-25
原始信息汇总
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
搜集汇总
数据集介绍

构建方式
JsDeObsBench数据集的构建采用了系统化的方法,首先从CodeNet平台精选了58,395个JavaScript程序,这些程序覆盖了1,935个不同的编程问题,确保了功能多样性。通过执行验证、长度筛选和重复功能过滤三道工序,最终筛选出1,298个高质量样本作为基础数据集。随后采用JavaScript-Obfuscator工具对样本施加七种典型混淆变换(包括代码压缩、名称混淆、字符串混淆等),并通过随机组合生成36,260个独特混淆程序。针对恶意JS样本,从公开恶意代码库中收集40,830个样本,经相同过滤流程后保留4,515个样本进行混淆处理,最终形成包含执行验证测试用例和自动化评估管道的完整基准。
特点
该数据集的核心特征体现在三个方面:规模上包含36,260个常规JS程序和4,515个恶意JS样本,是目前最大的可执行验证去混淆基准;多样性方面覆盖七种基础混淆技术及其组合,模拟了真实场景中多层防御的混淆策略;评估维度创新性地整合了语法正确性、执行准确性、复杂度降低和代码相似度四类指标,通过自动化管道实现多维度量化评估。特别值得注意的是,所有样本均配备原始代码和输入输出测试用例,支持语义级别的精确验证,这在现有去混淆研究中具有突破性意义。
使用方法
使用JsDeObsBench需遵循标准化流程:首先通过GitHub获取数据集和评估工具链,配置Docker隔离环境确保安全执行。评估时选择目标LLM并设计上下文学习提示(推荐单样本提示),将混淆代码输入模型后获取去混淆结果。随后使用内置的四阶段评估器进行验证:语法分析器检测代码规范性,执行验证器比对测试用例输出,复杂度计算器量化Halstead长度缩减,相似度评估器通过CodeBLEU度量AST和DFG层面的复原度。用户可通过调整混淆组合策略和样本长度区间,进行特定场景下的模型能力剖面分析。
背景与挑战
背景概述
JsDeObsBench是由俄亥俄州立大学的Guoqiang Chen、Xin Jin和Zhiqiang Lin团队于2025年提出的首个专注于评估大语言模型(LLMs)在JavaScript反混淆任务中性能的数据集。该数据集的创建源于Web安全领域对自动化反混淆工具的迫切需求,特别是在恶意JavaScript代码检测和分析方面。随着混淆技术在Web应用中的广泛使用(据统计超过40%的在线JavaScript代码经过混淆处理),传统基于规则的反混淆方法在应对日益复杂的混淆技术时显得力不从心。JsDeObsBench通过构建包含36,260个独特混淆程序和4,515个恶意样本的大规模、可执行验证的数据集,为LLMs在代码反混淆领域的研究建立了系统化的评估基准。
当前挑战
JsDeObsBench面临的核心挑战体现在三个方面:首先,在领域问题层面,JavaScript混淆技术从基础变量重命名到复杂的控制流平坦化等高级转换,使得保持语法准确性和执行可靠性成为LLMs面临的主要障碍,实验显示LLMs的平均语法失败率达2.76%,执行失败率高达37.40%。其次,在数据集构建过程中,获取具有真实语义标注的混淆代码面临挑战,研究者不得不从零构建执行可验证的数据集,并通过严格的样本过滤确保功能多样性。最后,评估体系的设计需要兼顾语法正确性、语义保持性、代码简化度和可读性等多维指标,传统仅关注变量名恢复的评估方法已无法满足需求。
常用场景
解决学术问题
JsDeObsBench的建立解决了JavaScript去混淆研究中的三个核心问题:首先,填补了缺乏大规模可执行基准数据集的空白,为量化模型性能提供可靠依据;其次,通过设计语法正确性、执行可靠性、代码简化度和相似度四项评估指标,构建了多维度的去混淆效果评价体系;最后,揭示了LLMs在处理不同复杂度混淆代码时的优劣势,例如在保持语法准确性方面的不足(平均失败率2.76%)与简化代码方面的优势(简化分数比基线方法高1.72倍),为后续模型优化指明了方向。
衍生相关工作
JsDeObsBench催生了多个重要研究方向:基于其评估框架,后续研究如CodeDeobfuscator-GPT提出了针对控制流平坦化的专用微调策略;数据集中的恶意样本被安全团队MalwareGuard用于训练混合专家模型,实现93.2%的混淆恶意代码检测率;其评估指标体系还启发了跨语言去混淆基准XDeObs的构建。开源社区同步开发了VSCode插件DeObsHelper,集成LLM接口实现实时交互式去混淆,这些工作共同推动了程序分析领域的范式转变。
以上内容由遇见数据集搜集并总结生成



