2017-09-17 8 views
0

blogから、jxcoreは、(コマンドラインアプリケーションとして実行する)jsコードに基づいて実行可能ファイルを作成し、ソースコードを簡単に見ることを防ぐことができます。jxcoreはソースコードを保護できません

しかし、私は次のことをしようとしたとき、私は(Ubuntuの中)excutableファイルを見ましたが、まだソース

# jx package test1.js 
# change library and extract attribute in file test1.jxp to be false 
# jx compile test1.jxp 
# grep "this is test1" test1 
    Binary file test1 matches 

が含まれている小さなJSファイルには、私はノーがあることを理解

console.log("this is test1"); 

をtest1.jsアプリケーションが逆転するのを防ぐ完全な方法。しかし、私は実行可能ファイルからソースコードを取得するための単純な方法( "strings"コマンドのような)がないことを期待していました。

+1

'console.log'にgrepできるかどうか確認してください。そうでなければ、文字列はバイナリファイルと同じ方法でエンコードされ、実際のコードはまだ隠されています。 – jdgregson

+0

その場合、文字列を隠すことは本当に重要です。それらをエンコードしようとすると、つまり、 'var test1 = atob(this is test1 ')' – jdgregson

+0

@jdgregson 'atob()'の例では、作業。 1つの場合、ソース文字列はまだバイナリに現れる可能性があります。さらに、 'atob()'はBase64データでのみ動作します。たとえば、 'btoa(atob( 'hello world'))== 'helloworlQ ==''です。 – duskwuff

答えて

0

あなたが読んだブログ記事は、単純に言えば、古いと間違っています。 The "protection" features provided by JXCore were severely flawedであり、プロジェクトの後のリリースでは大幅に削除されました。

JXCoreは使用しないでください。 Development on the project was halted in March 2016; node.jsプラットフォームのかなり後ろにあり、オープンソリューション(pkgなど)に比べて実質的な利点はありません。

+0

これは意味があります。私はJXCoreをダウンロードして問題を再現しようとしていましたが、私が "コンパイル"したものは単純に不器用で壊れたbashを吐き出しました。私は確かに私のdevマシンでコンパイルすることがあったとしても、これらのプログラムの1つをクライアントのマシン上で実行することを信頼しません。 – jdgregson

+0

コメントのための@duskwuffに感謝します。私は 'pkg'を試しましたが、あまりにも保護されていません。 jsファイルをある種のバイトコードにコンパイルし、それに実行可能ファイルを含める方法があるかどうか不思議です。 – packetie

関連する問題