riste19/javascript-obfuscation-analysis
GitHub: riste19/javascript-obfuscation-analysis
一个用于自动化对比分析 JavaScript 混淆工具与 AI 混淆技术的测试框架,评估其对代码功能和文件大小的影响。
Stars: 0 | Forks: 0
# JavaScript 混淆分析
本项目分析了不同的 JavaScript 混淆工具对以下方面的影响:
- 文件大小
- 代码功能
- 执行结果
目标是比较多种混淆工具和 AI 生成的混淆技术,并评估其对 JavaScript 程序的影响。
## 测试的工具
测试了以下混淆工具和 AI 模型:
- ObfuscatorJS
- a2z.tools JavaScript Obfuscator
- FreeJSObfuscator
- ChatGPT
- Gemini
每个工具都被用于混淆多个 JavaScript 文件并比较结果。
## 测量指标
对于每个混淆后的文件,评估了以下指标:
- 执行情况 – 代码是否仍能成功运行
- 结果一致性 – 输出是否与原始文件匹配
- 文件大小变化 – 混淆后文件大小的增加或减少
## 项目结构
```
file1/ file2/ file3/ file4/ file5/
testRunner.js
```
每个文件夹包含:
- 原始 JavaScript 文件
- 使用不同工具生成的多个混淆版本
示例:
```
file1/
file1.js
file1_a2z_obf.js
file1_fjsobf.js
file1_obfjs.js
file1.chatgpt_obf.js
file1.gemini_obf.js
```
## 自动化测试
一个定制的 **Node.js 测试运行器** 会自动:
- 执行每个 JavaScript 文件
- 验证功能
- 将结果与原始程序进行比较
- 测量文件大小
- 计算百分比变化
这可以快速验证混淆是否破坏了代码。
## 示例输出
```
=== Comparison for file1 ===
File Size(KB) %Change RESULT
file1.js 1.90 0% PASS
file1.chatgpt_obf.js 1.50 -21% PASS
file1.gemini_obf.js 1.33 -30% PASS
file1_a2z_obf.js 5.70 +200% PASS
file1_fjsobf.js 10.39 +447% PASS
file1_obfjs.js 13.40 +605% FAIL
```
**PASS** 表示程序在混淆后仍能正常工作。
**FAIL** 或 **ERROR** 表示混淆破坏了功能。
## 使用的技术
- JavaScript
- Node.js
- 命令行界面 (CLI)
## 如何运行
运行自动化测试运行器:
```
node testRunner.js
```
这将执行所有文件并生成比较输出。
## 项目目的
本项目展示了不同的混淆技术在以下方面如何影响 JavaScript 程序:
- 可靠性
- 代码大小
- 执行行为
它还演示了使用 Node.js 进行自动化测试和结果比较。
## 许可证
本项目基于 MIT 许可证授权。
标签:AI生成代码, ChatGPT, CMS安全, DNS 反向解析, Gemini, GNU通用公共许可证, JavaScript, MITM代理, Node.js, ObfuscatorJS, Promptflow, TLS抓取, 云安全监控, 人工智能, 代码混淆, 功能一致性测试, 数据可视化, 文件大小分析, 文档结构分析, 测试框架, 混淆器对比, 用户模式Hook绕过, 脚本安全, 自定义脚本, 软件安全, 静态分析