首页
社区
课程
招聘
[旧帖] [求助]PE节属性 0.00雪花
发表于: 2012-3-26 07:26 1501

[旧帖] [求助]PE节属性 0.00雪花

2012-3-26 07:26
1501
用户层:
unsigned char * pAdd;
unsigned char Temp;
pAdd = (unsigned char *)0x00400000; //该地址确保有代码
Temp = *pAdd;
//会产生异常

//VirtualProtect(。。。) //之后就可以

//问题。它是在哪对地址保护的?

1:段描述符。
2:PDE|PTE
3:MMVAD

2 PDE | PTE 肯定就不是!,当w为0 时,是可以读写。
3 MMVAD     肯定也不是!,因为直接就是硬件机制在工作,与他没关系

只有1:段描述符:
可是cs .ds 的选择子都是一个啊。没有关系啊。

那它到底是在哪起保护的主用啊?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 31
活跃值: (43)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
是不是内存页的属性问题?
2012-3-26 09:28
0
雪    币: 8
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
内存页属性,它在哪呢?在哪记录属性的设置呢?这就是我要问的啊!
2012-3-26 09:50
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
有点意思,谁来回答一下?

我想应该是内存页里有保护属性吧。
2012-3-26 10:49
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
VirtualProtect Function

Changes the protection on a region of committed pages in the virtual address space of the calling process.

段描述符
不就是 基址 + 长度 + 属性 (可读写、可执行) 吗
2012-3-26 11:17
0
雪    币: 8
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢您的回答:我好象有思路了。

可是还有疑问:

windows将段描述符的基址 + 长度已经设置为用户最大地址空间范围。
也就是说更改了段描述符属性,那么整个用户的地址空间都起到作用.
__asm
{
mov eax ds:[0x00400000]
}
VirtualProtect //改变的是cs,还是ds?
PE文件有又是多节的,段描述符只是一个空间范围,如何做到按PE节属性设置段描述符属性?
2012-3-26 11:39
0
游客
登录 | 注册 方可回帖
返回
//