javascript-obfuscator / javascript-obfuscator/gulp-javascript-obfuscator

Parenthesis removed, resulting in altered execution

オープン
#26 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。