首页
社区
课程
招聘
[旧帖] MOV EAX,DWORD PTR FS:[0] 不了解FS 0.00雪花
发表于: 2009-11-25 22:38 16103

[旧帖] MOV EAX,DWORD PTR FS:[0] 不了解FS 0.00雪花

2009-11-25 22:38
16103
MOV EAX,DWORD PTR FS:[0]
一般asm會有DWORD PTR FS:[0] 嗎
不了解PTR FS的意思

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
到FS:[0]所指向的内存单元取一个DWORD大小的数给EAX
2009-11-25 23:54
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
FS寄存器指向当前活动线程的TEB结构(线程结构)
偏移 说明
000 指向SEH链指针
004 线程堆栈顶部
008 线程堆栈底部
00C SubSystemTib
010 FiberData
014 ArbitraryUserPointer
018 FS段寄存器在内存中的镜像地址
020 进程PID
024 线程ID
02C 指向线程局部存储指针
030 PEB结构地址(进程结构)
034 上个错误号

得到KERNEL32.DLL基址的方法
assume fs:nothing             ;打开FS寄存器
mov eax,fs:[30h]            ;得到PEB结构地址
mov eax,[eax + 0ch]        ;得到PEB_LDR_DATA结构地址
mov esi,[eax + 1ch]        ;InInitializationOrderModuleList
lodsd                      ;得到KERNEL32.DLL所在LDR_MODULE结构的InInitializationOrderModuleList地址
mov edx,[eax + 8h]         ;得到BaseAddress,既Kernel32.dll基址
2009-11-26 10:47
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一般asm會有DWORD PTR FS:[0] 嗎
回答:32位壳程序经常使用,以构造SEH达到改变程序流程或者寄存器值的目的。
2009-11-26 10:54
0
雪    币: 205
活跃值: (12)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
FS 是 32位 CPU 增加的 另一个寄存器

一般都是 用在异常处理的
PTR 跟 FS 要分开

去学学汇编基础吧.

dword ptr
byte ptr
word ptr

从内存中取的 大小

mov eax ,[ebx]  默认取 四个字节
mov al,byte ptr [ebx] 取一个字节
mov ax,word ptr [ebx] 取两个字节

以此类推...
2009-11-26 15:43
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
可以把FS 看成DS。
2010-2-9 12:09
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
三楼正解

WinNT内核下内存采用保护模式,段寄存器的意义与实模式汇编下的意义不同了。
2010-2-9 21:15
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
fs[0]就是异常入口队列的首指针(seh)
2010-2-10 10:36
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
它也指向第一个处理异常函数的入口地址,具体可参考seh结构
struct _seh{
     LPVOID lpFuncEntry;
     struct _seh * lpNextSeh;
}
2010-2-10 10:38
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
结构贴 错了,
struct _seh{
     struct _seh * lpNextSeh;
     LPVOID lpFuncEntry;
}
2010-2-10 10:39
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
建议看下异常处理机制
3楼正解
另外,FS存的是段选择子,而不是实模式下的高16位基地址
2010-2-10 20:19
0
游客
登录 | 注册 方可回帖
返回
//