Linux コンキー。 カウンターストライクサーバーの監視

最近、古いコードの記述を詳しく調べてみると、古いプロジェクトに出会いました。 彼が書いたとき、Counter-Strikeクライアントの脆弱性を悪用する偽のCounter-Strikeサーバーを作成することが計画されていました。 後に、バージョン1.5のみが脆弱であることが判明したため、このケースは中止しました。 一般に、最近ソースを見つけたので、これからCounter-Strikeサーバー監視プログラムを作成することにしました。 以下がその結果です。



conkyには、$ {execi}などのパラメーターがあり、任意のプログラムを定期的に実行できます。 将来的にこれを使用します。

実行可能ファイルとソースファイルを含むアーカイブをダウンロードします。 ご覧のとおり、すべてがJAVAで記述されています(あまり蹴らない、コーシャに書き直したくない、理由がない-ブレーキがない)。したがって、JREをインストールする必要があります。

sudo aptitude install sun-java6-jre





他のディストリビューションでも同じです(パッケージマネージャーのみが異なります)。もちろん、オフバージョンを延期することを決定しない限り(この場合、私はOracleからマナを送ります)

パフォーマンスを確認します。

java -version





次のようなものが出力されます。

Java(TM) SE Runtime Environment (build 1.6.0_20-b02)

Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)







そして、仮想マシンは戦いの準備ができています。 次に、monitoring.zipを解凍します。 モニターフォルダーには実行可能ファイルが含まれています。 Javaの主なモットーは「一度書くだけでどこでも実行する」ことなので、何もコンパイルする必要はありません。 このフォルダーにはListServersファイルがあります。 編集します。つまり、コロンを介してポートを使用してサーバーに入ります。 例:

cs.gtn.ru:27015

cs.gtn.ru:27016







IPアドレスを指定できます。

次に、便宜上、フォルダの名前を.monitorに変更し、ホームディレクトリにコピーします。 conkyをインストールし、その構成を編集するだけです。

sudo aptitude install conky





次に、標準の.conkyrc構成をホームフォルダーにコピーします サイトまたは鉱山 (鉱山は.conkyrcに名前を変更する必要があります)

一般に、今度はkofigを編集する必要があります。

TEXTセクションで、次を入力します。

${color white}${execi 10 cd .monitor/ && java CounterStrikeMonitor}







このプログラムは10秒ごとに実行されます。 conkyを保存して実行します。

次のようなものが得られるはずです。



画像



ソースコードもあります。 ご覧のとおり、すべての情報を表示しているわけではありません。 CounterStrikesParserクラスには、プレーヤーとそのポイントのリストがあります。

private ArrayList users ;

private int[] scores ;





, .



.



UdpConnect - udp . .

CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()

CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :



private ArrayList users ;

private int[] scores ;

private String nameServer ;

private String map ;

private int nomberOfGamers ;

private int maxGamers ;





CounterStrikeMonitor - . :

//

CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);

// 2

// getData() connect

// 2

CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());

parser .ParseFirstUdpPacket(); //

parser .ParseSecondUdpPacket(); //

//

System.out.println("Name: " + parser .getNameServer());















private ArrayList users ;

private int[] scores ;





, .



.



UdpConnect - udp . .

CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()

CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :



private ArrayList users ;

private int[] scores ;

private String nameServer ;

private String map ;

private int nomberOfGamers ;

private int maxGamers ;





CounterStrikeMonitor - . :

//

CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);

// 2

// getData() connect

// 2

CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());

parser .ParseFirstUdpPacket(); //

parser .ParseSecondUdpPacket(); //

//

System.out.println("Name: " + parser .getNameServer());















private ArrayList users ;

private int[] scores ;





, .



.



UdpConnect - udp . .

CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()

CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :



private ArrayList users ;

private int[] scores ;

private String nameServer ;

private String map ;

private int nomberOfGamers ;

private int maxGamers ;





CounterStrikeMonitor - . :

//

CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);

// 2

// getData() connect

// 2

CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());

parser .ParseFirstUdpPacket(); //

parser .ParseSecondUdpPacket(); //

//

System.out.println("Name: " + parser .getNameServer());















private ArrayList users ;

private int[] scores ;





, .



.



UdpConnect - udp . .

CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()

CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :



private ArrayList users ;

private int[] scores ;

private String nameServer ;

private String map ;

private int nomberOfGamers ;

private int maxGamers ;





CounterStrikeMonitor - . :

//

CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);

// 2

// getData() connect

// 2

CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());

parser .ParseFirstUdpPacket(); //

parser .ParseSecondUdpPacket(); //

//

System.out.println("Name: " + parser .getNameServer());















private ArrayList users ;

private int[] scores ;





, .



.



UdpConnect - udp . .

CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()

CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :



private ArrayList users ;

private int[] scores ;

private String nameServer ;

private String map ;

private int nomberOfGamers ;

private int maxGamers ;





CounterStrikeMonitor - . :

//

CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);

// 2

// getData() connect

// 2

CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());

parser .ParseFirstUdpPacket(); //

parser .ParseSecondUdpPacket(); //

//

System.out.println("Name: " + parser .getNameServer());















private ArrayList users ;

private int[] scores ;





, .



.



UdpConnect - udp . .

CounterStrikeConnect - UdpConnect. Counter-Strike , WireShark. , . getData()

CounterStrikesParser - . 2 byte - . ParseFirstUdpPacket() ParseSecondUdpPacket() , . :



private ArrayList users ;

private int[] scores ;

private String nameServer ;

private String map ;

private int nomberOfGamers ;

private int maxGamers ;





CounterStrikeMonitor - . :

//

CounterStrikeConnect connect = new CounterStrikeConnect (ip, port);

// 2

// getData() connect

// 2

CounterStrikesParser parser = new CounterStrikesParser ( connect .getData(), connect .getData());

parser .ParseFirstUdpPacket(); //

parser .ParseSecondUdpPacket(); //

//

System.out.println("Name: " + parser .getNameServer());


















All Articles