Counter Strike Online : Utilities

注意: このページはプログラマを対象としており、一般ユーザー向けではありません。

CSO のログインプロセスとその自動化

CSO では、普通にゲームを起動してログインするのに加えて、 cso.nexon.co.jp でIDとパスワードを入力しログイン、そして GAME START を押すことでもプレイすることができます。 Webサイトでのログインのプロセスは、https://cso.nexon.co.jp/login/iframelogin.aspx に対して

cso_login_nexonid=USERID&cso_login_password=PASSWORD

という文字列を POST する事で行われます。 GAME START を押すと、Nexon Game Controller (Nexon のゲームをインストールすると Web ブラウザにインストールされるプラグイン) を通じてゲームが起動されます。 Process Monitor で見てみたところその際のコマンドラインは、レスポンスヘッダ中の Set-Cookie: NPP=foobar を取り出し、CSOLauncher.exe -passport foobar のように起動している事がわかります。おそらく foobar はセッションID的なものなのだと思われます。

つまりこのプロセスを実装すれば、自動的にログインするプログラムが作れます。

なお、-passport を渡して CSOLauncher.exe を起動したままで数十分程度待ってからゲームを始めると(アップデートパッチを適用した場合などが該当します)、「サーバーに接続できません」というエラーが発生する場合があるようです。どうやら -passport で渡す文字列には有効時間があるようです。

自動ログインの法的な扱い

ネクソンの利用規約は遵守したいと考えています。そこで規約で挙げられている禁止行為に該当するかどうか考察してみます。

18条27項 本ソフトウェアの逆コンパイル、逆アセンブル、リバースエンジニアリング等、本ソフトウェアのソースコードを解析する行為
HTML ファイルのソース表示、HTTP のリクエスト/レスポンスヘッダの閲覧、コマンドラインオプションの閲覧がこれに該当するかもしれない。
18条30項 本ソフトウェアおよび本サービスに関するサーバエミュレーター、ユーティリティー、その他外部ツールの利用、開発行為
CSOLauncher.exe を実行するだけのツールであっても「本ソフトウェアに関する外部ツール」に該当するかもしれない。
18条31項 当社が有害と判断するソフトウェアの配布行為
これは第三者には判断しようがない。
18条32項 本サービスの利用に際して本ソフトウェアまたはその他本サービスに係るソフトウェアの全部または一部を自動操作する行為
HTTP リクエストの送信と、CSOLauncher.exe の実行が自動操作に該当するかもしれない。

しかし、どのような文言があろうと、2条1項の当社は、会員の了承を得ることなく、本規約を変更することができるものとします。この場合、会員は、変更後の本規約に同意したものとみなします。という部分がある限り、実質的には白紙委任状のようなものであると考える事ができ、またそもそもそういった「ライセンサーは自由にライセンスを変更する事ができ、ライセンシーは自動的にそれを承諾させられる」という利用規約が法的に有効性を持つのかも私には分かりません。

いずれにしろ、規約だけでは分からない、ネクソンの判断に依る部分が非常に大きいため、ユーザーが判断するのはおそらく不可能です。ただ、規約に違反するとネクソンが判断した場合には注意や警告がなされると明記されているので、そういったことがなされない限りは違反行為とは言えないのではないかと思われます。

自動ログインの危険性

自動ログインの有用性

サンプルプログラム

上記のログインプロセスを C で実装したものです。libcurl を利用した簡易的なコマンドラインツールではありますが、SSL には対応しています。 自動ログインツールを作成する際の参考にしていただければと思います。 MinGW でコンパイルできる事は確認しましたが、他のコンパイラでコンパイルできるかは確認していません。 ライセンスは GPL です。

csoautologin.c

また、Ruby で同様の事を行うスクリプトも用意してあります。こちらは Ruby さえあれば動作しますし、多少高機能になっています。使う場合はこちらの方が良いかもしれません。(C版の方が高速ではありますが、体感できるほどの差は出ないでしょう)

csolauncher.rb

使い方

一応、csoautologin.c の使い方も書いておきます。 まず csoautologin.exe を CSOLauncher.exe のあるフォルダ(デフォルトなら C:\Nexon\Counter-Strike Online\Bin)に置き、 さらに SSL による通信を行うため認証局証明書(cacert.pem)も同じフォルダに置きます。

IDとパスワードは以下のように csoautologin.exe へのオプションで指定します。

csoautologin.exe -u USERID -p PASSWORD

csoautologin.exe へのショートカットを作り、「リンク先」に上記オプションを追加して使うと楽でしょう。 エラーなどは stderr へ出力するようになっているので、トラブルが起きた時はコマンドプロンプトから実行した方が原因究明しやすいかもしれません。

csolauncher.rb の方は、CSOLauncher.exe のあるフォルダの場所を自動的に検出するので、どのフォルダに置いても動作します。また、HTTPS での接続に問題がある場合のために、HTTP で接続する --no-ssl オプションも追加してあります。それ以外は csoautologin.exe と同じです。

Pre-compiled binary

一応バイナリ2013-02-07: 一部のアンチウイルソフトが誤検出するので削除しました。もう誰も使ってないでしょうし。も用意してあります。

注意: 信頼できない第三者が作成したツールにIDとパスワードを渡すのは本質的に危険です。ソースを読んだ上で自分でビルドする事を推奨します。 ツール開発者が悪意を持っているかもしれませんし、また悪意を持っていなくてもウイルスなどによって改竄されているかもしれません。 私はそのような事はしませんが、開発者を信頼できる場合のみ利用して下さい。


最終更新日: 2010-06-21