書き溜めたエントリなんだけど、これから更新する機会が減りそうなので進んだところまで一気にBlogに上げてしまうことにした。
願わくば、これをみて解析の道に入り込む人が増えることを。

いやぁ、これタイトルに偽りあり、だね。
というわけで、今回は寄り道のPEditorの改造の話。

UPX圧縮されているかも知れないexeの文言を調べている時に見つけたWizard Bibleの30回の記事のPEditorの改造を実際にやってみる事にした。

と言うのも、ヘッダを改造されたUPXを展開するには
・対応したアンパッカーを探してくる
・実際にexeを実行して実行イメージをメモリからダンプしてexeファイルに直すか。
の二通りしかないからなのである。
1点目は既に探すのに疲れた……、おかげで新しくunpackerディレクトリを掘ったくらいだ。
2点目はまだ試した事がない、が、最初からチェックの厳重なネトゲでそれが出来るような実力は持ち合わせていない。
そこで、記事の実際に試した例のあるPEditorの改造の出番である。
要はPEditorを練習台にしようという訳。
なんのかんの言いつつ、実はちゃんとネトゲ解析につながっているのだ。

二点目を実行するには、OEPを見つけ、OEPまでプログラムを実行し、その時点のダンプをollydumpで取得し、IATを修復する。という作業が必要になる。
いや、いきなり用語が増えて敷居高くなったな。うん。

で、記事の通りやってみる。のだけれど、OEPを見つけてダンプはできるものの、そのダンプイメージを検索しても目当ての文字列が見つからない。
ollydumpの使い方が悪いのかさっぱりだ。
試行錯誤するうち、Base of Codeの値が間違っているらしい事に気がつく。
Base of Codeの値を 00001000に変えてやったところ、目当ての文字列を見つける事が出来、改造も無事に完了した。

が、今ひとつ理解が出来なかったのでBase Of Code、実行ファイルのPEヘッダのフォーマット資料を探す。
で、ここを見つける。
「メモリにロードされたときの、イメージ ベース相対のコード セクションの先頭アドレス」
コードセクションが良くわからん、再度検索
「ネイティブコードを保持するセクション」

OKなんとなく判った。
実コードの参照がずれてたから、参照文字列が見つからなかったのか。

少しだけ詳しくなったところで、今回はここまで。

2009/10/01:1件のコメントろじ

書き溜めたエントリなんだけど、これから更新する機会が減りそうなので進んだところまで一気にBlogに上げてしまうことにした。
願わくば、これをみて解析の道に入り込む人が増えることを。

前回は、パッチクライアントからゲーム本体の起動をしている箇所の特定まで。
ぶっちゃけ、なにも進んでいないのだけれど、そこはあえて考えない事にする。

で、早速 InphaseNXD.EXE の解析に入る。
ollydbgで見た感じだと既に難読化されているらしい。

PEiDでパッカーを調べると、以下の文言が、
  UPX 0.89.6 – 1.02 / 1.05 – 1.24 -> Markus & Laszlo [Overlay]
UPXなら余裕じゃね?と思い、いそいそとコマンドプロンプト起動、UPXの引数に-Dを指定。
……アンパックできねぇ……(‘A`)

文言でGoogleさまにお伺いを立てると、地デジチューナのTS抜きのスレの文言と、PEditorの改造の記事を発見。
どうやらヘッダ等が変更されているとアンパックできないらしい。

ここで寄り道をする事にする。
PEditorの改造を記事に従ってやってみよう。
どうせプロテクト外しが目的でゲームの方を楽しむ気はないので気楽なものだ。

2009/10/01:コメントなしろじ

書き溜めたエントリなんだけど、これから更新する機会が減りそうなので進んだところまで一気にBlogに上げてしまうことにした。
願わくば、これをみて解析の道に入り込む人が増えることを。

なんか今でも君主の多重やマクロを知りたがる人がいるらしい。
このBlogのアクセスはすっかりらいつべバルーン一色になったのだけれど、ネトゲを弄る需要って言うのは尽きないらしい。

君主は最近のネトゲには必ず付いてくるルートキットはなかったし、exe圧縮の難読化もされてなかったからollydbgで楽に中を見られたんだよなぁ。
一時期はデータのテキストも暗号化掛けてなかったし。
まぁ、マイナーネトゲは資金もないだろうしこんなもんかも知らん。
最近はガメポのプロテクトが凶悪らしいと風の噂で聞くけれど、カーネルに常駐するとか、APIフックするとか、たかがゲームがやって良い事ではないと思う。

というわけで、割と有名どころのテイルズウィーバーの解析をしてみる事にした。
まぁ、簡単な分岐潰すくらいの能力しかないので無理だとは思うのだけれど。

とりあえず、クライアントをダウンロード、んでインストール。
まずは普通に起動してみる。
TalesWeaver.exe が基点になるのか。Webから起動するタイプではないのね。
ollydbgで TalesWeaver.exe を覗いて見る。以外にも難読化はされていない模様。
が、そのまま進めるとデバッガ検出だとかで落とされる。
ProcessExplorer でツリーを見てみると、TalesWeaver.exe から InphaseNXD.EXE が起動されている。
ProcessExplorer で起動パラメータをコピーして InphaseNXD.EXE を実行してみる。
どうやらこれがゲーム本体らしい。

ここまで判ったところで、まずは小手調べに TalesWeaver.exe から InphaseNXD.EXE を起動しているところを特定しようとollydbgで検索してみるも、まったくそれらしいところがヒットしない。
新しいプロセスを起動しているのだから、 CreateProcess か ShellExecute のどちらかだと思ったのだけれど、どちらにも該当せず。
結局1~2日悩んで、ステップ実行させた結果、WinExec なるAPIを発見する。
リファレンスを引くと、Win32以前の互換性を保つために残されているAPIらしい。
こんなAPIがWindowsXPにまで残されていたのも驚きだけれど、そんなAPIを使うプログラムも驚きだ。
そんなこんなで、どうにか小手調べ完了。
しかし、これは初っ端から先行き暗いなぁ……

2009/10/01:コメントなしろじ

というわけで、今日はApacheのログのお話。

konata.netは悲しいことにアクセスが少ないので一日の全アクセスをざっと眺めるだけなら、3分かかりません。(´・ω・`)

なので、アクセスログを眺めて変わった所からのアクセスを見つけるのが日課っぽくなっており、今日もまたそんなログを漁っていたのでした。

と、なにやら見慣れないRefererを発見。
mixiのアカウントは持ってないのだけれど、どうやらmixiからのお客さんらしい。
で、見ていった記事は……また君主の多重起動ですか……

アカウントがないので確かめるすべはないのだけれど、
どんな風に書かれているのか気になる。

世の中には白紙委任状みたいなフザけた規約でユーザーをないがしろにするネトゲ会社がある一方で、そんな馬鹿みたいな連中を擁護するさらに理解しがたい生き物がいるからなぁ……

そんな輩に監視されてたらどうしよう。
と無駄な不安にかられているのでした。
まぁ、気にするだけ無駄だし、Blogのコメントがスパムで埋まってるわけでもないからいいんだけど。

2009/07/26:2件のコメントろじ

なにか目に見えてトラブルが発生したわけではないのだけれど。

ネトゲの解析関連で結構怪しいところのexeを踏みまくったせいか、どうもここ2~3日は動作が重いような気がする。
今日解析関連で入れてみたRootkitのチェックツールを見てみると、Avast先生以外のSSDTフックを発見。
さらに怪しいことに、このフックしているsysファイルはすでに削除されており、しかもOSを起動する度に名前が変わるというステキ動作。

カスペとノートンのオンラインスキャン、Avast先生での起動前全チェックかけてみたのだけれど、Hack系ツールが引っかかった他は特に異常は発見されなかった。

が、このフックの動作は怪しすぎる。
わざわざ名前を変えるところや、フックしているSSDTからみてもどう考えてもトロイかキーロガー関連に感染したと考えるのが妥当なところ。
加えて、なぜかシステムの復元 が失敗する事象が発生。
これは多分クロだな。

で、これ以上は考えてもキリがないのでバックアップをとった後、さくっと再インストールすることにした。
Windows Home Serverがあればもっと楽なんだろうなぁ。

現在、一通りドライブをチェックして、必要なデータを退避中。
多分作業が終わる頃には今日が終わりそうな予感……

解析だと楽をしたいが為につい怪しいリンクも踏んじゃうんだよなぁ……
このあたり何か対策を考えなければならん。
(さらに…)

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