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

Obfuscating going wrong - Not same result always

オープン
#34 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
JavaScript
スター
103
フォーク
37
PR マージ指標
30日以内にマージされた PR はありません

説明

node --version
v10.16.3
"gulp-concat": "~2.3.3",
"gulp-preprocess": "^1.2.0",
"gulp-javascript-obfuscator": "^1.1.2",
The following gulp code is used:

```
var preprocess = require('gulp-preprocess'),
concat = require('gulp-concat'),
javascriptobfuscator = require('gulp-javascript-obfuscator');

gulp.task('app', function() {
return gulp.src('./js/app.js')
.pipe(preprocess({
context: {
HOST: host,
VER: ver
}
}))
.pipe(concat('app.js'))
.pipe(javascriptobfuscator({
reservedStrings:['loadScript','loadCss']
}))
.pipe( gulp.dest('dist/target/js'));
});
```

The following code:
`if(index < scriptFiles.length-1)`

is converted to:
` if (_0x219af0 < _0x441e3a[_0x56ae('0xf')] - 0x1)`

If I step through in Chrome Browser, __0x56ae('0xf')_ is incorrectly equated as '_style_' instead of '_length_'.
If I build it again, it goes fine.
So, it is intermittent. Can somebody point if I am doing anything wrong?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

示されている gulp タスクから始め、特に ./js/app.js の入力と生成される dist/target/js/app.js を確認してから、build を繰り返し実行し、Chrome で難読化された出力を比較します。繰り返した build で length プロパティが一貫して正しくマッピングされ、断続的に style のマッピングが生成されなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
build-system
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

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

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