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した結果ファイルの難読化を行います。

webpack.build.config.js
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の実行ファイルをまとめる

参考

このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

関連コンテンツ

スポンサードリンク

Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です