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プラグインを通して2つのalert式を再現し、その後、元のJavaScriptと生成されたJavaScriptを比較します。括弧で囲まれた式によって動作が変わる理由を確認し、生成された両方のalertが意図した実行結果を維持していることを確認して修正を検証します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript
- 領域
- build-system
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 38/100