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