能力值:
( LV2,RANK:10 )
|
-
-
2 楼
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基址
引用自:http://blog.csdn.net/xbin8/archive/2008/03/08/2158762.aspx
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
十分感激 ,结贴
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
楼主,结帖要先给分啊。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
不知道如何给分,哪位大虾教一下
|
能力值:
( LV13,RANK:290 )
|
-
-
6 楼
其实FS段寄存器体现了系统的分段机制,FS段的基址不是0,而是从某个特别位置开始,这个特别的位置被windows存放一些特别的东西。
FS在用户层和内核层的基址也不同,但都是存放和当前线程密切相关的东西。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
写shellcode就知道了
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
二楼强人,学习了.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
FS, 主要是Windows下面的SEH。这个涉及到TEB结构。
给你几个链接,希望对你有帮助
http://www.luocong.com/articles/show_article.asp?Article_ID=30
http://forum.eviloctal.com/thread-6883-1-32.html
http://www.upwinder.com/www/43/3078.html
|
|
|