javascript-obfuscator / javascript-obfuscator/gulp-javascript-obfuscator
Parenthesis removed, resulting in altered execution
- 主要語言
- 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
}
貢獻指南
這個儲存庫沒有索引到貢獻指南
研究方向
使用列出的選項透過 Gulp 外掛程式重現這兩個 alert 運算式,然後比較原始 JavaScript 和產生的 JavaScript。檢查為什麼加上括號的運算式會改變行為,並透過確認產生的兩個 alert 都保留預期的執行結果來驗證修正。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- javascript
- 領域
- build-system
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 38/100