javascript-obfuscator / javascript-obfuscator/gulp-javascript-obfuscator
Parenthesis removed, resulting in altered execution
还没有人认领这个 Issue。
- 主要语言
- JavaScript
- 星标
- 103
- 派生
- 37
- PR 合并指标
- 30 天内没有已合并 PR
描述
var obj = {val:true}
alert( true || **(**true && obj.value == true**)**) //true
alert( true || true && obj.value == true) //false
becomes
var obj = { 'val': !![] };
alert(!![] || !![] && obj['value'] == !![]); //false
alert(!![] || !![] && obj['value'] == !![]); //false
Tested in Adobe ESTK after running Gulp with the following options:
{
compact: false,
controlFlowFlattening: false, //KILLS JSX
deadCodeInjection: false, //KILLS JSX
disableConsoleOutput: false,
identifierNamesGenerator: 'mangled',
renameGlobals: false,
selfDefending: false,
sourceMap: false,
stringArray: false,
rotateStringArray: false,
stringArrayEncoding: false,
splitStrings: false,
transformObjectKeys: false,
unicodeEscapeSequence: false
}
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
使用列出的选项通过 Gulp 插件重现这两个 alert 表达式,然后比较原始 JavaScript 和生成的 JavaScript。检查为什么加括号的表达式会改变行为,并通过确认生成的两个 alert 都保留预期的执行结果来验证修复。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript
- 领域
- build-system
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 38/100