Node.jsのファイルを難読化する
javascript-obfuscatorを使ってNode.jsのファイルを難読化する方法です。
環境作成
javascript-obfuscatorのインストール
npm install javascript-obfuscator
package.jsonの編集
シェルスクリプトを登録します。
"scripts"
キーにエイリアス"obfuscator"
を追加します。
"scripts": {
"obfuscator": "javascript-obfuscator"
},
難読化の実行
npm run obfuscator <難読化したいファイル>
実行例
npm run obfuscator app.js
上記を実行すると、内容が難読化されたapp-obfuscated.js
が生成されます。
難読化されたファイルの実行
通常の実行と同じように実行します。難読化前と同じ動作になっています。
node app-obfuscated.js
webpackと一緒に利用する
複数のモジュールを利用するプログラムでは、webpackを使ってひとつにまとめたファイルを難読化します。
コンフィグファイル(webpack.config
)に次のようにplugins
を追加することで、webpackした結果ファイルの難読化を行います。
const path = require('path');
const nodeExternals = require('webpack-node-externals');
const webpackObfuscator = require('webpack-obfuscator');
module.exports = {
mode: "production",
entry: {
main: './app.js',
},
target: 'node',
output: {
path: path.join(__dirname, 'dist'),
filename: 'app-build.js'
},
externals: [nodeExternals()],
plugins: [
new webpackObfuscator ({
rotateStringArray: true
}, [path.join(path.join(__dirname, 'dist'), 'app-build.js')])
]
};
webpackについては、以下の記事を参照ください。
webpackを使ってNode.jsの実行ファイルをまとめる