先日試作したPythonでDLLをロードして実行可能にするスクリプトでは、FileMappingは使わずにダイレクトにメモリ上にDLLのファイルデータをコピーした。
現実のOSによるロードでは、FileMappingを使ってロードしているはず。
でふと疑問に思ったのが、IATや再配置情報など実行時に書き換える部分。
これはプロセス毎に変わる可能性があるし、環境によって変動する。ので、ファイル内容を書き換えるわけにはいかない。
では、どういうフラグや属性を使ってFileMappingしてるのか?が・・・謎に思えてきた。
そこだけCopy on Writeみたいな仕組みにしてるのかな?
これも調べておきたいな。
コメント