能力值:
( LV4,RANK:50 )
|
-
-
2 楼
不错,加油~~~~
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
加油,继续跟
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
继续顶.........!
|
能力值:
( LV12,RANK:460 )
|
-
-
5 楼
有效率,占坑
|
能力值:
( LV12,RANK:220 )
|
-
-
6 楼
(1)在win32下,所有的cs, ds, ss使用的是同一个段选择子(尽管值不一样?高手解释一下
)。
根据OD的显示,
CS:1B
ES:23
DS:23
SS:23
FS:3B
而选择子的结构是下面的样子:
___________________________________________
| 15 ---- 3 | 2 | 1 | 0 |
| 描述符索引 | TI | RPL |
-------------------------------------------
TI为1则为LDT,否则为GDT
RPL为所指向的段的权限级
这样来看的话,
CS:1B 11 011
ES:23 100 011
DS:23 100 011
SS:23 100 011
FS:3B 111 011
可以看到ES,DS,SS的描述符索引是一致的,而CS的则和ES,DS,SS不同.
在OD中输入一下指令:
mov dword ptr [402000h], 12345678h
mov eax,cs:[402000h] ;eax:12345678h
mov ebx,ds:[402000h] ;ebx:12345678h
mov ecx,es:[402000h] ;ecx:12345678h
mov edx,ss:[402000h] ;edx:12345678h
mov edi,fs:[402000h] ;产生异常
由此可以推断,CS,DS,ES,SS虽然段描述符不一样,但是它们的段基址(为0)和段界限(4GB)是一致的。段基址和段界限一致,所能访问的地址范围就是一致的。
纯属个人见解,无实证。请高手指教。
|
能力值:
( LV9,RANK:370 )
|
-
-
7 楼
估计是这样,段选择子不同,那只能是索引的两个端映射到了同一线性地址空间。
不知道有没有什么方法(softice能不能?)读到系统的段描述符表,能读出来看看就好了。
等待其他高手证实。
|
能力值:
( LV7,RANK:100 )
|
-
-
8 楼
Softice可以读取GDT与LDT的内容。
在Windows深入剖析——内核篇中有如下描述:
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
所有指令前面的指令前缀都属于一条指令,一条指令中允许出现重复的指令前缀。只不过重复的指令前缀和只有一个的作用相同。
|
能力值:
(RANK:10 )
|
-
-
10 楼
学习了。。。。。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
挤到第一排!
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我噻。。。。看能否有个比OD更好看的。嘿嘿
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
学习了.谢谢楼主分享!
|
能力值:
( LV12,RANK:240 )
|
-
-
14 楼
不同的组只能使用改组其中一条前缀 改->该
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
很详细~学习啦~~
|
能力值:
( LV9,RANK:170 )
|
-
-
16 楼
选择子其实就是段描述符在GDT或LDT中的偏移,每个段的偏移是不同的 ds ss 中的选择子是手动载入的 fs的选择子的对应的段描述符可能与其他段的界限或者属性不同
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
好文,必须得顶的。正在学习。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
又学到东西了,谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
最近也要自己做一个反汇编引擎,学习了,谢楼主。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
很好。学习。
|
能力值:
( LV3,RANK:30 )
|
-
-
21 楼
很好的文章 学习了
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
学习了......
|
|
|