2chの【xtrap】不正プロテクトの回避や解析方法【npro】スレに影響されて
TalesWeaver(テイルズウィーバー)の解析に手を出してみた。

ゴールは多分、多重起動とかそのあたりになると思うのだけれど、今のところさっぱり進展なし、解析日記でBlogのネタが溜まっていくのはいいのだけれど、「解析できませんでした」という結果になるのはアレなので解析内容をBlogに書くのははばかられる。

上記のスレに書き込みもしてみたけれど、有用な情報はなかなか出てこない。
自分と同じくらいのレベルの人と交流できればいいのだけれど。
思えば、そのあたりなんの対策もされてない君主は楽だったなぁ……

今はThemidaのunpackがどうにかならないかと試行錯誤しているものの、結果は今ひとつ。
もう少しPEヘッダについて知識を深めた上で、再構築を手動でやらなければダメな予感がする。

しかし、あのスレのくれくれはどうにかならんかなぁ……

2009/07/15:コメントなしろじ

きっかけは一通のメール。
以下、簡単な要約。
だれか「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 の文字が。
そりゃ、ショートカット起動されたら困るわな…… (さらに…)

2009/05/11:9件のコメントろじ

という訳でもないのだけれど、某ネトゲの升スレでActiveXから起動させるタイプのゲームを通常のデスクトップのショートカットから起動する方法が書かれていたので、他のゲームでも応用が利くんじゃないかと思い立ち、とりあえずおなじみの君主で試してみた。

結局やっていることは、ActiveX→パッチクライアント→ゲームクライアントへの暗号化された、IDとパスの受け渡しであるという基本は某ネトゲと変わらないらしく、すんなりWebを介さないログインが成功。
ちっと拍子抜け。

このままだとアレなので、ついでにollydbgを使って多重起動の制限回避をやってみる。
数ヶ月ぶりに触ったんで、解析のイロハをすっかり忘れている……
やっぱりこういうのは日頃から精進してないとダメなんだと再認識。
結局2時間ちょい程かかって、パッチとゲームのクライアントのバイナリ書き換えに成功。
多重起動に成功したことを確認して満足。
んで、もう用はないんでサクっとアンインストール。

なんて生産性のないことしてるんだろうかと自分でも思うが、どうせ趣味の範疇なので細かいことは気にしないことにする。

2008/08/26:コメントなしろじ

ここのところすっかりログインすることもなく、RMTの買い手を求めてふらふらしている君主の状態なのだけれど、BOTプログラムを1月から手を入れていなかったのを思い出して、なんとなく眠れないという心理状況もあってちゃっちゃと更新しておいた。

マシンのOSを入れなおして、VisualC++ 2005 Express Edition を使っていたのを再度インストールしようとしたら、どうやら、新しい2008の日本語版が出ているらしい。
2005でWin32APIを直たたきするのには結構な手間がかかっていたのだけれど、
2005のプロジェクトを2008に引き継がせたところ、特に問題なく引き継ぎ完了。
さりげなく使い勝手がよくなっている気がする。

で、肝心のBOTの方は久しぶりというのもあって多少手間取ったが、過去にやった作業の焼き直しなのでたいした苦労もなくあっさりと完了する。
アップロード品も修正して作業完了。

一昔前は開発環境が無償で手に入るなんて考えられなかったものだが、時代は便利になったものだと再確認する。

最後に恒例のリンクを張っておく。
KunsyuBot本体

2008/02/26:3件のコメントろじ

いつものように君主で狩りをしていると、自キャラをマクロだと思った輩が自キャラに付きまといを開始し、
そのうち、仲間を呼んだらしくゴキブリみたいにわらわらと沸いて出てきた。
とりあえず、面白そうだったのでマクロのフリをして、適度な距離を保ちつつ、会話内容をオチすることにした。

いわく、死んでしまった時には自動的に狩場に戻ってくるとか、マクロ通報を無効化するとかステキ機能が満載らしい。
そりゃ、今は中の人がいますから、マクロ虚偽かけられたら対応するし、死んだら狩場に戻りますよ。

その他、最低だの何だととありがたい言葉を頂戴する。
うん、真っ当にプレイしてる人から見りゃそら最低かも判らんな。
んでも、あなた方が今躍起になってスティールしたり、暴言吐いてる相手は肉入りの人間なんですよ。と。
マクロはよくない、それはいい。だけども思い込みで暴言吐いたり、スティールを繰り返すのも最低だよなぁ。
なんていうか、ユーザーが若いなぁ……
これじゃ、運営にいいように遊ばれるのも納得がいく。

結局最後は正体をばらして極々一部の方と腹を割った話をして終了。ほとぼりが冷めるまでは自粛することにした。
約束もしちゃったしなぁ。

しかし、BOT公開してからかれこれ2ヶ月になるが、Gamepotからのアクセスは一向に0件。
運営で「BOT公開している事実を把握している」
「対応を検討する」そういった運営の発言が虚しいね。
BOTのサンプル取得もせずに一体なんの対策を検討できるって言うんだろう。
最後に恒例のリンクを張っておく。
KunsyuBot本体
KunsyuBotソース
KunsyuBot連絡先

2007/10/27:コメントなしろじ