jar ファイルから Java アプリケーションを開始するには、エントリ ポイントを形成するクラスを認識している必要があります。そのクラスにはmain
メソッドが必要です。jar のMANIFEST.MF
ファイルで指定するか、実行時に (たとえば、コマンド ラインから) 指定することができます。
逆コンパイルされたクラス (実際には難読化されているように見えます) には、main メソッドが含まれていません。したがって、これはスタンドアロン アプリとして実行可能な jar にはなりません。ただし、Client
extends はApplet
、これがブラウザで Web アプレットとして実行されることを意図していたことを示しています。このページをチェックして、実行方法を確認してください。
悪意があると思われる場合は、一連のウイルス/スパイウェア/アドウェア スキャナーを実行することをお勧めします。
編集:コードを変更してgifで実行した後(自分が何をしているのかわからない場合はこれを行わないでください!)、これが起こるという結論に達しました:
まず、「gif」はやや回りくどい方法でデコードされます。最初の 3 バイトは、残りの gif がロードされるバイト配列のサイズを決定します。このバイト配列の一部は、アプレットで使用される文字列を構築するために使用されます。
アプレットが初期化されると、アプレット パラメータの値が取得されますAMLMAFOIEA
。このパラメーターは、アプレットを含む HTML で設定する必要があるため、値はアプレットが実行されるページに依存します。これがどのように設定されているかの詳細です。
その後、環境変数の値を取得しますTEMP
。AppData\Local\Temp
私の場合、これは私のユーザーディレクトリを指していました。これに追加\JavaLoad.exe
し、そのパスを使用して を作成するFileOutputStream
ので、一時フォルダーに JavaLoad.exe ファイルを書き出そうとしていることは明らかです。
AMLMAFOIEA
次に、アプレット パラメータで指定された URL への HTTP 接続を確立し、そのリクエスト メソッドを に設定しGET
ます。接続からストリームが開かれ、その内容が JavaLoad.exe ファイルにダンプされます。
コードブロックの絶え間ない繰り返し
if ((this.b == this.c) && (this.b + I.I(1) == this.c + I.I(1)))
{
this.b = I.I(4);
this.c = I.I(6);
this.b = this.c;
}
まったく何もしないようです。これは、機能にまったく影響を与えていないように見えるため、難読化ツールによってトラックから外れるように追加された可能性があります。重要なことはすべて、これらのテストとフィールドの外で行われ、実際に機能するものには使用されていないようです。フィールドのみb
がターゲット URL 文字列を保持するために使用されます。c
a
結論から言うと、これは非常に疑わしいと思われます。しかし、実際にどの URL からダウンロードしようとするかは、アプレットの環境によって異なります。残念ながら、これは真の情報源を示していません。おそらくこれは、アプレットを含むサイトを介して悪意のあるペイロードを配信したい人が使用することを意図した、一般的なトロイの木馬クライアントです。アプレットはアクセス許可が制限されたサンドボックスで実行されるため、これが機能するかどうかはわかりません。また、最終的にJavaLoad.exeを実行する方法もわかりません。このファイルが存在することを期待する他のプロセスに依存していると思いますが、通常は無害なものかもしれません。
これは面白かったです。リソースをありがとう。Java 開発者でなく、コードから危険な部分を取り除く方法がわからない場合は、このようなことを自分で実行しようとしないことをお勧めします。