【软件安全】查看可执行文件4G内存的分布,PDE&PTE与文件节属性关联

执行编写的“Hello world,查看其4G内存的分布及其PDEPTE内容:


1.安装windbg调试器:


Install Debugging Tools for Windows 32-bit Version:
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
Install Debugging Tools for Windows 64-bit Versions:
http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx


2.配置windbg:


(1)从微软官网上下载Symbols:

     http://msdl.microsoft.com/download/symbols

     解压到相应文件夹,此处解压到f:/symbols

 

(2)添加环境变量_NT_SYMBOL_PATH:

    

【软件安全】查看可执行文件4G内存的分布,PDE&PTE与文件节属性关联_第1张图片    


(3)打开windbgFile->Symbol File Path,填上Symbols下载安装的地址:


【软件安全】查看可执行文件4G内存的分布,PDE&PTE与文件节属性关联_第2张图片


(4)File->OpenExecutable->可以选择一个可执行文件进行调试:


 !address -summary:


【软件安全】查看可执行文件4G内存的分布,PDE&PTE与文件节属性关联_第3张图片


(5)若要进入内核调试,重启windbg,管理员模式运行,File->Kernel Debug


a.找到目标可执行文件:



b . 页目录基地址:


方法一:


方法二:

【软件安全】查看可执行文件4G内存的分布,PDE&PTE与文件节属性关联_第4张图片



(6)节属性与PDE&PTE的关联:


a.使用!address查看:




b.使用PEView打开hello4.exe

此处以查看.text节为例:


【软件安全】查看可执行文件4G内存的分布,PDE&PTE与文件节属性关联_第5张图片


我们可以看到.text节开始于00401000,属性为60500020:可读+可执行+16字节对齐+包含代码


在!address里截取相关信息:


保护属性为PAGE_EXECUTE_READ(执行并可读),于.text节属性一致


(7)手动修改hello4”可执行文件的节属性(RWX),然后执行该程序,分析其PDEPTE内容的变化


a.在winhex中修改.text节属性:

 

原属性:60500020,对应于PAGE_EXECUTE_READ



修改为:80500020,可写+16字节对齐+包含代码:



b.重新在windbg中打开hello4.exe,输入!address



可以看到,保护属性变成了PAGE_WRITECOPY(写时拷贝)。


另:保护模式:Protect值,所有可用的保护包括:PAGE_NOACCESS(不可访问),PAGE_READONLY(只读),PAGE_READWRITE(读写),PAGE_EXECUTE(可执行), PAGE_EXECUTE_READ(执行并可读),PAGE_EXECUTE_READWRITE(执行并可读写),PAGE_WRITECOPY(写时拷贝),PAGE_EXECUTE_WRITECOPY(执行,并写时拷贝), PAGE_GUARD(保护)。













你可能感兴趣的:(软件安全)