WOW64についてのメモ。
WOW64 (Windows 32-bit on Windows 64-bit) とは64ビットのWindowsシステムで32ビットのアプリケーションを実行するためのエミュレーターである。
64ビットのWindowsシステムでは64ビットのバイナリは%SystemRoot%\System32
に配置され、32ビットのバイナリは%SystemRoot%\SysWOW64
に配置される。
32ビットのアプリケーションがシステムディレクトリにアクセスする場合、%SystemRoot%\SysWOW64
にリダイレクトされる。同様に32ビットのアプリケーションがDLLをロードする場合、%SystemRoot%\System32
ではなく%SystemRoot%\SysWOW64
からロードする。
また、32ビットのアプリケーションがHKLM\Software
レジストリにアクセスする場合、HKLM\Software\Wow6432Node
にリダイレクトされる。
よって64ビットのWindowsシステムで32ビットのアプリケーションを解析する際は以下の点に留意する:
- アプリケーションがシステムディレクトリへ書き込みをしていた場合、
%SystemRoot%\System32
ではなく%SystemRoot%\SysWOW64
を確認する - アプリケーションがシステムディレクトリから何らかの設定ファイルを読み込む場合、
%SystemRoot%\SysWOW64
に設定ファイルが存在していなければならない - アプリケーションが
HKLM\Software
レジストリにアクセスする場合は、HKLM\Software\Wow6432Node
を確認する
32ビットのアプリケーションが%SystemRoot%\SysWOW64
ではなく、実際の%SystemRoot%\System32
にアクセスしたい場合は%windir%\Sysnative
エイリアスを利用する。
参考
https://docs.microsoft.com/en-us/windows/win32/winprog64/wow64-implementation-details
Practical Malware Analysis (by Michael Sikorski and Andrew Honig) P.447 - 448
Learning Malware Analysis (By Monnappa K A) P.155