Cactus Obfuscator Obfuscator JavaScript / CSS

こんにちは、ユーザー名、
今日は、友人のニコライ・バビンスキー-Cactus Obfuscatorが書いたユーティリティをコミュニティに紹介したいと思います。
Cactus Obfuscatorは、JavaScriptおよびCSSコードを難読化するように設計された3モジュールのアプリケーションです。

Cactus Obfuscatorは以下を使用します。
Apache Mavenは、Mavenバージョン2-3のプラグインです。
YUI Compressor -js / cssの難読化。
単純なXML -XMLマッピングおよび(de)シリアル化。

内容:
1. Mavenプラグインとして使用します。
2.コンソールアプリケーションとして使用します。
3.構成ファイルの作成(XML)。

Cactusは、JavaプロジェクトのMavenプラグインとして、およびコンソールユーティリティとして使用できます。


Mavenプラグインとして使用します。
Mavenプラグインを使用するには、Mavenバージョン2または3をインストールする必要があることは明らかです Mavenバージョン3のcactus-plugin.jarはダウンロード用に提供されています。バージョン2の* .jarを取得するには、そのバージョンのソースからそれを収集するSMS必要なもの)

1.ソースからCactusをビルドするには、以下を実行する必要があります。
-ダウンロードして、ダウンロードしたディレクトリに移動します。
git clone git@github.com:nbabinski/Cactus.git cd Cactus 

-インストール:
  mvn install 


2.コンパイルされたcactus-plugin.jarパッケージをインストールします。

ターミナルを開き、次のように書きます:
 mvn install:install-file -Dfile=DOWNLOAD_FOLDER/cactus-plugin.jar -DgroupId=com.cactus -DartifactId=cactus-plugin -Dpackaging=maven-plugin -Dversion=0.1 
cactus-plugin.jarへの「DOWNLOAD_FOLDER」パスはどこですか

インストールが成功した場合、およそ次の図が表示されます。
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.702s
[INFO] Finished at: Tue Apr 19 01:36:31 EEST 2011
[INFO] Final Memory: 2M/48M

おめでとうございます、Cactusは正常にインストールされました。 プロジェクトのpom.xmlを構成します:
 <build> <plugins> ... <plugin> <groupId>com.cactus</groupId> <artifactId>cactus-plugin</artifactId> <version>0.1</version> <configuration> <jsBaseDirectory>src/main/webapp/js</jsBaseDirectory> <outputDirectory>cache</outputDirectory> </configuration> <executions> <execution> <goals> <goal>obfuscate</goal> </goals> </execution> </executions> </plugin> ... </plugins> </build> 

どこで:
baseDirectory- (オプションの)プロジェクトディレクトリ。 デフォルトは$ {project.basedir}です。
jsBaseDirectory- (必須)baseDirectoryからJavaScript / CSSコードがあるディレクトリへの相対パス。
confingDirectory- (オプション)cactus.xml構成ファイルがあるフォルダーへのパス。デフォルトではjsBaseDirectoryと同じです。
outputDirectory- (オプション)jsBaseDirectoryから処理/難読化されたファイルがあるディレクトリへの相対パス。 ディレクトリが存在する必要があります。
mode- (オプション)2つの動作モード-PRODUCTION / DEBUGがあります。 デフォルトでは、モードはPRODUCTIONに設定されています。つまり、ファイルは接着され難読化されます。 DEBUGモード-ファイルは接着されているだけで、難読化されていません。

pom.xmlで接続した後、 mvnパッケージを試してプロジェクトをビルドできます。 また、Cactusプラグインはプロジェクトなしで使用できます。必要なのは、cactus.xmlファイルの存在だけです。 cactus.xmlを含むフォルダーに移動したら、コンソールに入力するだけです:
mvn com.cactus:cactus-plugin:obfuscate

コンソールアプリケーションとして使用します。
Cactusは、コンソールからMavenなしで使用できます。 必要なのは、マシンにインストールされたJVMだけです。
使用方法:
1. cactus.xml構成ファイルを作成します。
2. cactus-toolを実行します。
java -jar cactus-tool.jar
デフォルトでは、cactus-toolに必要な-cオプションは1つだけです(cactus.xmlを含むフォルダーへのパス)。
次のオプションもあります。
-d --cで指定されたディレクトリからのjsファイルへの相対パス
-o-難読化の結果を含むディレクトリへの相対ポイント。 指定しない場合、結果は-dディレクトリに配置されます
-m -PRODUCTION / DEBUG操作モード。 上で説明した。

使用例:
java -jar cactus-tool.jar -d ../web/js -o cache

構成ファイルの作成(XML)

設定ファイルの例:
 <?xml version="1.0" encoding="UTF-8"?> <cactus> <js> <needles> <needle> <output>ext-3.1.0.js</output> <files> <file>https://ajax.googleapis.com/ajax/libs/ext-core/3.1.0/ext-core-debug.js</file> </files> </needle> <needle> <output>jquery-1.5.2.js</output> <files> <file>https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js</file> </files> </needle> </needles> </js> <css> <needles> <needle> <output>test.css</output> <files> <file>YOUR_CSS_FILE_HERE</file> </files> </needle> </needles> </css> </cactus> 


この例は、3つの出力ファイル(実際には針、つまり針、したがってサボテン)の出力ファイル(ext-3.1.0.js、jquery-1.5.2.js、test.css)を含む構成ファイルを示しています。

起動後:
mkdir cactus-test
cd cactus-test
//copy cactus.xml and cactus-tool.jar in cactus-test folder
java -jar cactus-tool.jar -c PATH_TO_CACTUS_CONFIG_FOLDER

-結果として2つのjsファイルを取得します。

ファイルタグを使用すると、URL、パス、ファイル名を入力できます。 すべてのフォルダーは、BASEディレクトリー(-c)内になければなりません。 たとえば、構造の場合:
|-root
|--batch
| | - cactus-tool.jar
|--webapp
|----js
| |--cactus.xml
| |--boo.js
| |--foo.js
| |--utils
| | |--array.js
| | |--string.js
| | |--parser
| | | |--xmlparser.js
| |--cache


次のcactus.xmlが必要です。
 <?xml version="1.0" encoding="UTF-8"?> <cactus> <js> <needles> <needle> <output>test.js</output> <files> <file>boo.js</file> <file>utils</file> <!-- get all js files from utils folder--> <file>utils/parser/xmlparser.js</file> </files> </needle> </needles> </js> </cactus> 


次に、ルート/バッチディレクトリからcactus-toolを実行します。
java -jar cactus-tool.jar -c ../webapp/js -d ../webapp/js -o cache
この例では、cactus.xmlはjsディレクトリにあるため、-cオプションと-dオプションは同じです。
その結果、ルート/ webappjs /キャッシュフォルダーにtest.jsファイルを取得します。これは、boo.jsファイル、utilsディレクトリのすべてのファイル、utils / parser / xmlparser.jsのマージと難読化の結果です。
ファイルタグのシーケンスは重要であり、結果としてファイルが接着される順序を反映します。

UPD
膨大な量の不必要な論争をcutするために、 YUI Compressorが難読化に使用されていることをもう一度書きます。
Cactus自体は、js / cssファイルのアセンブリと圧縮を簡素化するために書かれています。
例:
圧縮前
圧縮後

Source: https://habr.com/ru/post/J120884/


All Articles