javascript難読化について(雑記)
Chrome Extensionのソースコードは見放題問題がある。
javascriptの難読化はどうせ解除されるという話もあり、難読化は意味ないという論もあるけど、一応一所懸命コード書いたので、気休めにでもやっておく。
ツールの導入方法
webアプリがうまく動作しなかったので、cliツールをubuntuに導入してjavascriptファイルを個別に難読化することにする。
cli-toolの導入については以下の記事を参考。
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のキャラクター(脳みそ君)が若干グロい