きっかけは一通のメール。
以下、簡単な要約。
だれか「KDirectくれないか」
おいら「おk」
その後、来た返信。
だれか「無理だった」
ということで、晴れて公開してたツールで直接起動・多重が出来なくなったようだ。
2chスレを覗くと、「多重対策が入った」「普通に出来る」「できるのと出来ないのがある」「暗号化パスが時間とともに変わる」などなど、相変わらずの錯綜っぷり。
まぁ、升スレでもないので解析の流れにならないのは当然か。
んで、実際どんな感じで多重を防いでいるのか気になったので、その疑問解決のためだけに君主クライアントをインストールする。
まずはがめぽWebから起動してProcessExplorerでコマンドラインの取得。
でショートカット作成して、起動ロジックの解析。
まず、新クライアントのバイナリは、新しいチェックが入っているようには見えなかった。
そこで、一旦終了させてクライアントを再起動したのだけれど、鯖選択画面へ行かない。
もしや、と思い、再度がめぽWebから起動してコマンドラインを見ると、暗号化されたパスワード部分の文字列が変わっている。おぉ、2chの情報どおりだ。
次、どうすれば多重起動が出来るようになるか?
処理の流れをなんとなくで想像してみる。
・ActiveXでID、パスをWeb送信→ActiveXが暗号化パスをGet→ActiveXで君主パッチ当て起動→君主本体起動
だと推測、この場合ActiveXの起動パラメータを擬似してやれば即座にショートカットを作る事は可能。
ショートカットの再作成は免れないが、Webにログインする作業はせずに済むはずだ。
んで、ActiveXの本体はSystem32フォルダの下にある、KunshuWebLauncher.dllなのでこっちの解析をしようと思いはじめる。
Rundll32.exeからDLLは呼び出せたはずなのでその辺の情報収集を開始。
次、調べた情報からVisualStudioについてくるdumpbin.exeを使ってKunshuWebLauncher.dllの関数リストを取得。
取得した情報とollydbgでKunshuWebLauncher.dllの中を見てみるが、実力不足もありよく判らない。なんかHTTP通信もしていない模様……
しばし熟考…………ヽ(゚∀゚)ノ
次、WiresharkでWeb起動時のHTTPパケットをキャプチャ。
その結果わかった事は2つ。
・Web起動のボタンを押した時から、クライアント起動までの間にID・パスの送信は行われていない。
・KunshuWebLauncher.dllを起動する時には既にパスワードは暗号化されている。
この結果を踏まえて処理の流れを再考。
・Web画面ログイン(ID、PASSをWeb送信)→スタートボタン押下→がめぽ鯖はCookieのIDとパスで暗号化パスを作成して返信→暗号化パスGet→ActiveX起動→君主パッチ当て起動→君主本体起動
と、考えるのが自然な気がする。
この場合どうあがいてもWebログインは回避不可能。(´・ω・`)
何度か試すうち、暗号化パスが変わるまではショートカットでのログインも可能な事に気がついたが、暗号化パスの寿命が短いのでこれは現実的ではない。
だが、ここである事に気がついた。
ショートカット起動は無理でも多重はできるんじゃないかと。
なんせクライアント側の処理は変わってないはずなのだから。
いそいそと、Webログインを試すこと数回。想像が間違っていなかったことを確認。
多分、NDE直だと多重できてがめぽ経由だとダメなのだろう。
満足して、君主をアンインストールする。
長々続いたが、結論は以下の通り。
・ショートカット直接起動は無理。
・多重はクライアント改変なしに可能。
関係ないけど、君主のActiveXを調べる時にがめぽ公式のHTMLソースを見たのだけど、その中に https://www.google-analytics.com の文字が。
そりゃ、ショートカット起動されたら困るわな…… 2ch 君主スレに、自分宛のメッセージがあったので、珍しくBlogの続き機能を使って書いてみる。
あっちに書くくらいならBlogにコメントしてくれれば良いのに……
んでは解説を。
現在、多重起動のネックは以下の2つ
・パッチクライアント(kunshuRun.exe)でのチェック
・ゲームクライアント(kunshu.exe)でのチェック
このうち、ゲームクライアントのチェックは既存のKDirectで解除可能。
となると、ネックはパッチクライアントのチェックで、これをどうやってすり抜けるかが問題となる。
取りうる方法は2つ。
・パッチクライアントをollydbgで逆アセ、バイナリパッチを当ててチェックを無効化する。
・パッチクライアントをすっとばす。
1つ目は、パッチクライアントが変更されるたびに逆アセをしなければならない。
めんどくさいので却下。
となると2つ目が楽で、 ActiveX→パッチクライアント→ゲームクライアント の
流れを、
ActiveX→ゲームクライアント に変更するのが手軽な方法。
これは、パッチクライアントとゲームクライアントの起動パラメータが同じであることが前提となる。
んで、実際それぞれの起動パラメータは(5/12現在)同じ。
結論をぶっちゃけよう。
1、君主インストールディレクトリの kunshuRun.exe を適当な名前にリネーム。
2、kunshu.exe を kunshuRun.exe にリネーム。
3、あとはマシン性能の許す限りWebから好きなだけログインすれば良い。
4、メンテ後のパッチ当ての時はリネームしたのを戻すのを忘れずに。
でけた^^ ありがとう
質問です。リネームでの多重なのですが、片方のPCは多重が出来て、もう片方のPCは多重ができないです。
出来ないほうは、Webログイン後、ゲームスタートを押しても、一向にゲームクライアントが立ち上がってきません。エラーメッセージ等も出てこないです。
どのような原因が考えられるでしょうか?
新しいエントリを作るのもアレなので、コメントで書くけれど、
・ファイルリネームミス
・KDirectでの回避を入れていない
多分このどちらか。
Kdirectの回避を入れた上でリネームをしないとゲーム本体の多重チェックで引っかかります。
前回お礼のコメント書いたけど、反映されてなかったな。今回かけるかな~
Kdで回避したらうまくいったです^^どうもありがとうございました。
XPではうまくKdirectで回避出来ますが、
VISTAだとうまく行きません。
仕掛けるところまで行きます。
元の記事のとおり、直接起動はずいぶん昔に封じられてしまったので、多重のほうができないのだと思うのだけれど、Windows Vista のUAC(ユーザーアカウント制御)に引っかかって失敗してるような気がします。
Vistaは持ってないのでこちらで確かめられないのだけれど。
運営移管でガメポからKDirectの多重が使えなくなりました。何とかできないでしょうか。。
本音
しらんがな(´・ω・`)
建前
2chの君主スレだとこの記事のリネーム作戦でどうにかなってる人もいるようなのでもう一度環境のチェックをおすすめします。
まぁ、人生時には諦めも必要ですよ。
KDirectください。