首页
论坛
专栏
课程

[原创] 《软件调试》分页机制windbg例子分析(各种填坑)

kinghzking 2018-9-11 03:04 5375
1. PAE问题,按照文章内容一步一步来,一直测试一直错,开始怀疑人生。继续读文章n遍,发现书中例子为“非PAE模式”,参考文章https://blog.csdn.net/lixiangminghate/article/details/54836188,将系统改为非PAE模式!!!
2. 文中关于物理内存访问相关内容使用的是ldk模式(本地内核调试),由于真机使用的win10,设置起来麻烦,直接双机调试,虚拟机程序为VBOX,虚拟机用的 winxp-sp3。这里需要对windbg有一定的了解!!!
3. 到了最后一步,通过PTE+offset访问物理内存的时候,发现内容全部为0。查看了PTE的flag,发现Present(是否在物理内存)标记为0,即不在内存中。感觉是放到文件系统了。解决方法是,让程序执行一些命令,再看 PTE,发现指向内存变更了,查看相应的内存,找到目标。

以上为奋斗n天的一点认识,希望大家互相讨论,如有纰漏,请指出,谢谢。

ps:
逻辑地址、虚拟地址 、线性地址和物理地址。关于这四个地址,发现有些资料不太一样。逻辑地址究竟是虚拟地址还是线性地址,求大神指教。
不过可以肯定的是:虚拟地址+段机制 ==> 线性地址; 线性地址+页机制 ==>物理地址。写代码只涉及到虚拟地址!!!其它为系统和CPU自动转换的。


[防守篇]2018看雪.TSRC CTF 挑战赛(团队赛)11月1日征题开启!

最新回复 (11)
shayi 8 2018-9-11 21:05
2

0

ldk 调试方法有一定的局限性,比如无法实时追踪一些内核内存的状态,Win10 已经支持双物理机通过以太网线调试了,速度比那蛋疼的命名管道模拟串口的波特率快得多,是当前推荐的调试法
最后于 2018-9-11 21:08 被shayi编辑 ,原因:
kinghzking 2018-9-12 10:03
3

0

shayi ldk 调试方法有一定的局限性,比如无法实时追踪一些内核内存的状态,Win10 已经支持双物理机通过以太网线调试了,速度比那蛋疼的命名管道模拟串口的波特率快得多,是 ...
受教了,一直都是r3层开发,驱动知道的很少,多多交流。
shayi 8 2018-9-12 11:06
4

0

kinghzking 受教了,一直都是r3层开发,驱动知道的很少,多多交流。[em_28]
我 r3 层刚好比较生疏,多多交流
张新琪 1 2018-9-12 20:53
5

0

逻辑地址就是逻辑上的地址. 要转为线性地址  需要查询GDT表.  但是因为微软没有使用GDT表. 所以逻辑地址就可以看做是线性地址. 32位下. 高10位是PDE目录索引. 中间10位是 PTE表索引. 以前学的高版本不知道改没改.不过依照微软的蛋疼尿性. 改了整个系统得重写. 
kinghzking 2018-9-12 22:22
6

0

张新琪 逻辑地址就是逻辑上的地址. 要转为线性地址 需要查询GDT表. 但是因为微软没有使用GDT表. 所以逻辑地址就可以看做是线性地址. 32位下. 高10位是PDE目录索引. 中间10位是 PTE表索 ...
windows有GDT表,只是32位的程序,值都一样。所以逻辑地址和线性地址的值“恰好”相等。不知道有没有特例。。。
张新琪 1 2018-9-12 23:10
7

0

kinghzking windows有GDT表,只是32位的程序,值都一样。所以逻辑地址和线性地址的值“恰好”相等。不知道有没有特例。。。
有GDT表.没使用. 64的没研究.
wbqsohucom 2018-9-13 10:29
8

0

感谢楼主分享
ZwTrojan 2018-9-13 17:17
9

0

是的,PAE开启的情况下那个方法已经不适用了,之前一直没注意,不过现在我还是不怎么明白PAE的原理..
shayi 8 2018-9-13 22:39
10

0

ZwTrojan 是的,PAE开启的情况下那个方法已经不适用了,之前一直没注意,不过现在我还是不怎么明白PAE的原理..
PAE 启用时,在内核空间中多了一个最顶层的数据结构 “索引”,一般叫做 “PDPT”(页目录指针表),PAE 下的虚拟->物理地址转换,可以参考这篇:https://bbs.pediy.com/thread-218170.htm
实践中用得最多的还是虚拟和物理地址,逻辑与线性地址在概念上的意义大于实战的
最后于 2018-9-13 22:42 被shayi编辑 ,原因:
kinghzking 2018-9-14 11:05
11

0

shayi ZwTrojan 是的,PAE开启的情况下那个方法已经不适用了,之前一直没注意,不过现在我还是不怎么明白PAE的原理.. PAE 启用 ...
遇到高人了,看到PAE的时候,也有这个疑惑,谢谢大神。
Flygend 2018-9-18 10:40
12

0

返回