なんも分からないのでしらべた

なんもわからん!…ので、できる範囲で調べる。

javascript難読化について(雑記)

Chrome Extensionのソースコードは見放題問題がある。
javascriptの難読化はどうせ解除されるという話もあり、難読化は意味ないという論もあるけど、一応一所懸命コード書いたので、気休めにでもやっておく。

公式

obfuscator.io

github.com

javascript難読化ツールの選定について

素晴らしい記事!
kagasu.hatenablog.com

ツールの導入方法

webアプリがうまく動作しなかったので、cliツールをubuntuに導入してjavascriptファイルを個別に難読化することにする。
cli-toolの導入については以下の記事を参考。

kyuri.hatenablog.jp

ubuntuのターミナルにてグローバルインストール

$sudo npm install -g javascript-obfuscator

実行結果(詳細 )

テスト用javascriptファイルの用意

  • ファイル名 index.js
function myTest() {
  const mytext = 'hello nanndokuka'
  console.log(mytext)
}

myTest()

テスト用ファイル実行

$ node index.js
hello nanndokuka

難読化処理の実施

$ javascript-obfuscator index.js

[javascript-obfuscator-cli] Obfuscating file: index.js...

処理後のファイル

  • 1行コードに圧縮されてる
    • オプション指定なしなのと、元々が短いコードなので難読化しても読めなくはない…
var _0x1a02=['hello\x20nanndokuka'];(function(_0x3d8619,_0x1c2b54){var _0xb65b43=function(_0x9a8a09){while(--_0x9a8a09){_0x3d8619['push'](_0x3d8619['shift']());}};_0xb65b43(++_0x1c2b54);}(_0x1a02,0x1c0));var _0x2492=function(_0x2d2bfb,_0x4c3732){_0x2d2bfb=_0x2d2bfb-0x0;var _0x4c61f8=_0x1a02[_0x2d2bfb];return _0x4c61f8;};function myTest(){const _0x4c3732=_0x2492('0x0');console['log'](_0x4c3732);}myTest();

難読化後のファイル実行

$ node index-obfuscated.js
hello nanndokuka

難読化後も同一の動作している。
🎉動作確認OK🎉

できなかったこと

javascript-obfuscatorをvue-cliに導入する方法を知りたい。
webpack用のモジュールがあるので、多分できるのだろうが、build周りをいじるのにレベルが圧倒的に不足していてできません!
あとでteratailに質問投げる。(結果を転記する)

その他

javascript-obfuscatorのキャラクター(脳みそ君)が若干グロい