Windowsマルウェア解析で参照するパラメータ情報サイトのメモ。
Microsoft社の公式以外のドキュメントを集めたもの。
情報収集中。
VERGILIUS
Windowsで使われる構造体の定義の資料。
x86とx64、過去のOS、バージョン(ビルド)毎の情報があるため、Microsoftが廃止して記載しなくなった(ただし、裏ではまだそのパラメータは設定されていたりする)構造体メンバを知ることもできる。また、Microsoftのドキュメントに出ていない、または説明の不十分な構造体の情報も含まれている。このため、研究などで古いマルウェアを見るときにもとても有用。また、構造体のメンバにオフセットが記載されているため、データを見る際に何バイト目を見ればいいのか即座に分かるため、これまた便利。
Geoff Chappell, Software Analyst
構造体の情報のほか、様々な解説が書かれている。
Microsoftの公式に書かれていないことも解説されていることがある。上のVergilius Projectとは異なり、Enumrate定義を見る際に重宝している。ここで見つからないEnumrateは、Visual StudioのSDKのヘッダファイルから漁ることになる(=めんどい)。解説がMicrosoftよりも詳しいと思うものもみられるが、なんで作っている連中の解説より詳しいんだよ?
j00ru//vx tech blog
Windowsのsyscallの資料。
Windowsのsyscallは、バージョンやビルドによって、syscall時のeaxの値と呼び出される関数の関係性が変わる。フックやトレース解析を回避する目的でsyscallを使うマルウェアを解析する場合、syscall時に設定されているeaxがどの関数を呼び出しているかを知るのに使いやすいテーブルを提供している。APIとOSのビルド番号でのマトリックスになっており、とても便利。
The Undocumented Functions
Microsoftが公式サイトに記載していないAPIの資料。
詳しく解説しているわけではないものの、APIの引数の数や型情報があるだけでもありがたいので、公式に書かれていないAPIの場合は時々参照している。ただし古い。
Malware Behavior Catalog
マルウェア内で使っているパラメータとは毛色が違うが、マルウェアの挙動に対しIDを付与することを目的としたMBC Projectのページ。解析した結果を分類する際に利用できそう。Mitre Att&ckでは表現しきれないマルウェアの細かい挙動まで含めることが目的の模様。