约有 36 项符合查询结果, 以下是第 4 - 4项。
费时 < 1 秒。
王宇大哥,如果方便的话,留下个即时联络工具,好多请教你,我的学校就一个副教授教我。
把这些人问了个遍,都搔搔头,然后说忘记了。哎。。。。。很郁闷
Posted in Windows内核
by
一鱼之歌
on 2009-02-11
认真看了,也懂了很多,
现在又提出个疑问。
逻辑地址-——>虚拟/线性地址----->物理地址
这三个地址我觉得我也知道怎么转换,
例如张老师上面演示的例如,查找MZ头,里面一直用到的是虚拟地址。
当时像我们平时用OD看到EIP的值应该就是逻辑地址,但我却用dd 命令后面就跟这个EIP的值查看出来的结果却和也是 一样,
也就是这样
dd xxxxxx和 dd yyyyyyy 查看他们的PFN,然后 ...
Posted in Windows内核
by
一鱼之歌
on 2009-02-11
呵呵,理解深了点了
再想请教下,上面提到,一旦Page Fault,内存管理器是至少把一个页面的内容加载到物理内存的。
那就是内存管理器有张表(暂且叫做表)记录着PE文件在(硬盘)中的位置?要不 Page Fault的时候他也不知道在哪找
如果是这样的话,那每个进程都得有一张,这张表叫啥?,如果哪里有具体这方面的知识
提示下我也好查下资料
另外感谢 张老师2楼所做的解释,加深了理解,建议IA-32手册很好,可惜是英文,看着吃力
Posted in Windows内核
by
一鱼之歌
on 2009-02-11
呵,谢谢。觉得应该是不在,那里只是给曾经载入过内存而后又被换出来的页面的驻留的吧。这PE加载就是用到内存映射技术吧?我一直搞不太明白这时候如果像上面例子说的,1G-4K就是在硬盘(非页面文件区),进程地址空间直接和硬盘数据关联,中间不需要内存了,是这样吗??如果是这样,每操作一个字节都得I/0操作呀-_-,那岂不是很慢?想不通了。(总体上,数据无非就只能在硬盘和物理内存,还一些比较小的特殊东西)
Posted in Windows内核
by
一鱼之歌
on 2009-02-11
谢谢,这个转换我也明白。
我再举个例子看看,也许我理解得不够深。
如果要打开一个1G大小的PE文件,这时候应该只把程序执行必须的数据映射到物理内存,假设这必须部份为24K,
我想问,剩下的1G-24K的数据是在页面文件中吗?
Posted in Windows内核
by
一鱼之歌
on 2009-02-10
大家好,请教个缺页问题据我查资料(windows internals)如果遇到缺页的时候,就会使用到PFN这个东西这个东西会记录到所缺的页在页文件中的位置,所以要去读取回来就很容易做到。。但问题是当我们的PE文件第一次启动的时候,因为用到了内存映射一些延迟技术,,所以PE文件并没全部装入内存,而只是一部份。所以就存在这一个这样的页:从来未载入过内存,所以也没被转换出来过的时候,
那当要访问这页的时候是怎么找的呢?难道在程序第一次载入的时候系统就已经填充这个PFN数据库了??如果这样的话,这个PFN岂不是相当大?另外问下这个PFN结构会不会给置换换出去谢谢大家=------------------帖子更新:晕死,我理解错了一点,就是以为数据在内存的时候,页表项记录就是 ...
Posted in Windows内核
by
一鱼之歌
on 2009-02-10