注意: このページはプログラマを対象としており、一般ユーザー向けではありません。
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 で渡す文字列には有効時間があるようです。
ネクソンの利用規約は遵守したいと考えています。そこで規約で挙げられている禁止行為に該当するかどうか考察してみます。
本ソフトウェアの逆コンパイル、逆アセンブル、リバースエンジニアリング等、本ソフトウェアのソースコードを解析する行為
本ソフトウェアおよび本サービスに関するサーバエミュレーター、ユーティリティー、その他外部ツールの利用、開発行為
当社が有害と判断するソフトウェアの配布行為
本サービスの利用に際して本ソフトウェアまたはその他本サービスに係るソフトウェアの全部または一部を自動操作する行為
しかし、どのような文言があろうと、2条1項の当社は、会員の了承を得ることなく、本規約を変更することができるものとします。この場合、会員は、変更後の本規約に同意したものとみなします。
という部分がある限り、実質的には白紙委任状のようなものであると考える事ができ、またそもそもそういった「ライセンサーは自由にライセンスを変更する事ができ、ライセンシーは自動的にそれを承諾させられる」という利用規約が法的に有効性を持つのかも私には分かりません。
いずれにしろ、規約だけでは分からない、ネクソンの判断に依る部分が非常に大きいため、ユーザーが判断するのはおそらく不可能です。ただ、規約に違反するとネクソンが判断した場合には注意や警告がなされると明記されているので、そういったことがなされない限りは違反行為とは言えないのではないかと思われます。
上記のログインプロセスを C で実装したものです。libcurl を利用した簡易的なコマンドラインツールではありますが、SSL には対応しています。 自動ログインツールを作成する際の参考にしていただければと思います。 MinGW でコンパイルできる事は確認しましたが、他のコンパイラでコンパイルできるかは確認していません。 ライセンスは GPL です。
また、Ruby で同様の事を行うスクリプトも用意してあります。こちらは Ruby さえあれば動作しますし、多少高機能になっています。使う場合はこちらの方が良いかもしれません。(C版の方が高速ではありますが、体感できるほどの差は出ないでしょう)
一応、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 と同じです。
一応バイナリ2013-02-07: 一部のアンチウイルソフトが誤検出するので削除しました。もう誰も使ってないでしょうし。も用意してあります。
注意: 信頼できない第三者が作成したツールにIDとパスワードを渡すのは本質的に危険です。ソースを読んだ上で自分でビルドする事を推奨します。 ツール開発者が悪意を持っているかもしれませんし、また悪意を持っていなくてもウイルスなどによって改竄されているかもしれません。 私はそのような事はしませんが、開発者を信頼できる場合のみ利用して下さい。
最終更新日: 2010-06-21