書き溜めたエントリなんだけど、これから更新する機会が減りそうなので進んだところまで一気に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件のコメントろじ

再開希望

written by tanaka_otupai 2011/12/10 00:05

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です