2

jar file - mytestapp.jarシステム名、IPアドレス、正規名、稼働時間などの基本的なチェックを実行し、画面にカスタマイズされたフォルマントで同じものを出力するカスタムJava実行可能ファイルがあります。プログラムは正常に動作しており、実行すると必要な出力と期待される出力が得られます

java -jar /mytestapp/mytestapp.jar

上記のコマンドを毎回実行する代わりに、ファイルを作成し、ファイルmyappinfoに上記のコマンドを追加して保存しました。/mytestappPATH 変数に追加されます。するとecho $PATH、 に表示さ/mytestappれますPATH

myappinfo のファイルパーミッションを に設定し、755実行可能にしました。

myappinfo任意のフォルダーからコマンドを実行すると、同じ出力が得られます。

ここでの要件は、このファイルを作成することです-myappinfoバイナリファイルであり、エディタープログラム(vi、nanoなど)を使用して誰にも変更または検査されないようにします。これを行うためのアドバイスはありますか?

4

3 に答える 3

1

ここでの要件は、このファイルを作成することです-myappinfoをバイナリファイルにし、エディタープログラム(vi、nanoなど)を使用して変更または検査しないようにします。

シェルスクリプトを誰でも読み取り可能/書き込み可能に設定するだけで、必要なことができます。

しかし、シェル スクリプトをコンパイル済みシェル スクリプトに変換したい場合は、まさにこれを行うと主張するshcがあります。

Google でshell script compiler検索すると、他にも多くのオプションが見つかると思います。私が知っているのはこれだけです。

于 2012-05-01T16:53:46.697 に答える
0

GCJ を使用して、Java プログラムをネイティブ マシン コード (またはこの方法で動作するその他のコンパイラ) にコンパイルできます。Javaクラスファイルは簡単に逆コンパイルできるため、これが実際に機能する唯一のソリューションです。

もう 1 つの解決策は、スタートアップ ラッパーです。jar ファイルと、Java ランタイムを検索し、それを使用して組み込みクラス ファイルを実行するネイティブ ランチャー コード部分を組み合わせたラッパーが多数あります。多かれ少なかれ、結合された実行可能ファイルからクラス ファイルを抽出することができます。

于 2012-05-01T16:44:57.013 に答える
0

.class ファイルは逆コンパイルできるため、何らかの難読化ツールを調べてください。しかし、Linux で実行可能にするには、chmod +x <name-of-file.jar>.

于 2012-05-01T16:45:12.663 に答える