能力值:
( LV2,RANK:10 )
2 楼
看看分页模式是10 10 12分页吗?
能力值:
( LV2,RANK:10 )
3 楼
是,32位没有64的那么多名堂。
能力值:
( LV2,RANK:10 )
4 楼
刚没注意看 cr3不要取高20位 全部都要。 取高20位的是PDE 和PTE
能力值:
( LV3,RANK:20 )
5 楼
0xc0600010明显是一个虚拟地址,查看虚拟地址的内存命令前面不需要加感叹号
能力值:
( LV2,RANK:10 )
6 楼
麻木的时间
刚没注意看 cr3不要取高20位 全部都要。 取高20位的是PDE 和PTE
原贴有说明的,CR3是需要取高20位的。
线性地址到物理地址的转换规则
CR3寄存器高20位保存了PDT的物理页码
能力值:
( LV2,RANK:10 )
7 楼
刚才去试了你的方法,使用dd会显示一堆000000的区域,
能力值:
( LV2,RANK:10 )
8 楼
麻木的时间
刚没注意看 cr3不要取高20位 全部都要。 取高20位的是PDE 和PTE
我现在要通过VA转换,然后通过CR3,得到PDE和PTE,手动在windbg中定位物理地址,看到内存中的helloworld,就肯定要这样做。
能力值:
( LV2,RANK:10 )
9 楼
windbg中执行 .formats cr4 看看第五位是不是1, 如果是1 , 说明开启了PAE. 开启PAE就不是10 10 12了.
能力值:
( LV2,RANK:10 )
10 楼
tsoo
windbg中执行 .formats cr4 看看第五位是不是1, 如果是1 , 说明开启了PAE. 开启PAE就不是10 10 12了.
我写求助帖就确认开启了,既然说到了,那就再确认一次。
80528bdc cc int 3
kd> .formats cr4
*** ERROR: Module load completed but symbols could not be loaded for vmmemctl.sys
Evaluate expression:
Hex: 000006f9
Decimal: 1785
Octal: 00000003371
Binary: 00000000 00000000 00000110 11111001
Chars: ....
Time: Thu Jan 01 08:29:45 1970
Float: low 2.50132e-042 high 0
Double: 8.81907e-321
能力值:
( LV2,RANK:10 )
11 楼
tsoo
windbg中执行 .formats cr4 看看第五位是不是1, 如果是1 , 说明开启了PAE. 开启PAE就不是10 10 12了.
看来还得还得去补点别的课了。
能力值:
( LV2,RANK:10 )
12 楼
yukihotaru
我写求助帖就确认开启了,既然说到了,那就再确认一次。
80528bdc cc int 3
kd> .formats cr4
*** ERROR: Modu ... 感觉是不是你弄混了什么, 还是我没看懂你意思. 因为从你代码以及相关截图来看, 你是在用10 10 12的方式去解析CR3, 然后查找对应的表项, 但是从你执行.formats cr4的结果来看, 你的系统明明是工作在PAE模式, 既然开启了PAE, 那就应该按照 2 9 9 12而不是10 10 12的方式去解析. 另外你引用的那个原帖子我刚看了下也是有点迷, 什么叫"开启/关闭分页机制", windows操作系统, 哪怕是2000,xp,只要进到桌面了, 这时候一定是开启了分页机制的. 原帖真正想说的似乎是"开启/禁用物理地址扩展"? 还有原帖中的 /nopage 参数我也是看不懂, 我记得只有 /nopae 参数, 从不记得有什么 /nopage, 更不知道windows可以禁用分页机制, 只知道能禁用的是 pae机制. (物理地址扩展) 注意page和pae是两个东西, 一个是分页机制, 不是你想关就关的. 另一个是 physical address extension , 中文名叫物理地址扩展, 用来解决32位操作系统访问大内存用的.
最后于 2020-5-22 00:09
被tsoo编辑
,原因:
能力值:
( LV8,RANK:130 )
13 楼
666
能力值:
( LV2,RANK:10 )
14 楼
tsoo
感觉是不是你弄混了什么, 还是我没看懂你意思. 因为从你代码以及相关截图来看, 你是在用10 10 12的方式去解析CR3, 然后查找对应的表项, 但是从你执行.formats cr4的结果来看, ...
你提示我PAE我就去补课去了,现在已经达到以下目的。
1.PAE模式下手动定位物理内存中的HelloWorld成功。
2.使用 .formats cr4区分内存模式
不知道是虚拟主机的原因还是什么,我使用
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /nopae
作为启动参数,依旧无法关闭PAE模式,导致分页模式无法得到验证。
PS:反正百度也没什么价值,全是易游和易乐游吹嘘他们技术多牛逼的页面。
能力值:
( LV2,RANK:10 )
15 楼
tsoo
感觉是不是你弄混了什么, 还是我没看懂你意思. 因为从你代码以及相关截图来看, 你是在用10 10 12的方式去解析CR3, 然后查找对应的表项, 但是从你执行.formats cr4的结果来看, ...
科学上网后又结果了,
能力值:
( LV2,RANK:10 )
16 楼
tsoo
感觉是不是你弄混了什么, 还是我没看懂你意思. 因为从你代码以及相关截图来看, 你是在用10 10 12的方式去解析CR3, 然后查找对应的表项, 但是从你执行.formats cr4的结果来看, ...
但是,我又看了,这个系列的第二篇文章,这优秀文章怎么那么多错误呢?
https://bbs.pediy.com/thread-180989.htm
他讲的第五位是不是错的,最低位应该是0位,下边是我双机调试输出的信息。
用windbg看cr4,
kd> .formats cr4
Evaluate expression:
Hex: 000006d9
Decimal: 1753
Octal: 00000003331
Binary: 00000000 00000000 00000110 11011001
Chars: ....
Time: Thu Jan 01 08:29:13 1970
Float: low 2.45648e-042 high 0
Double: 8.66097e-321
能力值:
( LV2,RANK:10 )
17 楼
yukihotaru
但是,我又看了,这个系列的第二篇文章,这优秀文章怎么那么多错误呢?
https://bbs.pediy.com/thread-180989.htm
他讲的第五位是不是错的,最低位应该是0位, ... 文章都是随手写的 , 有点错误很正常, 以intel手册为准.
最后于 2020-5-22 00:08
被tsoo编辑
,原因:
能力值:
( LV2,RANK:10 )
18 楼
tsoo
不要迷恋别人的文章, 文章都是随手写的 , 文章作者在当时可能自己都是迷迷糊糊一知半解. 有点错误很正常,
以intel手册为准.
哎,这也是没法的办法,内核书是有,理论远远大于实践的篇幅,甚至没有任何实践,初学的我真是看的云里雾里的,比如《Windows 内核情景分析》《天书夜读》都是这类,所以,这些优秀啊,精华啊,就是补充教材了,知识点不多,从理论->windbg操作,熟悉调试指令->驱动编程,DDK。就成了完整的学习曲线。