这些日子在研究API Hook,想钩取notepad.exe的读文件操作,一开始在ReadFile()上下功夫,可惜一直未果。后来得知记事本是通过内存映射机制将文件从磁盘映射到内存中,然后再进行读取的,其调用Windows API的先后顺序(我研究的,不保证完全正确...)是:双击一个txt文件,explorer调用CreateFile(),创建notepad.exe进程后,该进程继而利用CreateFile()返回的文件句柄去调用CreateFileMapping(),然后再利用mapping对象的句柄去调用MapViewOfFile()。MapViewOfFile()函数的返回值是LPVOID类型的,指向映射的内存值,即起着存储文件数据的指针的作用。问题在这里,记事本又通过哪个API将MapViewOfFile()函数得到的数据从内存中读出来的呢?
这些日子在研究API Hook,想钩取notepad.exe的读文件操作,一开始在ReadFi